bothouse-dsh 0.1.55 → 0.1.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/collab/cloudweb.mjs +6 -4
- package/collab/devices.html +5 -1
- package/collab/dsh-member.mjs +2 -0
- package/collab/handoff-rules.json +17 -2
- package/collab/page.html +12 -2
- package/collab/pairing.mjs +12 -1
- package/collab/panel.mjs +20 -8
- package/collab/tasks.mjs +23 -0
- package/collab/team-exit-rules.json +1 -1
- package/collab/team-mode-rules.md +1 -1
- package/node_modules/bothouse-dsh-channels/client.js +303 -73
- package/package.json +1 -1
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
// dsh-client-source-sha256:
|
|
2
|
-
// dsh-style-sha256:
|
|
1
|
+
// dsh-client-source-sha256: d96360e07d625a5c0ea51d1465b0b3814ea77c61bcf8e5abe9142f893ee5badf
|
|
2
|
+
// dsh-style-sha256: eb1ce668b0b1783d744af077d35394c83ea96af75a7fb428c315a486340acd35
|
|
3
3
|
window.__ModuleLoader__.load({
|
|
4
4
|
id: "bothouse-dsh-channels",
|
|
5
5
|
factory: (require) => {
|
|
6
6
|
var module = { exports: {} };
|
|
7
7
|
var exports = module.exports;
|
|
8
|
-
(function(){var s=document.createElement('style');s.setAttribute('data-dsh-plugin',"bothouse-dsh-channels");s.textContent=".dshc_page {\n width: 100%;\n height: 100%;\n min-height: 0;\n padding-top: var(--dsh-frame-top-clearance, 0px);\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-bg-base);\n grid-template-columns: 220px minmax(0, 1fr) 240px;\n font-size: 14px;\n line-height: 1.5;\n display: grid;\n}\n\n.dshc_notice {\n max-width: 480px;\n color: var(--dsw-alias-label-secondary);\n text-align: center;\n grid-column: 1 / -1;\n place-self: center;\n padding: 24px;\n}\n\n.dshc_rooms, .dshc_members {\n background: var(--dsw-alias-bg-layer-2);\n min-height: 0;\n padding: 0 8px 16px;\n overflow-y: auto;\n}\n\n.dshc_membersHead {\n border-bottom: 1px solid var(--dsw-alias-border-l2);\n flex: none;\n height: 44px;\n margin: 0 0 8px;\n}\n\n.dshc_groupTitle {\n color: var(--dsw-alias-label-tertiary);\n letter-spacing: .02em;\n margin: 12px 8px 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.dshc_room {\n border-radius: var(--dsw-radius-sm);\n width: 100%;\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n text-align: left;\n cursor: pointer;\n background: none;\n border: 0;\n align-items: center;\n gap: 6px;\n padding: 6px 8px;\n display: flex;\n}\n\n.dshc_room:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_room:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_workspace {\n padding-left: 22px;\n font-size: .95em;\n}\n\n.dshc_roomLabel {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.dshc_activeCount {\n color: var(--dsw-alias-label-tertiary);\n flex-shrink: 0;\n margin-left: auto;\n font-size: 11px;\n}\n\n.dshc_activeBusy {\n color: var(--dsw-alias-label-primary);\n}\n\n.dshc_roomActive {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_hash {\n color: var(--dsw-alias-label-tertiary);\n font-size: 16px;\n}\n\n.dshc_chat {\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n display: flex;\n}\n\n.dshc_chatHead {\n -webkit-app-region: drag;\n border-bottom: 1px solid var(--dsw-alias-border-l2);\n align-items: center;\n gap: 6px;\n height: 44px;\n padding: 0 16px;\n font-weight: 600;\n display: flex;\n}\n\n.dshc_log {\n flex: 1;\n min-height: 0;\n padding: 8px 0 12px;\n overflow-y: auto;\n}\n\n.dshc_guide {\n border: 1px dashed var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-secondary);\n flex-direction: column;\n align-items: flex-start;\n gap: 10px;\n margin: 16px;\n padding: 14px 16px;\n display: flex;\n}\n\n.dshc_empty {\n color: var(--dsw-alias-label-tertiary);\n padding: 24px 16px;\n}\n\n.dshc_message {\n grid-template-columns: 36px minmax(0, 1fr);\n gap: 12px;\n padding: 6px 16px;\n display: grid;\n}\n\n.dshc_system .dshc_text {\n color: var(--dsw-alias-label-tertiary);\n font-style: italic;\n}\n\n.dshc_avatar {\n corner-shape: round;\n color: #fff;\n border-radius: 50%;\n place-items: center;\n width: 36px;\n height: 36px;\n font-weight: 700;\n display: grid;\n position: relative;\n}\n\n.dshc_avatarImage {\n object-fit: cover;\n border-radius: 50%;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.dshc_avatarSmall {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.dshc_avatarAnchor {\n align-self: start;\n position: relative;\n}\n\n.dshc_avatarButton {\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: 50%;\n padding: 0;\n}\n\n.dshc_avatarMenu {\n z-index: 3;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-base);\n min-width: 140px;\n box-shadow: var(--dsw-elevation-panel, 0 8px 24px #0000003d);\n flex-direction: column;\n padding: 6px;\n display: flex;\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n}\n\n.dshc_avatarMenuTitle {\n padding: 4px 8px;\n font-weight: 700;\n}\n\n.dshc_avatarMenuItem {\n border-radius: var(--dsw-radius-sm);\n color: inherit;\n text-align: left;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 6px 8px;\n}\n\n.dshc_avatarMenuItem:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_messageBody {\n min-width: 0;\n}\n\n.dshc_messageHead {\n align-items: baseline;\n gap: 6px;\n display: flex;\n}\n\n.dshc_author {\n font-weight: 600;\n}\n\n.dshc_time {\n color: var(--dsw-alias-label-tertiary);\n font-size: 12px;\n}\n\n.dshc_tag {\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-primary-inverted);\n background: var(--dsw-alias-state-business-primary);\n white-space: nowrap;\n padding: 0 4px;\n font-size: 10px;\n font-weight: 600;\n}\n\n.dshc_edited {\n color: var(--dsw-alias-label-tertiary);\n font-size: 12px;\n}\n\n.dshc_ownActions {\n margin-left: auto;\n margin-right: var(--channels-reply-clearance);\n opacity: 0;\n gap: 8px;\n display: inline-flex;\n}\n\n.dshc_message:hover .dshc_ownActions, .dshc_ownActions:focus-within {\n opacity: 1;\n}\n\n@media (hover: none) {\n .dshc_ownActions {\n display: none;\n }\n\n .dshc_message[data-tools-open] .dshc_ownActions {\n opacity: 1;\n display: inline-flex;\n }\n}\n\n.dshc_editBox {\n flex-direction: column;\n gap: 6px;\n margin-top: 4px;\n display: flex;\n}\n\n.dshc_editInput {\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-base);\n min-height: 60px;\n color: inherit;\n font: inherit;\n resize: vertical;\n padding: 8px;\n}\n\n.dshc_editBar {\n justify-content: flex-end;\n align-items: center;\n gap: 8px;\n display: flex;\n}\n\n.dshc_editBar .dshc_time {\n margin-right: auto;\n}\n\n.dshc_text {\n white-space: normal;\n overflow-wrap: anywhere;\n}\n\n.dshc_card {\n border-left: 4px solid var(--dsw-alias-state-business-primary);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n margin-top: 4px;\n padding: 6px 10px;\n}\n\n.dshc_card[data-state=\"failed\"] {\n border-left-color: var(--dsw-alias-state-error-primary);\n}\n\n.dshc_card[data-state=\"retrying\"] {\n border-left-color: var(--dsw-alias-state-warning-primary, #faa61a);\n}\n\n.dshc_cardButtons {\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n margin-top: 6px;\n display: flex;\n}\n\n.dshc_cardTitle {\n font-size: 13px;\n font-weight: 600;\n}\n\n.dshc_cardHead {\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n display: flex;\n}\n\n.dshc_cardViews {\n gap: 4px;\n display: flex;\n}\n\n.dshc_cardViewButton {\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n color: inherit;\n cursor: pointer;\n background: none;\n padding: 0 6px;\n font-size: 12px;\n}\n\n.dshc_cardViewButton[aria-pressed=\"true\"] {\n background: var(--dsw-alias-bg-base);\n font-weight: 600;\n}\n\n.dshc_permActions {\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n margin-top: 6px;\n display: flex;\n}\n\n.dshc_permScope {\n color: var(--dsw-alias-text-secondary);\n flex-basis: 100%;\n font-size: 12px;\n}\n\n.dshc_permStatus {\n margin-top: 6px;\n font-size: 13px;\n font-weight: 600;\n}\n\n.dshc_message {\n --channels-reply-clearance: 36px;\n position: relative;\n}\n\n.dshc_quote {\n border-left: 2px solid var(--dsw-alias-label-tertiary);\n min-width: 0;\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n text-overflow: ellipsis;\n gap: 6px;\n margin-bottom: 2px;\n padding-left: 8px;\n font-size: 12px;\n display: flex;\n overflow: hidden;\n}\n\n.dshc_quoteDeleted {\n font-style: italic;\n}\n\n.dshc_quoteAuthor {\n flex: none;\n font-weight: 600;\n}\n\n.dshc_replyButton {\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-tertiary);\n background: var(--dsw-alias-bg-layer-2);\n cursor: pointer;\n border: 0;\n padding: 0 6px;\n}\n\n.dshc_msgTools {\n z-index: 1;\n border: 1px solid var(--dsw-alias-separator, #7f7f7f40);\n border-radius: var(--dsw-radius-sm, 6px);\n background: var(--dsw-alias-bg-elevated, var(--dsw-alias-bg-primary, #fff));\n opacity: 0;\n pointer-events: none;\n align-items: center;\n gap: 2px;\n padding: 2px;\n display: inline-flex;\n position: absolute;\n top: 2px;\n right: 16px;\n box-shadow: 0 2px 6px #00000014;\n}\n\n.dshc_msgTool {\n border-radius: var(--dsw-radius-sm, 6px);\n color: var(--dsw-alias-label-secondary);\n white-space: nowrap;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 2px 8px;\n font-size: 12px;\n}\n\n.dshc_msgTool:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.dshc_msgTool:disabled {\n cursor: default;\n opacity: .6;\n}\n\n.dshc_msgToolNote {\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n padding: 0 6px;\n font-size: 12px;\n}\n\n.dshc_message:hover .dshc_msgTools, .dshc_message:focus-within .dshc_msgTools, .dshc_msgTools:has(.dshc_msgToolNote) {\n opacity: 1;\n pointer-events: auto;\n}\n\n@media (hover: none) {\n .dshc_message {\n -webkit-touch-callout: none;\n }\n\n .dshc_msgTools {\n display: none;\n }\n\n .dshc_message[data-tools-open] {\n background: var(--dsw-alias-interactive-bg-hover);\n }\n\n .dshc_message[data-tools-open] .dshc_msgTools {\n z-index: 3;\n opacity: 1;\n pointer-events: auto;\n display: inline-flex;\n top: -14px;\n right: 12px;\n }\n\n .dshc_message[data-tools-open] .dshc_msgTool {\n width: 40px;\n height: 36px;\n }\n}\n\n.dshc_replyBar {\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-tertiary);\n background: var(--dsw-alias-bg-layer-2);\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n padding: 4px 8px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_replyBarText {\n white-space: nowrap;\n text-overflow: ellipsis;\n flex: 1;\n min-width: 0;\n overflow: hidden;\n}\n\n.dshc_replyCancel {\n color: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n flex: none;\n}\n\n.dshc_working {\n min-height: 20px;\n color: var(--dsw-alias-label-tertiary);\n align-items: center;\n gap: 6px;\n padding: 0 16px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_composer {\n padding: 0 16px 16px;\n position: relative;\n}\n\n.dshc_composerBox {\n border: 1px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-bg-layer-1, var(--dsw-alias-bg-layer-2));\n box-shadow: var(--dsw-shadow-lv1-blur);\n flex-direction: column;\n display: flex;\n overflow: hidden;\n}\n\n.dshc_composerBox:focus-within {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.dshc_composerToolbar {\n flex: none;\n align-items: center;\n gap: 4px;\n padding: 4px 10px 10px;\n display: flex;\n}\n\n.dshc_composerBox > .dshc_replyBar, .dshc_composerBox > .dshc_attachments {\n margin: 10px 14px 0;\n}\n\n.dshc_mentionButton {\n border-radius: var(--dsw-radius-full, 50%);\n width: 32px;\n height: 32px;\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n flex: none;\n justify-content: center;\n align-items: center;\n padding: 0;\n font-size: 18px;\n display: inline-flex;\n}\n\n.dshc_mentionButton:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_sendButton {\n border-radius: var(--dsw-radius-full, 50%);\n width: 32px;\n height: 32px;\n color: var(--dsw-alias-label-primary-inverted);\n background: var(--dsw-alias-label-primary);\n font: inherit;\n cursor: pointer;\n border: 0;\n flex: none;\n justify-content: center;\n align-items: center;\n margin-left: auto;\n padding: 0;\n display: inline-flex;\n}\n\n.dshc_sendButton:disabled {\n opacity: .45;\n cursor: default;\n}\n\n.dshc_sendButton:focus-visible, .dshc_mentionButton:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_mentionPopup {\n z-index: 2;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-base);\n max-height: 320px;\n box-shadow: var(--dsw-elevation-panel, 0 8px 24px #0000003d);\n flex-direction: column;\n padding: 6px;\n display: flex;\n position: absolute;\n bottom: calc(100% - 8px);\n left: 16px;\n right: 16px;\n}\n\n.dshc_mentionPopup > [role=\"listbox\"] {\n min-height: 0;\n overflow-y: auto;\n}\n\n.dshc_mentionTitle {\n color: var(--dsw-alias-label-tertiary);\n padding: 4px 8px 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.dshc_mentionItem {\n border-radius: var(--dsw-radius-sm);\n cursor: pointer;\n align-items: center;\n gap: 10px;\n padding: 6px 8px;\n display: flex;\n}\n\n.dshc_mentionActive {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_mentionName {\n font-weight: 600;\n}\n\n.dshc_mentionMeta {\n color: var(--dsw-alias-label-tertiary);\n margin-left: auto;\n font-size: 12px;\n}\n\n.dshc_mentionHint {\n border-top: 1px solid var(--dsw-alias-border-l2);\n color: var(--dsw-alias-label-tertiary);\n padding: 6px 8px 2px;\n font-size: 11px;\n}\n\n.dshc_sendError {\n color: var(--dsw-alias-state-error-primary);\n margin-bottom: 6px;\n font-size: 12px;\n}\n\n.dshc_input {\n box-sizing: border-box;\n width: 100%;\n min-height: 52px;\n max-height: 40vh;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n resize: none;\n field-sizing: content;\n background: none;\n border: 0;\n border-radius: 0;\n flex: 1;\n min-width: 0;\n padding: 14px 16px 8px;\n line-height: 1.5;\n}\n\n.dshc_input::placeholder {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n@media (width <= 600px) {\n .dshc_composer {\n padding: 0 8px 8px;\n }\n\n .dshc_composerToolbar {\n padding: 4px 8px 8px;\n }\n\n .dshc_input {\n padding: 12px 14px 8px;\n }\n}\n\n.dshc_input:focus-visible {\n outline: none;\n}\n\n.dshc_member {\n border-radius: var(--dsw-radius-sm);\n min-width: 0;\n color: inherit;\n font: inherit;\n text-align: left;\n cursor: pointer;\n background: none;\n border: 0;\n flex: 1;\n align-items: center;\n gap: 10px;\n padding: 5px 8px;\n display: flex;\n}\n\n.dshc_member:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_member:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_offline {\n opacity: .5;\n}\n\n.dshc_memberAvatar {\n position: relative;\n}\n\n.dshc_presence {\n border: 2px solid var(--dsw-alias-bg-layer-2);\n corner-shape: round;\n background: #23a55a;\n border-radius: 50%;\n width: 10px;\n height: 10px;\n position: absolute;\n bottom: -2px;\n right: -2px;\n}\n\n.dshc_offline .dshc_presence {\n background: var(--dsw-alias-label-tertiary);\n}\n\n.dshc_memberText {\n flex-direction: column;\n min-width: 0;\n display: flex;\n}\n\n.dshc_memberName {\n align-items: center;\n gap: 6px;\n display: flex;\n}\n\n.dshc_memberStatus {\n color: var(--dsw-alias-label-tertiary);\n font-size: 12px;\n}\n\n@media (width <= 900px) {\n .dshc_page {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .dshc_rooms, .dshc_members {\n display: none;\n }\n}\n\n.dshc_groupHead {\n justify-content: space-between;\n align-items: center;\n padding-right: 4px;\n display: flex;\n}\n\n.dshc_iconButton {\n border-radius: var(--dsw-radius-sm);\n width: 22px;\n height: 22px;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n font-size: 16px;\n line-height: 1;\n}\n\n.dshc_iconButton:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_roomInput, .dshc_fieldInput {\n box-sizing: border-box;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n width: 100%;\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-bg-base);\n font: inherit;\n padding: 6px 8px;\n}\n\n.dshc_roomInput {\n margin: 2px 0 6px;\n}\n\n.dshc_roomInput:focus-visible, .dshc_fieldInput:focus-visible, .dshc_iconButton:focus-visible, .dshc_linkButton:focus-visible, .dshc_addMemberButton:focus-visible, .dshc_primaryButton:focus-visible, .dshc_secondaryButton:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_addMemberButton {\n box-sizing: border-box;\n border: 1px dashed var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n width: 100%;\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n cursor: pointer;\n background: none;\n margin: 4px 0;\n padding: 7px 8px;\n}\n\n.dshc_addMemberButton:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_settingsDivider {\n border: 0;\n border-top: 1px solid var(--dsw-alias-border-l1);\n width: 100%;\n margin: 8px 0 4px;\n}\n\n.dshc_memberListDivider {\n border: 0;\n border-top: 1px solid var(--dsw-alias-border-l1);\n width: calc(100% - 16px);\n margin: 12px 8px 2px;\n}\n\n.dshc_settingsButton {\n text-align: left;\n border-style: solid;\n border-color: #0000;\n align-items: center;\n gap: 8px;\n display: flex;\n}\n\n.dshc_settingsButton svg {\n flex: none;\n}\n\n.dshc_memberRow {\n border-radius: var(--dsw-radius-sm);\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.dshc_memberRow:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_memberRow .dshc_member:hover {\n background: none;\n}\n\n.dshc_memberModel {\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 11px;\n overflow: hidden;\n}\n\n.dshc_memberActions {\n color: var(--dsw-alias-label-tertiary);\n opacity: 0;\n flex: none;\n gap: 4px;\n padding-right: 6px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_memberRow:hover .dshc_memberActions, .dshc_memberRow:focus-within .dshc_memberActions {\n opacity: 1;\n}\n\n.dshc_linkButton {\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 2px 4px;\n font-size: 12px;\n}\n\n.dshc_linkButton:hover {\n color: var(--dsw-alias-label-primary);\n text-decoration: underline;\n}\n\n.dshc_dialogBackdrop {\n z-index: 10;\n background: #00000073;\n place-items: center;\n padding: 16px;\n display: grid;\n position: fixed;\n inset: 0;\n}\n\n.dshc_dialog {\n box-sizing: border-box;\n border-radius: var(--dsw-radius-lg);\n width: min(460px, 100%);\n max-height: calc(100vh - 32px);\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-bg-base);\n box-shadow: var(--dsw-elevation-panel, 0 12px 32px #0000004d);\n flex-direction: column;\n gap: 12px;\n padding: 20px;\n display: flex;\n overflow-y: auto;\n}\n\n.dshc_settingsDialog {\n box-sizing: border-box;\n height: min(70vh, 100dvh - 32px);\n max-height: calc(100dvh - 32px);\n overflow: hidden;\n}\n\n.dshc_settingsBody {\n overscroll-behavior: contain;\n flex: auto;\n min-height: 0;\n padding: 2px;\n overflow-y: auto;\n}\n\n.dshc_settingsDialog > :not(.dshc_settingsBody) {\n flex-shrink: 0;\n}\n\n.dshc_settingsFields {\n flex-direction: column;\n gap: 12px;\n display: flex;\n}\n\n.dshc_settingsFeedback {\n overflow-wrap: anywhere;\n max-height: 20%;\n overflow-y: auto;\n}\n\n.dshc_settingsDialog .dshc_dialogActions {\n justify-content: space-between;\n}\n\n@media (width <= 599px) {\n .dshc_settingsDialog {\n height: calc(100dvh - 32px);\n padding: 16px;\n }\n}\n\n.dshc_avatarCropStage {\n background: #000000a6;\n padding: 20px;\n}\n\n.dshc_avatarCropFrame {\n aspect-ratio: 1;\n touch-action: none;\n cursor: grab;\n outline: 2px solid #fff;\n width: min(256px, 100%);\n margin: auto;\n position: relative;\n overflow: hidden;\n}\n\n.dshc_avatarCropFrame:active {\n cursor: grabbing;\n}\n\n.dshc_avatarCropFrame img {\n pointer-events: none;\n user-select: none;\n max-width: none;\n position: absolute;\n}\n\n.dshc_dialogTitle {\n margin: 0;\n font-size: 16px;\n}\n\n.dshc_field {\n color: var(--dsw-alias-label-secondary);\n flex-direction: column;\n gap: 4px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_field textarea {\n resize: vertical;\n}\n\n.dshc_choiceRow {\n flex-wrap: wrap;\n gap: 12px;\n display: flex;\n}\n\n.dshc_choiceColumn {\n flex-direction: column;\n gap: 12px;\n display: flex;\n}\n\n.dshc_choiceColumn .dshc_choice {\n grid-template-columns: max-content minmax(0, 1fr);\n align-items: start;\n display: grid;\n}\n\n.dshc_choice {\n color: var(--dsw-alias-label-primary, inherit);\n cursor: pointer;\n align-items: center;\n gap: 4px;\n font-size: 13px;\n display: inline-flex;\n}\n\n.dshc_dialogActions {\n justify-content: flex-end;\n gap: 8px;\n display: flex;\n}\n\n.dshc_primaryButton, .dshc_secondaryButton {\n border-radius: var(--dsw-radius-sm);\n font: inherit;\n cursor: pointer;\n padding: 7px 14px;\n}\n\n.dshc_primaryButton {\n color: #fff;\n background: var(--dsw-alias-state-business-primary);\n border: 0;\n}\n\n.dshc_primaryButton:disabled {\n cursor: not-allowed;\n opacity: .5;\n}\n\n.dshc_secondaryButton {\n border: 1px solid var(--dsw-alias-border-l2);\n color: var(--dsw-alias-label-primary);\n background: none;\n}\n\n.dshc_memberFailed .dshc_memberStatus {\n color: var(--dsw-alias-state-error-primary, #ed4245);\n}\n\n.dshc_memberFailed .dshc_presence {\n background: #ed4245;\n}\n\n.dshc_mobileButton, .dshc_drawerBackdrop {\n display: none;\n}\n\n.dshc_panelToggle {\n border-radius: var(--dsw-radius-sm);\n width: 28px;\n height: 28px;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n justify-content: center;\n align-items: center;\n font-size: 16px;\n line-height: 1;\n display: inline-flex;\n}\n\n.dshc_panelToggle:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_panelToggle:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_panelToggleEnd {\n margin-left: auto;\n}\n\n.dshc_capabilityMenu {\n z-index: 4;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-base);\n max-height: 260px;\n box-shadow: var(--dsw-elevation-panel, 0 8px 24px #0000003d);\n gap: 2px;\n padding: 5px;\n display: grid;\n position: absolute;\n bottom: calc(100% + 4px);\n left: 0;\n right: 0;\n overflow-y: auto;\n}\n\n.dshc_capabilityItem:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_capabilityHelp {\n color: var(--dsw-alias-label-secondary);\n white-space: normal;\n margin: 6px;\n font-size: 12px;\n}\n\n.dshc_capabilityItem:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_capabilityItem {\n text-align: left;\n cursor: pointer;\n color: var(--dsw-alias-label-secondary);\n white-space: nowrap;\n background: none;\n border: 0;\n padding: 5px 8px;\n font-size: 12px;\n font-weight: 400;\n}\n\n@media (width >= 901px) {\n .dshc_page.dshc_roomsHidden {\n grid-template-columns: minmax(0, 1fr) 240px;\n }\n\n .dshc_page.dshc_membersHidden {\n grid-template-columns: 220px minmax(0, 1fr);\n }\n\n .dshc_page.dshc_roomsHidden.dshc_membersHidden {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .dshc_roomsHidden > .dshc_rooms, .dshc_membersHidden > .dshc_members {\n display: none;\n }\n}\n\n@media (width <= 900px) {\n .dshc_page {\n position: relative;\n overflow: hidden;\n }\n\n .dshc_mobileButton {\n min-width: 40px;\n min-height: 40px;\n color: inherit;\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: 6px;\n justify-content: center;\n align-items: center;\n display: inline-flex;\n }\n\n .dshc_mobileButton:last-child {\n margin-left: auto;\n }\n\n .dshc_panelToggle {\n display: none;\n }\n\n .dshc_drawerBackdrop {\n z-index: 4;\n background: #00000073;\n border: 0;\n display: block;\n position: absolute;\n inset: 0;\n }\n\n .dshc_rooms.dshc_drawerOpen, .dshc_members.dshc_drawerOpen {\n z-index: 5;\n box-sizing: border-box;\n width: min(280px, 85%);\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n box-shadow: 0 0 24px #0000004d;\n }\n\n .dshc_rooms.dshc_drawerOpen {\n left: 0;\n }\n\n .dshc_members.dshc_drawerOpen {\n right: 0;\n }\n\n .dshc_memberActions {\n opacity: 1;\n }\n\n .dshc_messageHead {\n flex-wrap: wrap;\n }\n}\n\n.dshc_avatarPicker {\n flex-wrap: wrap;\n gap: 8px;\n display: flex;\n}\n\n.dshc_avatarOption {\n cursor: pointer;\n background: none;\n border: 2px solid #0000;\n border-radius: 50%;\n padding: 2px;\n display: grid;\n}\n\n.dshc_avatarOption[aria-checked=\"true\"] {\n border-color: var(--dsw-alias-accent, #5865f2);\n}\n\n.dshc_taskBoardTrigger {\n box-sizing: border-box;\n border-radius: var(--dsw-radius-sm);\n width: 100%;\n height: 34px;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n text-align: left;\n cursor: pointer;\n background: none;\n border: 0;\n flex: none;\n align-items: center;\n gap: 8px;\n margin: 4px 0;\n padding: 7px 8px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_taskBoardTrigger:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_taskBoardTrigger:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_taskBoardSummary {\n color: var(--dsw-alias-label-secondary);\n text-align: right;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n overflow: hidden;\n}\n\n.dshc_taskBoardDialog {\n width: min(920px, 100%);\n height: min(70vh, 100dvh - 32px);\n overflow: hidden;\n}\n\n.dshc_taskBoardBody {\n overscroll-behavior: contain;\n flex: auto;\n min-height: 0;\n overflow-y: auto;\n}\n\n.dshc_taskBoardDialog > :not(.dshc_taskBoardBody) {\n flex-shrink: 0;\n}\n\n.dshc_boardTabs {\n border-bottom: 1px solid var(--dsw-alias-border-l2);\n gap: 4px;\n padding-bottom: 8px;\n display: flex;\n overflow-x: auto;\n}\n\n.dshc_boardTabs button {\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n flex: none;\n padding: 7px 10px;\n font-size: 13px;\n}\n\n.dshc_boardTabs button:hover, .dshc_boardTabs button[aria-selected=\"true\"] {\n color: var(--dsw-alias-state-business-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_boardTabs button:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n outline-offset: -2px;\n}\n\n.dshc_boardTabCount {\n font-variant-numeric: tabular-nums;\n margin-left: 4px;\n}\n\n.dshc_boardCardGrid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 12px;\n margin: 6px 0 16px;\n padding: 2px;\n list-style: none;\n display: grid;\n}\n\n.dshc_boardTaskCard {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-base);\n border-radius: 12px;\n flex-direction: column;\n gap: 10px;\n min-width: 0;\n padding: 14px;\n transition: transform .14s, box-shadow .14s;\n display: flex;\n}\n\n.dshc_boardTaskCard[data-working=\"true\"] {\n border-color: var(--dsw-alias-state-business-primary);\n}\n\n.dshc_boardTaskCard[data-status=\"done\"] {\n filter: saturate(.25);\n color: var(--dsw-alias-label-secondary);\n}\n\n.dshc_boardTaskCard:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px #00000014;\n}\n\n.dshc_boardTaskHeader {\n align-items: flex-start;\n gap: 8px;\n display: flex;\n}\n\n.dshc_boardTaskTitle {\n overflow-wrap: anywhere;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n flex: 1;\n font-size: 14px;\n font-weight: 600;\n line-height: 1.5;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.dshc_boardTaskHeader .dshc_taskStatus {\n border-radius: 999px;\n padding: 3px 7px;\n font-size: 11px;\n}\n\n.dshc_boardTaskCard .dshc_taskLinks {\n justify-content: flex-end;\n margin-top: auto;\n}\n\n.dshc_boardTabEmpty {\n min-height: 240px;\n color: var(--dsw-alias-label-secondary);\n text-align: center;\n justify-content: center;\n align-items: center;\n padding: 40px 16px;\n display: flex;\n}\n\n@media (width <= 640px) {\n .dshc_boardCardGrid {\n grid-template-columns: minmax(0, 1fr);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_boardTaskCard {\n transition: none;\n }\n\n .dshc_boardTaskCard:hover {\n transform: none;\n }\n}\n\n.dshc_taskBoardScope {\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n}\n\n.dshc_taskSection + .dshc_taskSection {\n margin-top: 8px;\n}\n\n.dshc_taskSectionTitle {\n color: var(--dsw-alias-label-secondary);\n margin: 0 0 4px;\n padding: 0 8px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.dshc_taskOwnerGroup + .dshc_taskOwnerGroup {\n margin-top: 4px;\n}\n\n.dshc_taskOwnerName {\n color: var(--dsw-alias-label-tertiary);\n padding: 0 8px;\n font-size: 12px;\n}\n\n.dshc_taskList {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.dshc_taskRow {\n border-radius: var(--dsw-radius-sm);\n padding: 6px 8px;\n}\n\n.dshc_taskRow:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_taskLine {\n align-items: center;\n gap: 6px;\n min-width: 0;\n display: flex;\n}\n\n.dshc_taskTitle {\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 13px;\n overflow: hidden;\n}\n\n.dshc_taskMeta {\n color: var(--dsw-alias-label-tertiary);\n flex-wrap: wrap;\n gap: 0 8px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_taskLinks {\n gap: 8px;\n display: flex;\n}\n\n.dshc_taskEmpty {\n color: var(--dsw-alias-label-tertiary);\n margin: 0 8px;\n font-size: 12px;\n}\n\n.dshc_taskDone summary {\n cursor: pointer;\n}\n\n.dshc_taskStatus {\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-primary-inverted);\n background: var(--dsw-alias-state-business-primary);\n flex: none;\n padding: 0 4px;\n font-size: 10px;\n font-style: normal;\n font-weight: 600;\n}\n\n.dshc_taskStatus[data-status=\"asked\"], .dshc_taskStatus[data-status=\"escalated\"], .dshc_taskStatus[data-status=\"declined\"], .dshc_taskStatus[data-status=\"rework\"] {\n background: var(--dsw-alias-state-warning-primary, var(--dsw-alias-state-error-primary));\n}\n\n.dshc_taskStatus[data-status=\"done\"] {\n background: var(--dsw-alias-label-tertiary);\n}\n\n.dshc_taskCard {\n margin-top: 4px;\n font-style: normal;\n}\n\n.dshc_taskMembers {\n margin: 4px 0 0;\n padding: 0;\n list-style: none;\n}\n\n.dshc_taskMember {\n align-items: center;\n gap: 8px;\n font-size: 13px;\n display: flex;\n}\n\n.dshc_taskMemberName {\n font-weight: 600;\n}\n\n.dshc_taskSub {\n color: var(--dsw-alias-label-secondary);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.dshc_focused {\n background: var(--dsw-alias-interactive-bg-hover);\n outline: 2px solid var(--dsw-alias-state-business-primary);\n}\n\n.dshc_attachments {\n flex-wrap: wrap;\n gap: 6px;\n margin: 4px 0;\n display: flex;\n}\n\n.dshc_attachmentImage {\n border-radius: 4px;\n max-width: min(320px, 100%);\n max-height: 240px;\n display: block;\n}\n\n.dshc_imageAttachment {\n align-content: start;\n max-width: 100%;\n display: grid;\n}\n\n.dshc_imagePreviewTrigger {\n cursor: zoom-in;\n background: none;\n border: 0;\n border-radius: 4px;\n grid-area: 1 / 1;\n padding: 0;\n}\n\n.dshc_imagePreviewTrigger:focus-visible {\n outline: 2px solid var(--dsw-alias-state-business-primary);\n outline-offset: 2px;\n}\n\n.dshc_imagePreviewDialog {\n box-sizing: border-box;\n width: fit-content;\n max-width: 90vw;\n max-height: 90dvh;\n overflow: auto;\n}\n\n.dshc_imagePreviewHeader {\n flex-shrink: 0;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n display: flex;\n}\n\n.dshc_imagePreviewHeader span {\n overflow-wrap: anywhere;\n min-width: 0;\n}\n\n.dshc_imagePreviewHeader button {\n flex-shrink: 0;\n}\n\n.dshc_imagePreviewImage {\n object-fit: contain;\n align-self: center;\n max-width: 100%;\n min-height: 0;\n max-height: 65dvh;\n display: block;\n}\n\n.dshc_imagePreviewActions {\n flex-wrap: wrap;\n flex-shrink: 0;\n gap: 8px;\n display: flex;\n}\n\n.dshc_imagePreviewActions a {\n text-decoration: none;\n}\n\n.dshc_imagePreviewActions button:disabled {\n cursor: wait;\n opacity: .5;\n}\n\n.dshc_attachmentActions {\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-base);\n opacity: 0;\n pointer-events: none;\n flex-wrap: wrap;\n grid-area: 1 / 1;\n place-self: start end;\n gap: 4px;\n margin: 4px;\n padding: 4px;\n display: flex;\n}\n\n.dshc_attachmentActions a {\n text-decoration: none;\n}\n\n.dshc_attachmentActions button:disabled {\n cursor: wait;\n opacity: .5;\n}\n\n.dshc_imageAttachment:hover .dshc_attachmentActions, .dshc_imageAttachment:focus-within .dshc_attachmentActions, .dshc_imageAttachment[data-copy-state=\"error\"] .dshc_attachmentActions, .dshc_imageAttachment[data-copy-state=\"copying\"] .dshc_attachmentActions, .dshc_imageAttachment[data-copy-state=\"copied\"] .dshc_attachmentActions {\n opacity: 1;\n pointer-events: auto;\n}\n\n@media (hover: none), (pointer: coarse), (width <= 768px) {\n .dshc_attachmentActions {\n opacity: 1;\n pointer-events: auto;\n }\n}\n\n.dshc_attachmentThumb {\n object-fit: cover;\n vertical-align: middle;\n border-radius: 3px;\n width: 32px;\n height: 32px;\n}\n\n.dshc_attachmentFile {\n background: var(--background-secondary, #7f7f7f26);\n color: inherit;\n border-radius: 4px;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n text-decoration: none;\n display: inline-flex;\n}\n\n.dshc_attachmentSize {\n opacity: .6;\n font-size: .85em;\n}\n\n.dshc_attachmentAudio {\n flex-direction: column;\n gap: 2px;\n width: min(320px, 100%);\n display: flex;\n}\n\n.dshc_attachmentAudio audio {\n width: 100%;\n}\n\n.dshc_attachmentAudio a {\n color: inherit;\n text-decoration: none;\n}\n\n.dshc_attachmentFile {\n overflow-wrap: anywhere;\n max-width: 100%;\n}\n\n.dshc_chatHead button, .dshc_chatHead input, .dshc_chatHead select, .dshc_chatHead a, .dshc_chatHead [role=\"menu\"] {\n -webkit-app-region: no-drag;\n}\n\n.dshc_text pre, .dshc_text table {\n max-width: 100%;\n overflow-x: auto;\n}\n\n@media (width >= 901px) {\n .dshc_page {\n grid-template-columns: 232px minmax(0, 1fr) 272px;\n }\n\n .dshc_page.dshc_roomsHidden {\n grid-template-columns: minmax(0, 1fr) 272px;\n }\n\n .dshc_page.dshc_membersHidden {\n grid-template-columns: 232px minmax(0, 1fr);\n }\n\n .dshc_page.dshc_roomsHidden.dshc_membersHidden {\n grid-template-columns: minmax(0, 1fr);\n }\n}\n\n.dshc_rooms {\n padding-top: 4px;\n}\n\n.dshc_room {\n border-radius: var(--dsw-radius-md);\n min-height: 34px;\n padding: 6px 10px;\n transition: background-color .15s, color .15s;\n}\n\n.dshc_workspace {\n min-height: 30px;\n padding-left: 28px;\n font-size: 13px;\n position: relative;\n}\n\n.dshc_workspace:before {\n content: \"\";\n border-left: 1px solid var(--dsw-alias-border-l2);\n border-bottom: 1px solid var(--dsw-alias-border-l2);\n border-bottom-left-radius: 4px;\n width: 7px;\n position: absolute;\n top: 0;\n bottom: 50%;\n left: 15px;\n}\n\n.dshc_workspace .dshc_hash {\n display: none;\n}\n\n.dshc_roomActive {\n color: var(--dsw-alias-label-primary);\n background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, transparent);\n box-shadow: inset 2px 0 0 var(--dsw-alias-state-business-primary);\n font-weight: 600;\n}\n\n.dshc_activeCount {\n font-variant-numeric: tabular-nums;\n border-radius: 999px;\n margin-left: 0;\n padding: 0 6px;\n font-size: 11px;\n line-height: 18px;\n}\n\n.dshc_activeBusy {\n color: var(--dsw-alias-state-business-primary);\n background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, transparent);\n}\n\n.dshc_roomLabel {\n flex: auto;\n min-width: 0;\n}\n\n.dshc_avatarStack {\n flex: none;\n align-items: center;\n padding-left: 4px;\n display: inline-flex;\n}\n\n.dshc_stackDot {\n border: 2px solid var(--dsw-alias-bg-layer-2);\n background-position: center;\n background-size: cover;\n border-radius: 50%;\n width: 18px;\n height: 18px;\n margin-left: -6px;\n}\n\n.dshc_room .dshc_stackDot {\n width: 16px;\n height: 16px;\n}\n\n.dshc_roomActive .dshc_stackDot {\n border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, var(--dsw-alias-bg-layer-2));\n}\n\n.dshc_chatHead {\n gap: 8px;\n height: 52px;\n}\n\n.dshc_roomName {\n letter-spacing: -.01em;\n white-space: nowrap;\n font-size: 15px;\n}\n\n.dshc_headMeta {\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n font-weight: 400;\n overflow: hidden;\n}\n\n.dshc_headActivity {\n color: var(--dsw-alias-label-secondary);\n flex: none;\n align-items: center;\n gap: 6px;\n margin-left: auto;\n font-size: 12px;\n font-weight: 500;\n display: inline-flex;\n}\n\n.dshc_headActivity .dshc_stackDot {\n border-color: var(--dsw-alias-bg-base);\n width: 22px;\n height: 22px;\n}\n\n.dshc_headActivity + .dshc_panelToggleEnd {\n margin-left: 4px;\n}\n\n.dshc_chatHead > .dshc_roomName {\n text-overflow: ellipsis;\n min-width: 0;\n overflow: hidden;\n}\n\n.dshc_chatHead > .dshc_taskBoardTrigger {\n width: auto;\n margin: 0 0 0 auto;\n}\n\n.dshc_chatHead .dshc_taskBoardSummary {\n display: none;\n}\n\n.dshc_headLead {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n border-radius: 999px;\n flex: 0 auto;\n align-items: center;\n gap: 6px;\n min-width: 0;\n padding: 4px 8px;\n font-size: 12px;\n display: inline-flex;\n}\n\n.dshc_headLeadText {\n flex-direction: column;\n min-width: 0;\n display: flex;\n}\n\n.dshc_headLeadName {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.dshc_headLeadStatus {\n color: var(--dsw-alias-label-secondary);\n white-space: nowrap;\n font-size: 11px;\n font-weight: 400;\n}\n\n.dshc_headLead + .dshc_panelToggleEnd {\n margin-left: 0;\n}\n\n.dshc_membersHead {\n align-items: center;\n height: 52px;\n padding: 0 4px;\n display: flex;\n}\n\n.dshc_membersHeadTitle {\n color: var(--dsw-alias-label-tertiary);\n letter-spacing: .08em;\n font-size: 11px;\n font-weight: 650;\n}\n\n.dshc_log {\n padding: 12px 0 16px;\n}\n\n.dshc_message {\n grid-template-columns: 36px minmax(0, 1fr);\n gap: 12px;\n padding: 8px 20px 2px;\n transition: background-color .15s;\n}\n\n.dshc_message.dshc_grouped {\n padding-top: 1px;\n}\n\n.dshc_message:hover {\n background: color-mix(in srgb, var(--dsw-alias-interactive-bg-hover) 70%, transparent);\n}\n\n.dshc_messageHead {\n gap: 8px;\n margin-bottom: 2px;\n}\n\n.dshc_messageHeadGrouped {\n margin-bottom: 0;\n}\n\n.dshc_messageHeadGrouped:not(:has(*)) {\n display: none;\n}\n\n.dshc_author {\n font-size: 13px;\n}\n\n.dshc_time, .dshc_edited {\n font-variant-numeric: tabular-nums;\n font-size: 11px;\n}\n\n.dshc_gutterTime {\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n text-align: right;\n opacity: 0;\n align-self: start;\n padding-top: 3px;\n font-size: 10px;\n transition: opacity .15s;\n}\n\n.dshc_message:hover .dshc_gutterTime {\n opacity: 1;\n}\n\n.dshc_text {\n line-height: 1.6;\n}\n\n.dshc_own {\n grid-template-columns: minmax(0, 1fr) 36px;\n}\n\n.dshc_own > :first-child {\n grid-area: 1 / 2;\n}\n\n.dshc_own > .dshc_messageBody {\n flex-direction: column;\n grid-area: 1 / 1;\n align-items: flex-end;\n display: flex;\n}\n\n.dshc_own .dshc_messageHead {\n flex-direction: row-reverse;\n}\n\n.dshc_own .dshc_ownActions {\n margin-left: 0;\n margin-right: auto;\n}\n\n.dshc_own > .dshc_messageBody > .dshc_text {\n max-width: min(560px, 100%);\n color: var(--dsw-alias-label-primary);\n background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 16%, var(--dsw-alias-bg-layer-2));\n box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--dsw-alias-state-business-primary) 28%, transparent);\n border-radius: 16px 6px 16px 16px;\n padding: 8px 14px;\n}\n\n.dshc_own > .dshc_messageBody > .dshc_quote {\n align-self: flex-end;\n}\n\n.dshc_own .dshc_msgTools {\n left: 16px;\n right: auto;\n}\n\n.dshc_own.dshc_grouped > .dshc_messageBody > .dshc_text {\n border-radius: 16px 6px 6px 16px;\n}\n\n.dshc_systemRecord {\n flex-direction: column;\n align-items: center;\n padding-bottom: 4px;\n display: flex;\n}\n\n.dshc_systemRecord > .dshc_systemLine {\n align-self: stretch;\n}\n\n.dshc_taskRecord {\n box-sizing: border-box;\n width: min(480px, 100% - 40px);\n margin-top: 0;\n}\n\n.dshc_systemLine {\n color: var(--dsw-alias-label-tertiary);\n align-items: center;\n gap: 12px;\n padding: 10px 32px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_systemLine:before, .dshc_systemLine:after {\n content: \"\";\n background: var(--dsw-alias-border-l2);\n flex: 24px;\n min-width: 24px;\n height: 1px;\n}\n\n.dshc_systemText {\n text-align: center;\n max-width: min(640px, 80%);\n}\n\n.dshc_systemText p {\n margin: 0;\n}\n\n.dshc_errorBar {\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 35%, transparent);\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 9%, transparent);\n border-radius: 12px;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px 10px;\n margin: 6px 20px 6px 68px;\n padding: 8px 12px;\n font-size: 13px;\n display: flex;\n}\n\n.dshc_errorBar .dshc_cardButtons {\n margin: 0 0 0 auto;\n}\n\n.dshc_errorBar .dshc_secondaryButton {\n padding: 3px 10px;\n font-size: 12px;\n}\n\n.dshc_errorBar[data-state=\"retried\"] {\n opacity: .65;\n}\n\n.dshc_errorIcon {\n color: #fff;\n background: var(--dsw-alias-state-error-primary);\n border-radius: 50%;\n flex: none;\n place-items: center;\n width: 18px;\n height: 18px;\n font-size: 12px;\n font-weight: 700;\n display: grid;\n}\n\n.dshc_errorText {\n min-width: 0;\n color: var(--dsw-alias-label-primary);\n flex: 200px;\n}\n\n.dshc_errorText p {\n margin: 0;\n}\n\n.dshc_runStrip {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-1, var(--dsw-alias-bg-layer-2));\n border-radius: 12px;\n flex-direction: column;\n max-width: 100%;\n margin-top: 4px;\n padding: 5px 10px;\n font-size: 12px;\n display: inline-flex;\n}\n\n.dshc_runStrip[data-state=\"running\"] {\n border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 45%, var(--dsw-alias-border-l2));\n}\n\n.dshc_runStrip[data-state=\"failed\"] {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, var(--dsw-alias-border-l2));\n}\n\n.dshc_runHead {\n min-width: 0;\n color: var(--dsw-alias-label-secondary);\n align-items: center;\n gap: 8px;\n display: flex;\n}\n\n.dshc_runTitle {\n color: var(--dsw-alias-label-primary);\n flex: none;\n font-weight: 600;\n}\n\n.dshc_runSummary {\n font-variant-numeric: tabular-nums;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.dshc_runHead .dshc_cardViews {\n margin-left: 8px;\n}\n\n.dshc_runHead .dshc_cardViewButton {\n color: var(--dsw-alias-label-tertiary);\n border-radius: 999px;\n font-size: 11px;\n}\n\n.dshc_runHead .dshc_cardViewButton[aria-pressed=\"true\"] {\n color: var(--dsw-alias-label-primary);\n}\n\n.dshc_runIcon {\n border-radius: 50%;\n flex: none;\n width: 12px;\n height: 12px;\n position: relative;\n}\n\n.dshc_runStrip[data-state=\"running\"] .dshc_runIcon {\n border: 2px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 25%, transparent);\n border-top-color: var(--dsw-alias-state-business-primary);\n animation: .8s linear infinite dshc_channels-spin;\n}\n\n.dshc_runStrip[data-state=\"completed\"] .dshc_runIcon {\n background: #23a55a;\n}\n\n.dshc_runStrip[data-state=\"completed\"] .dshc_runIcon:after {\n content: \"\";\n border: 1.5px solid #fff;\n border-width: 0 1.5px 1.5px 0;\n width: 3px;\n height: 6px;\n position: absolute;\n top: 2px;\n left: 4px;\n transform: rotate(45deg);\n}\n\n.dshc_runStrip[data-state=\"failed\"] .dshc_runIcon {\n background: var(--dsw-alias-state-error-primary);\n}\n\n.dshc_runSteps {\n color: var(--dsw-alias-label-secondary);\n margin-top: 4px;\n font-size: 12px;\n line-height: 1.55;\n}\n\n.dshc_runSteps p {\n margin: 0;\n}\n\n.dshc_runStrip .dshc_cardButtons {\n margin-top: 6px;\n}\n\n@keyframes dshc_channels-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_runStrip[data-state=\"running\"] .dshc_runIcon {\n animation-duration: 2.4s;\n }\n}\n\n.dshc_card {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n border-left-width: 1px;\n border-radius: 14px;\n margin-top: 6px;\n padding: 10px 12px;\n}\n\n.dshc_card[data-state=\"failed\"] {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 40%, var(--dsw-alias-border-l2));\n}\n\n.dshc_taskAnchor {\n max-width: 560px;\n box-shadow: inset 3px 0 0 var(--channels-accent-warm, #d08a2e);\n}\n\n.dshc_permInline {\n color: var(--dsw-alias-label-secondary);\n flex-wrap: wrap;\n align-items: baseline;\n gap: 4px 8px;\n display: flex;\n}\n\n.dshc_permInline .dshc_text {\n flex: 0 auto;\n min-width: 0;\n}\n\n.dshc_permInline .dshc_text p {\n margin: 0;\n}\n\n.dshc_permLock {\n color: var(--dsw-alias-state-warning-primary, #e9a23b);\n flex: none;\n font-size: 9px;\n}\n\n.dshc_permWaiting {\n color: var(--dsw-alias-state-warning-primary, #e9a23b);\n flex: none;\n font-size: 11px;\n font-weight: 600;\n}\n\n.dshc_permTray {\n flex-direction: column;\n gap: 6px;\n max-height: 40%;\n margin: 0 16px 8px;\n display: flex;\n overflow-y: auto;\n}\n\n.dshc_permTrayItem {\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 55%, var(--dsw-alias-border-l2));\n background: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 7%, var(--dsw-alias-bg-layer-2));\n border-radius: 14px;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px 12px;\n padding: 10px 12px;\n display: flex;\n box-shadow: 0 6px 20px -12px #00000059;\n}\n\n.dshc_permTrayText {\n flex: 240px;\n min-width: 0;\n font-size: 13px;\n}\n\n.dshc_permTrayText .dshc_text p {\n margin: 0;\n}\n\n.dshc_permTrayWho {\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n font-weight: 600;\n}\n\n.dshc_permTrayItem .dshc_permActions {\n flex-wrap: nowrap;\n margin: 0;\n}\n\n.dshc_permTrayItem .dshc_permScope {\n display: none;\n}\n\n.dshc_members {\n flex-direction: column;\n padding: 0 10px 16px;\n}\n\n@media (width >= 901px) {\n .dshc_members {\n display: flex;\n }\n\n .dshc_membersHidden > .dshc_members {\n display: none;\n }\n}\n\n.dshc_members.dshc_drawerOpen {\n display: flex;\n}\n\n.dshc_activityNow {\n flex-direction: column;\n gap: 2px;\n margin-bottom: 6px;\n display: flex;\n}\n\n.dshc_activityItem {\n border: 1px solid var(--dsw-alias-border-l2);\n width: 100%;\n color: inherit;\n background: var(--dsw-alias-bg-base);\n font: inherit;\n text-align: left;\n cursor: pointer;\n border-radius: 12px;\n align-items: center;\n gap: 10px;\n padding: 8px 10px;\n display: flex;\n}\n\n.dshc_activityItem + .dshc_activityItem {\n margin-top: 4px;\n}\n\n.dshc_activityItem:hover {\n border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 40%, var(--dsw-alias-border-l2));\n}\n\n.dshc_activityItem:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_activityText {\n flex-direction: column;\n flex: 1;\n min-width: 0;\n display: flex;\n}\n\n.dshc_activityName {\n font-size: 13px;\n font-weight: 600;\n}\n\n.dshc_activityWhat {\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n overflow: hidden;\n}\n\n.dshc_activityPulse {\n background: var(--dsw-alias-state-business-primary);\n border-radius: 50%;\n flex: none;\n width: 8px;\n height: 8px;\n animation: 1.6s ease-in-out infinite dshc_channels-pulse;\n}\n\n@keyframes dshc_channels-pulse {\n 50% {\n box-shadow: 0 0 0 3px #23a55a40;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_activityPulse {\n animation: none;\n }\n}\n\n.dshc_member {\n padding: 6px 8px;\n}\n\n.dshc_memberText {\n flex: 1;\n}\n\n.dshc_memberStatus {\n flex: none;\n margin-left: auto;\n font-size: 11px;\n}\n\n.dshc_memberStatus[data-status=\"busy\"] {\n color: var(--dsw-alias-state-business-primary);\n font-weight: 600;\n}\n\n.dshc_memberStatus[data-status=\"error\"] {\n color: var(--dsw-alias-state-error-primary);\n font-weight: 600;\n}\n\n.dshc_memberActions {\n background: var(--dsw-alias-bg-layer-2);\n padding-left: 8px;\n position: absolute;\n top: 50%;\n right: 8px;\n transform: translateY(-50%);\n}\n\n.dshc_addMemberButton {\n border-radius: 10px;\n}\n\n@media (width <= 900px) {\n .dshc_headMeta, .dshc_headActivityText {\n display: none;\n }\n\n .dshc_chatHead {\n padding: 0 8px;\n }\n\n .dshc_mobileButton {\n white-space: nowrap;\n }\n\n .dshc_headActivity ~ .dshc_mobileButton:last-child {\n margin-left: 4px;\n }\n\n .dshc_message {\n padding-left: 12px;\n padding-right: 12px;\n }\n\n .dshc_errorBar {\n margin-left: 12px;\n margin-right: 12px;\n }\n\n .dshc_permTray {\n margin: 0 8px 8px;\n }\n\n .dshc_permTrayItem .dshc_permActions {\n flex-wrap: wrap;\n }\n\n .dshc_systemLine {\n padding: 8px 12px;\n }\n\n .dshc_systemText {\n max-width: 90%;\n }\n\n .dshc_memberActions {\n background: none;\n padding-left: 0;\n position: static;\n transform: none;\n }\n}\n\n@keyframes dshc_channelsEnter {\n from {\n opacity: 0;\n transform: translateY(6px);\n }\n\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n@keyframes dshc_channelsEnterOwn {\n from {\n opacity: 0;\n transform: translateY(12px) scale(.985);\n }\n\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n@keyframes dshc_channelsGlow {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n@keyframes dshc_channelsPop {\n from {\n opacity: 0;\n transform: translateY(4px) scale(.98);\n }\n\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n@keyframes dshc_channelsDot {\n 0%, 60%, 100% {\n opacity: .35;\n transform: none;\n }\n\n 30% {\n opacity: 1;\n transform: translateY(-2px);\n }\n}\n\n@keyframes dshc_channelsDrain {\n from {\n transform: scaleX(1);\n }\n\n to {\n transform: scaleX(0);\n }\n}\n\n.dshc_enter {\n animation: .18s cubic-bezier(.2, 0, 0, 1) both dshc_channelsEnter;\n}\n\n.dshc_enterOwn {\n animation: .22s cubic-bezier(.22, 1, .36, 1) both dshc_channelsEnterOwn;\n}\n\n.dshc_enterGlow:before {\n content: \"\";\n pointer-events: none;\n background: linear-gradient(90deg, color-mix(in srgb, var(--dsw-alias-state-business-primary) 10%, transparent), transparent 70%);\n animation: .7s cubic-bezier(.4, 0, .2, 1) both dshc_channelsGlow;\n animation-delay: inherit;\n position: absolute;\n inset: 0;\n}\n\n.dshc_message {\n transition: background-color .16s cubic-bezier(.2, 0, 0, 1);\n}\n\n.dshc_room {\n transition: background-color .16s cubic-bezier(.2, 0, 0, 1), color .16s cubic-bezier(.2, 0, 0, 1);\n}\n\n.dshc_card {\n transition: border-color .32s cubic-bezier(.2, 0, 0, 1), background-color .32s cubic-bezier(.2, 0, 0, 1);\n}\n\n.dshc_sendButton, .dshc_primaryButton, .dshc_secondaryButton, .dshc_mentionButton, .dshc_cardViewButton {\n transition: background-color .16s cubic-bezier(.2, 0, 0, 1), opacity .16s cubic-bezier(.2, 0, 0, 1), transform .12s cubic-bezier(.2, 0, 0, 1);\n}\n\n.dshc_sendButton:not(:disabled):active, .dshc_primaryButton:not(:disabled):active, .dshc_secondaryButton:not(:disabled):active, .dshc_mentionButton:not(:disabled):active, .dshc_cardViewButton:active {\n transform: translateY(1px);\n}\n\n.dshc_mentionPopup {\n transform-origin: bottom;\n animation: .16s cubic-bezier(.22, 1, .36, 1) both dshc_channelsPop;\n}\n\n.dshc_typingDots {\n vertical-align: middle;\n gap: 3px;\n margin-right: 6px;\n display: inline-flex;\n}\n\n.dshc_typingDots i {\n background: currentColor;\n border-radius: 50%;\n width: 4px;\n height: 4px;\n animation: 1.2s ease-in-out infinite dshc_channelsDot;\n}\n\n.dshc_typingDots i:nth-child(2) {\n animation-delay: .15s;\n}\n\n.dshc_typingDots i:nth-child(3) {\n animation-delay: .3s;\n}\n\n.dshc_logWrap {\n flex-direction: column;\n flex: 1;\n min-height: 0;\n display: flex;\n position: relative;\n}\n\n.dshc_olderLoading {\n color: var(--dsw-alias-label-tertiary);\n text-align: center;\n padding: 8px 16px;\n font-size: 12px;\n}\n\n.dshc_unreadDivider {\n color: var(--dsw-alias-state-error-primary);\n align-items: center;\n gap: 8px;\n margin: 8px 16px;\n font-size: 12px;\n font-weight: 600;\n display: flex;\n}\n\n.dshc_unreadDivider:before, .dshc_unreadDivider:after {\n content: \"\";\n opacity: .35;\n background: currentColor;\n flex: 1;\n height: 1px;\n}\n\n.dshc_withdrawnRow {\n text-align: right;\n color: var(--dsw-alias-label-tertiary);\n padding: 6px 16px;\n font-size: 13px;\n font-style: italic;\n animation: .18s cubic-bezier(.2, 0, 0, 1) both dshc_channelsEnter;\n}\n\n.dshc_jumpLatest {\n z-index: 3;\n border: 1px solid var(--dsw-alias-border-l2);\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-bg-base);\n box-shadow: var(--dsw-elevation-panel, 0 8px 24px #00000029);\n font: inherit;\n cursor: pointer;\n border-radius: 999px;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n font-size: 12px;\n animation: .22s cubic-bezier(.22, 1, .36, 1) both dshc_channelsPop;\n display: inline-flex;\n position: absolute;\n bottom: 12px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.dshc_jumpLatest:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_jumpLatest:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_jumpCount {\n color: var(--dsw-alias-state-business-primary);\n font-weight: 600;\n}\n\n.dshc_undoToast {\n z-index: 4;\n border-radius: var(--dsw-radius-md);\n width: max-content;\n max-width: calc(100% - 32px);\n color: var(--dsw-alias-label-primary-inverted);\n background: var(--dsw-alias-label-primary);\n box-shadow: var(--dsw-elevation-panel, 0 8px 24px #0000003d);\n align-items: center;\n gap: 12px;\n margin: 0 auto;\n padding: 8px 8px 8px 14px;\n font-size: 13px;\n animation: .22s cubic-bezier(.22, 1, .36, 1) both dshc_channelsPop;\n display: flex;\n position: absolute;\n bottom: 12px;\n left: 0;\n right: 0;\n overflow: hidden;\n}\n\n.dshc_undoButton {\n border-radius: var(--dsw-radius-sm);\n color: inherit;\n background: color-mix(in srgb, currentColor 16%, transparent);\n font: inherit;\n cursor: pointer;\n border: 0;\n padding: 2px 10px;\n font-weight: 600;\n}\n\n.dshc_undoButton:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_undoBar {\n background: var(--dsw-alias-state-business-primary);\n transform-origin: 0;\n height: 2px;\n animation: linear forwards dshc_channelsDrain;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n.dshc_undoToast ~ .dshc_jumpLatest {\n display: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_enter, .dshc_enterOwn, .dshc_enterGlow:before, .dshc_mentionPopup, .dshc_jumpLatest, .dshc_undoToast, .dshc_withdrawnRow {\n animation: none;\n }\n\n .dshc_typingDots i {\n opacity: .6;\n animation: none;\n }\n\n .dshc_undoBar {\n animation: none;\n }\n\n .dshc_message, .dshc_room, .dshc_card, .dshc_sendButton, .dshc_primaryButton, .dshc_secondaryButton, .dshc_mentionButton, .dshc_cardViewButton {\n transition: none;\n }\n}\n\n.dshc_leadCard {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n border-radius: 14px;\n align-items: center;\n gap: 10px;\n margin: 8px 8px 4px;\n padding: 10px 12px;\n display: flex;\n}\n\n.dshc_leadCardText {\n flex-direction: column;\n min-width: 0;\n display: flex;\n}\n\n.dshc_leadCardName {\n color: var(--dsw-alias-label-primary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 14px;\n font-weight: 650;\n overflow: hidden;\n}\n\n.dshc_leadCardStatus {\n color: var(--dsw-alias-label-secondary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n overflow: hidden;\n}\n\n.dshc_message:not(.dshc_own) > .dshc_messageBody > .dshc_text {\n background: var(--dsw-alias-bg-layer-2);\n border-radius: 6px 16px 16px;\n width: fit-content;\n max-width: min(640px, 100%);\n padding: 8px 14px;\n}\n\n.dshc_message.dshc_grouped:not(.dshc_own) > .dshc_messageBody > .dshc_text {\n border-radius: 6px 16px 16px 6px;\n}\n\n.dshc_own > .dshc_messageBody > .dshc_text {\n color: var(--dsw-alias-bg-base);\n background: var(--dsw-alias-label-primary);\n box-shadow: none;\n}\n\n.dshc_own > .dshc_messageBody > .dshc_text * {\n color: inherit;\n}\n\n.dshc_own > .dshc_messageBody > .dshc_text a {\n color: inherit;\n text-decoration: underline;\n}\n\n.dshc_own > .dshc_messageBody > .dshc_text code {\n color: inherit;\n background: color-mix(in srgb, var(--dsw-alias-bg-base) 18%, transparent);\n}\n\n.dshc_boardDrawerBackdrop {\n background: #00000040;\n place-items: stretch end;\n padding: 0;\n}\n\n.dshc_boardDrawerBackdrop > .dshc_taskBoardDialog {\n box-sizing: border-box;\n border-radius: 0;\n width: min(440px, 100%);\n height: 100dvh;\n max-height: none;\n animation: .2s ease-out dshc_boardDrawerIn;\n}\n\n@keyframes dshc_boardDrawerIn {\n from {\n opacity: 0;\n transform: translateX(24px);\n }\n\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_boardDrawerBackdrop > .dshc_taskBoardDialog {\n animation: none;\n }\n}\n\n.dshc_schemeToggle {\n border-radius: var(--dsw-radius-sm);\n width: 28px;\n height: 28px;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n flex: none;\n justify-content: center;\n align-items: center;\n margin-left: 4px;\n font-size: 16px;\n line-height: 1;\n display: inline-flex;\n}\n\n.dshc_schemeToggle:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_schemeToggle:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_schemeToggle + .dshc_panelToggleEnd {\n margin-left: 4px;\n}\n\n.dshc_progressCard {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-base);\n box-shadow: 0 6px 18px #0000000a, 0 -12px 0 0 var(--dsw-alias-bg-base);\n border-radius: 14px;\n flex: none;\n margin: 8px 16px 4px;\n padding: 8px 14px;\n font-size: 12px;\n position: relative;\n}\n\n.dshc_progressHead {\n align-items: center;\n gap: 8px;\n display: flex;\n}\n\n.dshc_progressTitle {\n color: var(--dsw-alias-label-primary);\n font-size: 12px;\n}\n\n.dshc_progressSummary {\n white-space: nowrap;\n text-overflow: ellipsis;\n min-width: 0;\n color: var(--dsw-alias-label-tertiary);\n flex: 1;\n overflow: hidden;\n}\n\n.dshc_progressToggle {\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n min-width: 22px;\n height: 24px;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n cursor: pointer;\n background: none;\n flex: none;\n justify-content: center;\n align-items: center;\n gap: 4px;\n margin-left: auto;\n padding: 0 10px;\n font-size: 12px;\n font-weight: 500;\n line-height: 1;\n display: inline-flex;\n}\n\n.dshc_progressChevron {\n font-size: 12px;\n}\n\n.dshc_progressToggle:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_progressToggle:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_progressCard[data-folded=\"true\"] {\n padding: 6px 12px;\n}\n\n.dshc_progressRows {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 0 14px;\n margin: 4px 0 0;\n display: grid;\n}\n\n.dshc_progressRow {\n min-width: 0;\n}\n\n.dshc_progressRow dt {\n color: var(--dsw-alias-label-tertiary);\n font-size: 10px;\n}\n\n.dshc_progressRow dd {\n white-space: nowrap;\n text-overflow: ellipsis;\n min-width: 0;\n color: var(--dsw-alias-label-primary);\n margin: 0;\n overflow: hidden;\n}\n\n.dshc_progressRow[data-empty=\"true\"] dd {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.dshc_progressRow[data-row=\"open\"][data-empty=\"false\"] dd, .dshc_progressRow[data-row=\"open\"] .dshc_progressLink {\n color: var(--dsw-alias-state-warning-primary, #b7791f);\n}\n\n.dshc_progressLink {\n max-width: 100%;\n color: inherit;\n font: inherit;\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 0;\n overflow: hidden;\n}\n\n.dshc_progressLink:hover {\n text-decoration: underline;\n}\n\n@media (width <= 760px) {\n .dshc_progressCard {\n margin: 6px 10px 2px;\n }\n\n .dshc_progressRows {\n grid-template-columns: 52px minmax(0, 1fr);\n }\n\n .dshc_progressRow {\n display: contents;\n }\n}\n\n.dshc_stepChips {\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n display: flex;\n}\n\n.dshc_stepChip {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-base);\n max-width: 220px;\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n cursor: pointer;\n border-radius: 999px;\n align-items: center;\n gap: 5px;\n padding: 2px 9px 2px 7px;\n font-size: 11px;\n display: inline-flex;\n}\n\n.dshc_stepChip b {\n color: var(--dsw-alias-label-primary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 600;\n overflow: hidden;\n}\n\n.dshc_stepChip:disabled {\n cursor: default;\n}\n\n.dshc_stepChip[aria-expanded=\"true\"] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_stepChip[data-state=\"failed\"] {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, var(--dsw-alias-border-l2));\n}\n\n.dshc_stepChip[data-state=\"failed\"] b {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.dshc_stepChip[data-state=\"running\"] {\n border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 55%, var(--dsw-alias-border-l2));\n}\n\n.dshc_stepMark {\n background: var(--dsw-alias-label-tertiary);\n border-radius: 50%;\n flex: none;\n width: 7px;\n height: 7px;\n}\n\n.dshc_stepChip[data-state=\"ok\"] .dshc_stepMark {\n background: #23a55a;\n}\n\n.dshc_stepChip[data-state=\"failed\"] .dshc_stepMark {\n background: var(--dsw-alias-state-error-primary);\n}\n\n.dshc_stepChip[data-state=\"running\"] .dshc_stepMark {\n background: var(--dsw-alias-state-business-primary);\n animation: 1s ease-in-out infinite dshc_channels-blink;\n}\n\n@keyframes dshc_channels-blink {\n 50% {\n opacity: .3;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_stepChip[data-state=\"running\"] .dshc_stepMark {\n animation: none;\n }\n}\n\n.dshc_stepOut {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2, var(--dsw-alias-bg-base));\n color: var(--dsw-alias-label-secondary);\n border-radius: 8px;\n flex-basis: 100%;\n gap: 4px;\n padding: 8px 10px;\n font-size: 11px;\n line-height: 1.5;\n display: grid;\n}\n\n.dshc_stepOut[data-state=\"failed\"] {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, var(--dsw-alias-border-l2));\n}\n\n.dshc_stepOut div {\n gap: 8px;\n min-width: 0;\n display: flex;\n}\n\n.dshc_stepOut span {\n color: var(--dsw-alias-label-tertiary);\n flex: none;\n}\n\n.dshc_stepOut code {\n overflow-wrap: anywhere;\n min-width: 0;\n font-family: ui-monospace, Menlo, monospace;\n}\n\n.dshc_stepOut[data-state=\"failed\"] > div[data-state=\"failed\"] > div:last-child > code {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.dshc_decideTray {\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 55%, var(--dsw-alias-border-l2));\n background: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 7%, var(--dsw-alias-bg-layer-2));\n border-radius: 14px;\n flex-direction: column;\n max-height: 45%;\n margin: 0 16px 8px;\n display: flex;\n overflow-y: auto;\n}\n\n.dshc_decideTrayHead {\n width: 100%;\n color: inherit;\n font: inherit;\n text-align: left;\n cursor: pointer;\n background: none;\n border: 0;\n flex: none;\n align-items: baseline;\n gap: 8px;\n padding: 7px 12px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_decideTrayHead strong {\n color: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 70%, var(--dsw-alias-label-primary));\n}\n\n.dshc_decideTrayHead small {\n color: var(--dsw-alias-label-secondary);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.dshc_decideTrayHead:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n outline-offset: -2px;\n}\n\n.dshc_decideTrayToggle {\n color: var(--dsw-alias-label-secondary);\n white-space: nowrap;\n margin-left: auto;\n}\n\n.dshc_decideTray .dshc_permTray {\n max-height: none;\n margin: 0;\n padding: 0 8px 8px;\n}\n\n.dshc_askList {\n flex-direction: column;\n display: flex;\n}\n\n.dshc_askItem {\n border-top: 1px solid color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 30%, transparent);\n background: var(--dsw-alias-bg-layer-2);\n flex-wrap: wrap;\n align-items: center;\n gap: 6px 10px;\n padding: 8px 12px;\n display: flex;\n}\n\n.dshc_askKind {\n color: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 75%, var(--dsw-alias-label-primary));\n background: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 15%, transparent);\n border-radius: 5px;\n flex: none;\n padding: 0 6px;\n font-size: 11px;\n}\n\n.dshc_askText {\n flex-direction: column;\n flex: 200px;\n min-width: 0;\n font-size: 13px;\n display: flex;\n}\n\n.dshc_askQuestion {\n overflow-wrap: anywhere;\n}\n\n.dshc_askFrom {\n color: var(--dsw-alias-label-secondary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 11px;\n overflow: hidden;\n}\n\n.dshc_askForm {\n flex: 0 260px;\n align-items: center;\n gap: 6px;\n min-width: 160px;\n display: flex;\n}\n\n.dshc_askInput {\n border: 1px solid var(--dsw-alias-border-l2);\n min-width: 0;\n color: inherit;\n background: var(--dsw-alias-bg-base);\n font: inherit;\n border-radius: 8px;\n flex: 1;\n padding: 4px 8px;\n font-size: 12px;\n}\n\n.dshc_askInput:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_askSend {\n width: 26px;\n height: 26px;\n color: var(--dsw-alias-bg-base);\n background: var(--dsw-alias-label-primary);\n cursor: pointer;\n border: 0;\n border-radius: 50%;\n flex: none;\n justify-content: center;\n align-items: center;\n padding: 0;\n display: inline-flex;\n}\n\n.dshc_askSend:disabled {\n opacity: .3;\n cursor: default;\n}\n\n.dshc_askSend:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n outline-offset: 2px;\n}\n\n.dshc_askDone {\n color: var(--dsw-alias-label-secondary);\n align-items: center;\n gap: 8px;\n font-size: 12px;\n display: inline-flex;\n}\n\n.dshc_askNotice {\n color: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 75%, var(--dsw-alias-label-primary));\n flex-basis: 100%;\n font-size: 12px;\n}\n\n@media (width <= 900px) {\n .dshc_decideTray {\n margin: 0 8px 8px;\n }\n\n .dshc_askForm {\n flex-basis: 100%;\n }\n}\n\n.dshc_headTeam {\n flex: none;\n align-items: center;\n margin-left: auto;\n display: inline-flex;\n}\n\n.dshc_mate, .dshc_mateMore {\n border: 2px solid var(--dsw-alias-bg-base);\n background: var(--dsw-alias-bg-base);\n cursor: pointer;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n margin-left: -6px;\n padding: 0;\n display: inline-flex;\n position: relative;\n}\n\n.dshc_mate:first-child {\n margin-left: 0;\n}\n\n.dshc_mate .dshc_avatar {\n margin: 0;\n}\n\n.dshc_mateMore {\n background: var(--dsw-alias-interactive-bg-hover);\n width: 28px;\n height: 28px;\n color: var(--dsw-alias-label-secondary);\n font-size: 11px;\n font-weight: 600;\n}\n\n.dshc_mateDot {\n box-sizing: border-box;\n border: 2px solid var(--dsw-alias-bg-base);\n background: var(--dsw-alias-label-tertiary);\n border-radius: 50%;\n width: 9px;\n height: 9px;\n position: absolute;\n bottom: -2px;\n right: -2px;\n}\n\n.dshc_mate[data-state=\"busy\"] .dshc_mateDot {\n background: #23a55a;\n animation: 1.6s ease-in-out infinite dshc_channels-pulse;\n}\n\n.dshc_mate[data-state=\"idle\"] .dshc_mateDot {\n background: var(--dsw-alias-bg-base);\n box-shadow: inset 0 0 0 1.5px var(--dsw-alias-label-tertiary);\n}\n\n.dshc_mate[data-state=\"error\"] .dshc_mateDot {\n background: var(--dsw-alias-state-error-primary);\n}\n\n.dshc_mate[data-state=\"offline\"] {\n opacity: .55;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_mate[data-state=\"busy\"] .dshc_mateDot {\n animation: none;\n }\n}\n\n@media (width <= 760px) {\n .dshc_headTeam {\n display: none;\n }\n}\n\n.dshc_chatHead > .dshc_headTeam + .dshc_taskBoardTrigger {\n margin-left: 12px;\n}\n\n.dshc_sideDock {\n display: none;\n}\n\n@media (width >= 1101px) {\n .dshc_page.dshc_panelOpen {\n grid-template-columns: 220px minmax(0, 1fr) min(420px, 36%) 240px;\n }\n\n .dshc_page.dshc_panelOpen.dshc_roomsHidden {\n grid-template-columns: minmax(0, 1fr) min(420px, 36%) 240px;\n }\n\n .dshc_page.dshc_panelOpen.dshc_membersHidden {\n grid-template-columns: 220px minmax(0, 1fr) min(420px, 36%);\n }\n\n .dshc_page.dshc_panelOpen.dshc_roomsHidden.dshc_membersHidden {\n grid-template-columns: minmax(0, 1fr) min(420px, 36%);\n }\n\n .dshc_page.dshc_panelOpen > .dshc_sideDock {\n border-left: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-base);\n min-width: 0;\n min-height: 0;\n display: flex;\n }\n}\n\n.dshc_sidePanel {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n max-height: none;\n box-shadow: none;\n border: 0;\n border-radius: 0;\n margin: 0;\n animation: .2s ease-out dshc_boardDrawerIn;\n position: relative;\n}\n\n.dshc_sidePanel:focus {\n outline: none;\n}\n\n.dshc_sidePanelClose {\n width: 28px;\n height: 28px;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: 6px;\n font-size: 18px;\n line-height: 1;\n position: absolute;\n top: 10px;\n right: 10px;\n}\n\n.dshc_sidePanelClose:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_sidePanel {\n animation: none;\n }\n}\n\n.dshc_sidePanel .dshc_boardCardGrid {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.dshc_slashPopup {\n z-index: 6;\n width: min(360px, 100% - 32px);\n animation: none;\n right: auto;\n}\n\n.dshc_slashGroup {\n color: var(--dsw-alias-label-tertiary);\n padding: 6px 8px 2px;\n font-size: 11px;\n}\n\n.dshc_slashItem {\n border-radius: var(--dsw-radius-sm);\n cursor: pointer;\n align-items: baseline;\n gap: 8px;\n padding: 5px 8px;\n display: flex;\n}\n\n.dshc_slashActive {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_slashName {\n flex: none;\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n font-weight: 600;\n}\n\n.dshc_slashMeta {\n min-width: 0;\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n overflow: hidden;\n}\n\n.dshc_sendButton.dshc_stopButton {\n background: var(--dsw-alias-label-primary);\n}\n\n.dshc_stopNote + .dshc_sendButton {\n margin-left: 8px;\n}\n\n.dshc_sendButton.dshc_stopButton[data-phase=\"stopping\"] {\n opacity: .6;\n cursor: progress;\n}\n\n.dshc_stopNote {\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n margin-left: auto;\n font-size: 12px;\n}\n\n.dshc_cmdLine {\n color: var(--dsw-alias-label-tertiary);\n flex-wrap: wrap;\n align-items: baseline;\n gap: 6px;\n padding: 1px 16px 1px 72px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_cmdLine code {\n color: var(--dsw-alias-label-secondary);\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n}\n\n.dshc_cmdResult {\n min-width: 0;\n max-width: 60ch;\n color: inherit;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 0;\n overflow: hidden;\n}\n\n.dshc_cmdResult[aria-expanded=\"true\"] {\n white-space: pre-line;\n max-width: none;\n}\n\n.dshc_cmdLine[data-failed=\"true\"] .dshc_cmdResult {\n color: var(--dsw-alias-danger, #d94848);\n}\n\n@media (width <= 720px) {\n .dshc_cmdLine {\n padding-left: 16px;\n }\n}\n\n.dshc_msgTool {\n justify-content: center;\n align-items: center;\n width: 26px;\n height: 24px;\n padding: 0;\n display: inline-flex;\n position: relative;\n}\n\n.dshc_msgTool[data-tip]:after {\n content: attr(data-tip);\n z-index: 3;\n background: var(--dsw-alias-label-primary);\n color: var(--dsw-alias-label-primary-inverted);\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n border-radius: 4px;\n padding: 2px 6px;\n font-size: 11px;\n position: absolute;\n top: calc(100% + 4px);\n left: 50%;\n transform: translateX(-50%);\n}\n\n.dshc_msgTool[data-tip]:hover:after, .dshc_msgTool[data-tip]:focus-visible:after {\n opacity: 1;\n transition: opacity 0s 80ms;\n}\n\n.dshc_permSessionButton {\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n text-underline-offset: 2px;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 4px 6px;\n font-size: 12px;\n text-decoration: underline;\n}\n\n.dshc_permSessionButton:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.dshc_permSessionButton:disabled {\n opacity: .5;\n cursor: default;\n}\n\n.dshc_queuedButton {\n border: 1px solid var(--dsw-alias-border-default, #0000001f);\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n cursor: pointer;\n background: none;\n border-radius: 9px;\n padding: 0 6px;\n font-size: 11px;\n line-height: 16px;\n}\n\n.dshc_queuedButton:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.dshc_queuedTag {\n color: #a76a06;\n background: #eaa02824;\n border-radius: 4px;\n padding: 0 5px;\n font-size: 11px;\n line-height: 16px;\n}\n\n[data-queued] .dshc_ownActions {\n opacity: 1;\n}\n\n.dshc_memory {\n margin-top: 4px;\n}\n\n.dshc_memoryBadge {\n background: var(--dsw-alias-fill-secondary, #0000000d);\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n cursor: pointer;\n border: 0;\n border-radius: 9px;\n align-items: center;\n gap: 4px;\n padding: 0 6px;\n font-size: 11px;\n line-height: 18px;\n display: inline-flex;\n}\n\n.dshc_memoryBadge:hover, .dshc_memoryBadge[aria-expanded=\"true\"] {\n color: var(--dsw-alias-label-secondary);\n}\n\n.dshc_memoryList {\n border-left: 2px solid var(--dsw-alias-border-default, #0000001f);\n flex-direction: column;\n gap: 4px;\n max-width: 560px;\n margin: 4px 0 0;\n padding: 6px 10px;\n font-size: 12px;\n list-style: none;\n display: flex;\n}\n\n.dshc_memoryItem {\n flex-direction: column;\n display: flex;\n}\n\n.dshc_memoryTitle {\n color: var(--dsw-alias-label-secondary);\n line-height: 1.5;\n}\n\n.dshc_memoryPage {\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n font-family: var(--dsw-font-mono, ui-monospace, monospace);\n}\n\n.dshc_delivery {\n flex-direction: column;\n gap: 6px;\n max-width: 720px;\n margin-top: 8px;\n display: flex;\n}\n\n.dshc_deliveryFrame {\n border: 1px solid var(--background-modifier-accent, #7f7f7f4d);\n background: #fff;\n border-radius: 6px;\n height: 360px;\n display: flex;\n overflow: hidden;\n}\n\n.dshc_deliveryActions {\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n display: flex;\n}\n\n.dshc_deliveryActions a {\n text-decoration: none;\n}\n\n.dshc_deliveryDone {\n color: var(--text-muted, #888);\n font-size: 12px;\n}\n\n.dshc_deliveryFullDialog {\n box-sizing: border-box;\n flex-direction: column;\n gap: 8px;\n width: 94vw;\n max-width: none;\n height: 92dvh;\n display: flex;\n}\n\n.dshc_deliveryFullFrame {\n background: #fff;\n border-radius: 6px;\n flex: 1;\n min-height: 0;\n display: flex;\n overflow: hidden;\n}\n\n.dshc_dmTitle {\n color: var(--text-muted, #888);\n margin: 14px 8px 4px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.dshc_dmAvatar {\n margin-right: 6px;\n display: inline-flex;\n}\n\n.dshc_dmRow {\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.dshc_dmRow .dshc_room {\n padding-right: 26px;\n}\n\n.dshc_dmClose {\n border-radius: var(--dsw-radius-sm, 4px);\n width: 20px;\n height: 20px;\n color: var(--dsw-alias-label-tertiary, #888);\n font: inherit;\n cursor: pointer;\n opacity: 0;\n background: none;\n border: 0;\n padding: 0;\n font-size: 15px;\n line-height: 20px;\n position: absolute;\n right: 4px;\n}\n\n.dshc_dmRow:hover .dshc_dmClose, .dshc_dmClose:focus-visible {\n opacity: 1;\n}\n\n.dshc_dmClose:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n@media (hover: none) {\n .dshc_dmClose {\n opacity: 1;\n }\n}\n\n.dshc_dmHead {\n margin-top: 14px;\n}\n\n.dshc_dmPicker {\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-2);\n flex-direction: column;\n margin: 0 4px 4px;\n padding: 4px;\n display: flex;\n}\n\n.dshc_dmPickNone {\n color: var(--dsw-alias-label-tertiary);\n padding: 6px 8px;\n font-size: 12px;\n}\n\n.dshc_dmNewRow {\n color: var(--dsw-alias-label-tertiary);\n font-size: 13px;\n}\n\nbutton.dshc_headMeta {\n border-radius: var(--dsw-radius-sm);\n min-width: 0;\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n flex: 0 auto;\n padding: 2px 6px;\n font-size: 12px;\n}\n\nbutton.dshc_headMeta:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_headSpacer {\n flex: auto;\n}\n\n.dshc_roomUnread {\n color: var(--dsw-alias-label-primary);\n font-weight: 650;\n}\n\n.dshc_unreadBadge {\n color: #fff;\n background: var(--dsw-alias-state-danger-primary, #e5484d);\n text-align: center;\n font-variant-numeric: tabular-nums;\n border-radius: 999px;\n flex: none;\n min-width: 18px;\n padding: 0 5px;\n font-size: 11px;\n font-weight: 600;\n line-height: 18px;\n}\n\n.dshc_slashDisabled {\n opacity: .45;\n cursor: not-allowed;\n}\n\n.dshc_leadCardHint {\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 11px;\n overflow: hidden;\n}\n\n.dshc_roomWorking {\n max-width: 96px;\n color: var(--dsw-alias-state-business-primary);\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: none;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n font-weight: 500;\n display: inline-flex;\n overflow: hidden;\n}\n\n.dshc_roomWorkingDot {\n background: currentColor;\n border-radius: 50%;\n flex: none;\n width: 6px;\n height: 6px;\n animation: 1.4s ease-in-out infinite dshc_roomWorkingPulse;\n}\n\n@keyframes dshc_roomWorkingPulse {\n 50% {\n opacity: .35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_roomWorkingDot {\n animation: none;\n }\n}\n\n.dshc_drawerTools {\n display: none;\n}\n\n@media (width <= 600px) {\n .dshc_drawerTools {\n flex-wrap: wrap;\n gap: 6px;\n margin: 0 8px 8px;\n display: flex;\n }\n\n .dshc_chatHead > .dshc_taskBoardTrigger, .dshc_chatHead > .dshc_schemeToggle, .dshc_chatHead > .dshc_headMeta, .dshc_chatHead > .dshc_headTeam {\n display: none;\n }\n\n .dshc_chatHead > .dshc_roomName {\n flex: auto;\n }\n}\n\n.dshc_panelOpen .dshc_chatHead > .dshc_headTeam, .dshc_panelOpen .dshc_chatHead > .dshc_headMeta {\n display: none;\n}\n\n.dshc_panelOpen .dshc_chatHead > .dshc_roomName {\n flex: 0 auto;\n}\n[data-dc-scheme=\"light\"] {\n --dsw-static-amber-100: #fef5e7;\n --dsw-static-amber-400: #f7ad31;\n --dsw-static-amber-500: #f59e0b;\n --dsw-static-amber-600: #dd8629;\n --dsw-static-amber-900: #27241f;\n --dsw-static-blue-100: #dbeafe;\n --dsw-static-blue-300: #93c5fd;\n --dsw-static-blue-400: #60a5fa;\n --dsw-static-blue-450: #4d93f8;\n --dsw-static-blue-500: #3b82f6;\n --dsw-static-blue-50: #eff6ff;\n --dsw-static-blue-50p: #eaf3ff;\n --dsw-static-blue-600: #2563eb;\n --dsw-static-blue-75: #e5f0ff;\n --dsw-static-blue-800: #1e40af;\n --dsw-static-blue-900: #0e3074;\n --dsw-static-blue-950: #172554;\n --dsw-static-deepseek-100: #e4edfd;\n --dsw-static-deepseek-200: #d3e2ff;\n --dsw-static-deepseek-300: #b7c8fe;\n --dsw-static-deepseek-400: #7aaaff;\n --dsw-static-deepseek-450: #5686fe;\n --dsw-static-deepseek-500: #4176e6;\n --dsw-static-deepseek-50: #edf3fe;\n --dsw-static-deepseek-600: #4868b2;\n --dsw-static-deepseek-700-delete: #2f4c8f;\n --dsw-static-deepseek-800: #34415b;\n --dsw-static-deepseek-900: #283142;\n --dsw-static-green-100: #e6faed;\n --dsw-static-green-400: #4ed17e;\n --dsw-static-green-500: #22c55e;\n --dsw-static-green-500-a08: #22c55e14;\n --dsw-static-green-500-a12: #22c55e1f;\n --dsw-static-green-900: #233c2c;\n --dsw-static-neutral-00: #fff;\n --dsw-static-neutral-1000: #000;\n --dsw-static-neutral-100: #f5f5f5;\n --dsw-static-neutral-150: #ededed;\n --dsw-static-neutral-200: #e5e5e5;\n --dsw-static-neutral-250: #dcdcdc;\n --dsw-static-neutral-300: #d4d4d4;\n --dsw-static-neutral-400: #a2a4a6;\n --dsw-static-neutral-500: #7f8287;\n --dsw-static-neutral-50: #fafafa;\n --dsw-static-neutral-550: #65676b;\n --dsw-static-neutral-600: #545557;\n --dsw-static-neutral-700: #3c3c3d;\n --dsw-static-neutral-800: #292929;\n --dsw-static-neutral-850: #212123;\n --dsw-static-neutral-900: #0f0f0f;\n --dsw-static-neutral-bluish-00: #fff;\n --dsw-static-neutral-bluish-1000: #0f1115;\n --dsw-static-neutral-bluish-100: #ebeef2;\n --dsw-static-neutral-bluish-150: #e9ecf2;\n --dsw-static-neutral-bluish-200: #e1e5ee;\n --dsw-static-neutral-bluish-300: #cfd3d6;\n --dsw-static-neutral-bluish-400: #adb2b8;\n --dsw-static-neutral-bluish-500: #979da6;\n --dsw-static-neutral-bluish-50: #f9fafb;\n --dsw-static-neutral-bluish-600: #81858c;\n --dsw-static-neutral-bluish-60: #f5f6f7;\n --dsw-static-neutral-bluish-700: #61666b;\n --dsw-static-neutral-bluish-750: #43454a;\n --dsw-static-neutral-bluish-75: #f1f3f5;\n --dsw-static-neutral-bluish-800: #353638;\n --dsw-static-neutral-bluish-850: #2c2c2e;\n --dsw-static-neutral-bluish-875: #232324;\n --dsw-static-neutral-bluish-900: #1b1b1c;\n --dsw-static-neutral-bluish-950: #151517;\n --dsw-static-red-100: #fee2e2;\n --dsw-static-red-400: #f25a5a;\n --dsw-static-red-400-a12: #f25a5a1f;\n --dsw-static-red-500: #ef4444;\n --dsw-static-red-50: #fef2f2;\n --dsw-static-red-600: #ec1313;\n --dsw-static-red-600-a08: #ec131314;\n --dsw-static-red-900: #570c0c;\n}\n\n[data-dc-scheme=\"dark\"] {\n --dsw-static-amber-100: #fef5e7;\n --dsw-static-amber-400: #f7ad31;\n --dsw-static-amber-500: #f59e0b;\n --dsw-static-amber-600: #dd8629;\n --dsw-static-amber-900: #27241f;\n --dsw-static-blue-100: #dbeafe;\n --dsw-static-blue-300: #93c5fd;\n --dsw-static-blue-400: #60a5fa;\n --dsw-static-blue-450: #4d93f8;\n --dsw-static-blue-500: #3b82f6;\n --dsw-static-blue-50: #eff6ff;\n --dsw-static-blue-50p: #eaf3ff;\n --dsw-static-blue-600: #2563eb;\n --dsw-static-blue-75: #e5f0ff;\n --dsw-static-blue-800: #1e40af;\n --dsw-static-blue-900: #0e3074;\n --dsw-static-blue-950: #172554;\n --dsw-static-deepseek-100: #e4edfd;\n --dsw-static-deepseek-200: #d3e2ff;\n --dsw-static-deepseek-300: #b7c8fe;\n --dsw-static-deepseek-400: #7aaaff;\n --dsw-static-deepseek-450: #5686fe;\n --dsw-static-deepseek-500: #4176e6;\n --dsw-static-deepseek-50: #edf3fe;\n --dsw-static-deepseek-600: #4868b2;\n --dsw-static-deepseek-700-delete: #2f4c8f;\n --dsw-static-deepseek-800: #34415b;\n --dsw-static-deepseek-900: #283142;\n --dsw-static-green-100: #e6faed;\n --dsw-static-green-400: #4ed17e;\n --dsw-static-green-500: #22c55e;\n --dsw-static-green-500-a08: #22c55e14;\n --dsw-static-green-500-a12: #22c55e1f;\n --dsw-static-green-900: #233c2c;\n --dsw-static-neutral-00: #fff;\n --dsw-static-neutral-1000: #000;\n --dsw-static-neutral-100: #f5f5f5;\n --dsw-static-neutral-150: #ededed;\n --dsw-static-neutral-200: #e5e5e5;\n --dsw-static-neutral-250: #dcdcdc;\n --dsw-static-neutral-300: #d4d4d4;\n --dsw-static-neutral-400: #a2a4a6;\n --dsw-static-neutral-500: #7f8287;\n --dsw-static-neutral-50: #fafafa;\n --dsw-static-neutral-550: #65676b;\n --dsw-static-neutral-600: #545557;\n --dsw-static-neutral-700: #3c3c3d;\n --dsw-static-neutral-800: #292929;\n --dsw-static-neutral-850: #212123;\n --dsw-static-neutral-900: #0f0f0f;\n --dsw-static-neutral-bluish-00: #fff;\n --dsw-static-neutral-bluish-1000: #0f1115;\n --dsw-static-neutral-bluish-100: #ebeef2;\n --dsw-static-neutral-bluish-150: #e9ecf2;\n --dsw-static-neutral-bluish-200: #e1e5ee;\n --dsw-static-neutral-bluish-300: #cfd3d6;\n --dsw-static-neutral-bluish-400: #adb2b8;\n --dsw-static-neutral-bluish-500: #979da6;\n --dsw-static-neutral-bluish-50: #f9fafb;\n --dsw-static-neutral-bluish-600: #81858c;\n --dsw-static-neutral-bluish-60: #f9fafb;\n --dsw-static-neutral-bluish-700: #61666b;\n --dsw-static-neutral-bluish-750: #43454a;\n --dsw-static-neutral-bluish-75: #f1f3f5;\n --dsw-static-neutral-bluish-800: #353638;\n --dsw-static-neutral-bluish-850: #2c2c2e;\n --dsw-static-neutral-bluish-875: #232324;\n --dsw-static-neutral-bluish-900: #1b1b1c;\n --dsw-static-neutral-bluish-950: #151517;\n --dsw-static-red-100: #fee2e2;\n --dsw-static-red-400: #f25a5a;\n --dsw-static-red-400-a12: #f25a5a1f;\n --dsw-static-red-500: #ef4444;\n --dsw-static-red-50: #fef2f2;\n --dsw-static-red-600: #ec1313;\n --dsw-static-red-600-a08: #ec131314;\n --dsw-static-red-900: #570c0c;\n}\n\n[data-dc-scheme=\"light\"] {\n --dsw-alias-bg-base: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-bg-document-preview: var(--dsw-static-neutral-bluish-100);\n --dsw-alias-bg-document-selection: color-mix(in srgb, var(--dsw-static-blue-500) 40%, transparent);\n --dsw-alias-label-document-preview: var(--dsw-static-neutral-bluish-700);\n --dsw-alias-bg-layer-1: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-bg-layer-2: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-bg-layer-3: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-bg-mask-1: #0000003d;\n --dsw-alias-bg-mask-2: #0000001f;\n --dsw-alias-bg-mask-3: #0000007a;\n --dsw-alias-bg-mask-photo: #000000e0;\n --dsw-alias-bg-mask-drop: #ffffffb3;\n --dsw-alias-bg-module-platform: var(--dsw-static-neutral-bluish-60);\n --dsw-alias-bg-multi-select: var(--dsw-static-neutral-bluish-60);\n --dsw-alias-bg-overlay: var(--dsw-static-neutral-bluish-150);\n --dsw-alias-bg-skeleton: #0000000a;\n --dsw-alias-border-inverted2: #0000;\n --dsw-alias-border-inverted: #0000;\n --dsw-alias-border-l1: #0000000a;\n --dsw-alias-border-l2-darkmode-thin: #0000001a;\n --dsw-alias-border-l2: #0000001a;\n --dsw-alias-border-l3: #0000001f;\n --dsw-alias-border-l4: #00000029;\n --dsw-alias-brand-primary-invert: var(--dsw-static-neutral-bluish-1000);\n --dsw-alias-brand-primary-new-colorprimary-new-color: #4176e6;\n --dsw-alias-brand-primary: var(--dsw-static-neutral-bluish-1000);\n --dsw-alias-brand-text: var(--dsw-static-neutral-bluish-1000);\n --dsw-alias-button-contrast-fill: var(--dsw-static-neutral-bluish-700);\n --dsw-alias-button-elevated-fill: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-button-floating-fill: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-button-floating-hover: var(--dsw-static-neutral-bluish-75);\n --dsw-alias-button-ghost-active-border: var(--dsw-static-neutral-bluish-500);\n --dsw-alias-button-ghost-active-fill: var(--dsw-static-neutral-bluish-100);\n --dsw-alias-button-ghost-active-hover: var(--dsw-static-neutral-bluish-150);\n --dsw-alias-button-info-fill: var(--dsw-static-deepseek-500);\n --dsw-alias-button-info-hover: var(--dsw-static-deepseek-400);\n --dsw-alias-button-primary-dimmed: var(--dsw-static-neutral-bluish-100);\n --dsw-alias-button-primary-fill: var(--dsw-alias-brand-primary);\n --dsw-alias-button-primary-hover: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-button-tool-bar-fill-invisible: #1f1f1f5c;\n --dsw-alias-button-tool-bar-fill: #54555780;\n --dsw-alias-button-tool-bar-hover: #54555799;\n --dsw-alias-interactive-bg-active: #2631481a;\n --dsw-alias-interactive-bg-hover-accent: #26314824;\n --dsw-alias-interactive-bg-hover-danger: #ec13130d;\n --dsw-alias-interactive-bg-hover-solid: var(--dsw-static-neutral-bluish-75);\n --dsw-alias-interactive-bg-hover: #2631480f;\n --dsw-alias-label-caption: var(--dsw-static-neutral-bluish-400);\n --dsw-alias-label-deep-diving: color-mix(in srgb, var(--dsw-static-deepseek-500) 70%, var(--dsw-static-blue-950));\n --dsw-alias-label-deep-diving-shimmer: color-mix(in srgb, var(--dsw-static-deepseek-500) 30%, var(--dsw-static-blue-950));\n --dsw-alias-label-dimmed: var(--dsw-static-neutral-bluish-200);\n --dsw-alias-label-primary-bluish: var(--dsw-static-blue-900);\n --dsw-alias-label-primary-dimmed: var(--dsw-static-neutral-bluish-950);\n --dsw-alias-label-primary-foreground: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-label-primary-inverted: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-label-primary: var(--dsw-static-neutral-bluish-1000);\n --dsw-alias-label-secondary: var(--dsw-static-neutral-bluish-700);\n --dsw-alias-label-shimmer: color-mix(in srgb, var(--dsw-static-neutral-1000) 30%, transparent);\n --dsw-alias-label-tertiary: var(--dsw-static-neutral-bluish-600);\n --dsw-alias-menu-icon: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-link: var(--dsw-static-deepseek-500);\n --dsw-alias-markdown-citation: var(--dsw-static-neutral-bluish-100);\n --dsw-alias-markdown-code-block-banner: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-markdown-code-block: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-markdown-code-segment-selected: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-markdown-code-segment-unselected: var(--dsw-static-neutral-bluish-75);\n --dsw-alias-markdown-inline-code: var(--dsw-static-neutral-50);\n --dsw-alias-markdown-placeholder: var(--dsw-static-neutral-bluish-60);\n --dsw-alias-markdown-tag: var(--dsw-static-neutral-bluish-75);\n --dsw-alias-scrollbar-bg-l1: var(--dsw-static-neutral-200);\n --dsw-alias-scrollbar-bg-l2: var(--dsw-static-neutral-200);\n --dsw-alias-scrollbar-hover-l1: var(--dsw-static-neutral-300);\n --dsw-alias-scrollbar-hover-l2: var(--dsw-static-neutral-300);\n --dsw-alias-state-business-primary: var(--dsw-static-deepseek-500);\n --dsw-alias-state-business-tertiary: var(--dsw-static-deepseek-100);\n --dsw-alias-code-diff-added: var(--dsw-static-green-500-a08);\n --dsw-alias-code-diff-deleted: var(--dsw-static-red-600-a08);\n --dsw-alias-file-diff-added-bg: #e6f4e7;\n --dsw-alias-file-diff-added-gutter: #edf7ed;\n --dsw-alias-file-diff-added-marker: #01a241;\n --dsw-alias-file-diff-deleted-bg: #fce6e2;\n --dsw-alias-file-diff-deleted-gutter: #fdece9;\n --dsw-alias-file-diff-deleted-marker: #ba2723;\n --dsw-alias-state-error-primary: var(--dsw-static-red-600);\n --dsw-alias-state-error-secondary: var(--dsw-static-red-400);\n --dsw-alias-state-idle-primary: var(--dsw-static-neutral-300);\n --dsw-alias-state-success-primary: var(--dsw-static-green-500);\n --dsw-alias-state-success-secondary: var(--dsw-static-green-400);\n --dsw-alias-state-success-tertiary: var(--dsw-static-green-100);\n --dsw-alias-state-warn-label: var(--dsw-static-amber-600);\n --dsw-alias-state-warn-primary: var(--dsw-static-amber-500);\n --dsw-alias-state-warn-secondary: var(--dsw-static-amber-400);\n --dsw-alias-state-warn-tertiary: var(--dsw-static-amber-100);\n --dsw-alias-switch-thumb: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-toast-bg: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-toast-label: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-tooltip-bg: var(--dsw-static-neutral-bluish-850);\n --dsw-alias-tooltip-key-bg: color-mix(in srgb, var(--dsw-alias-tooltip-bg), white 18%);\n --dsw-alias-turn-trigger-bg: var(--dsw-alias-markdown-code-block);\n --dsw-alias-turn-trigger-bg-hover: var(--dsw-alias-interactive-bg-hover);\n --dsw-specific-bubble-highlight: var(--dsw-static-deepseek-200);\n --dsw-specific-bubble: var(--dsw-static-deepseek-50);\n --dsw-specific-input-major: var(--dsw-static-neutral-bluish-00);\n --dsw-specific-login-input: var(--dsw-static-neutral-bluish-50);\n --dsw-menu-surface-fill: #f8f9fa94;\n --dsw-alias-menu-group-header-fill: #f8f9faf0;\n --dsw-specific-menu: var(--dsw-menu-surface-fill);\n --dsw-specific-selector: var(--dsw-static-neutral-bluish-60);\n --dsw-specific-sidebar-fill: var(--dsw-static-neutral-bluish-50);\n --dsw-specific-sidebar-nav-item-active-accent: var(--dsw-static-deepseek-100);\n --dsw-specific-sidebar-nav-item-active: var(--dsw-static-neutral-bluish-100);\n --dsw-specific-sidebar-nav-item-hover: var(--dsw-static-neutral-bluish-75);\n --dsw-specific-tip: var(--dsw-static-neutral-bluish-60);\n}\n\n[data-dc-scheme=\"dark\"] {\n --dsw-alias-bg-base: var(--dsw-static-neutral-bluish-950);\n --dsw-alias-bg-document-preview: var(--dsw-static-neutral-bluish-950);\n --dsw-alias-bg-document-selection: color-mix(in srgb, var(--dsw-static-blue-500) 40%, transparent);\n --dsw-alias-label-document-preview: var(--dsw-static-neutral-bluish-300);\n --dsw-alias-bg-layer-1: var(--dsw-static-neutral-bluish-875);\n --dsw-alias-bg-layer-2: var(--dsw-static-neutral-bluish-850);\n --dsw-alias-bg-layer-3: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-bg-mask-1: #00000080;\n --dsw-alias-bg-mask-2: #0003;\n --dsw-alias-bg-mask-3: #0000007a;\n --dsw-alias-bg-mask-photo: #000000e0;\n --dsw-alias-bg-mask-drop: #272730b3;\n --dsw-alias-bg-module-platform: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-bg-multi-select: var(--dsw-static-neutral-850);\n --dsw-alias-bg-overlay: var(--dsw-static-neutral-bluish-700);\n --dsw-alias-bg-skeleton: #ffffff14;\n --dsw-alias-border-inverted2: #ffffff14;\n --dsw-alias-border-inverted: #ffffff0f;\n --dsw-alias-border-l1: #ffffff0f;\n --dsw-alias-border-l2-darkmode-thin: #ffffff0f;\n --dsw-alias-border-l2: #ffffff1f;\n --dsw-alias-border-l3: #ffffff29;\n --dsw-alias-border-l4: #fff3;\n --dsw-alias-brand-primary-invert: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-brand-primary-new-colorprimary-new-color: var(--dsw-static-deepseek-450);\n --dsw-alias-brand-primary: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-brand-text: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-button-contrast-fill: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-button-elevated-fill: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-button-floating-fill: var(--dsw-static-neutral-bluish-850);\n --dsw-alias-button-floating-hover: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-button-ghost-active-border: var(--dsw-static-neutral-bluish-600);\n --dsw-alias-button-ghost-active-fill: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-button-ghost-active-hover: var(--dsw-static-neutral-bluish-700);\n --dsw-alias-button-info-fill: var(--dsw-static-deepseek-400);\n --dsw-alias-button-info-hover: var(--dsw-static-deepseek-500);\n --dsw-alias-button-primary-dimmed: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-button-primary-fill: var(--dsw-alias-brand-primary);\n --dsw-alias-button-primary-hover: var(--dsw-static-neutral-bluish-100);\n --dsw-alias-button-tool-bar-fill-invisible: #1f1f1f5c;\n --dsw-alias-button-tool-bar-fill: #54555780;\n --dsw-alias-button-tool-bar-hover: #54555799;\n --dsw-alias-interactive-bg-active: #ffffff24;\n --dsw-alias-interactive-bg-hover-accent: #ffffff3d;\n --dsw-alias-interactive-bg-hover-danger: #f25a5a26;\n --dsw-alias-interactive-bg-hover-solid: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-interactive-bg-hover: #ffffff14;\n --dsw-alias-label-caption: var(--dsw-static-neutral-bluish-600);\n --dsw-alias-label-deep-diving: color-mix(in srgb, var(--dsw-static-deepseek-450) 55%, var(--dsw-static-neutral-bluish-400));\n --dsw-alias-label-deep-diving-shimmer: color-mix(in srgb, var(--dsw-static-blue-300) 65%, var(--dsw-static-deepseek-400));\n --dsw-alias-label-dimmed: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-label-primary-bluish: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-label-primary-dimmed: var(--dsw-static-neutral-bluish-100);\n --dsw-alias-label-primary-foreground: var(--dsw-static-neutral-bluish-1000);\n --dsw-alias-label-primary-inverted: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-label-primary: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-label-secondary: var(--dsw-static-neutral-bluish-300);\n --dsw-alias-label-shimmer: color-mix(in srgb, var(--dsw-static-neutral-00) 45%, transparent);\n --dsw-alias-label-tertiary: var(--dsw-static-neutral-bluish-400);\n --dsw-alias-menu-icon: var(--dsw-alias-label-primary-dimmed);\n --dsw-alias-link: var(--dsw-static-deepseek-400);\n --dsw-alias-markdown-citation: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-markdown-code-block-banner: var(--dsw-static-neutral-bluish-850);\n --dsw-alias-markdown-code-block: var(--dsw-static-neutral-bluish-900);\n --dsw-alias-markdown-code-segment-selected: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-markdown-code-segment-unselected: var(--dsw-static-neutral-bluish-900);\n --dsw-alias-markdown-inline-code: var(--dsw-static-neutral-800);\n --dsw-alias-markdown-placeholder: var(--dsw-static-neutral-bluish-850);\n --dsw-alias-markdown-tag: var(--dsw-static-neutral-bluish-850);\n --dsw-alias-scrollbar-bg-l1: var(--dsw-static-neutral-700);\n --dsw-alias-scrollbar-bg-l2: var(--dsw-static-neutral-600);\n --dsw-alias-scrollbar-hover-l1: var(--dsw-static-neutral-600);\n --dsw-alias-scrollbar-hover-l2: var(--dsw-static-neutral-550);\n --dsw-alias-state-business-primary: var(--dsw-static-deepseek-400);\n --dsw-alias-state-business-tertiary: var(--dsw-static-deepseek-800);\n --dsw-alias-code-diff-added: var(--dsw-static-green-500-a12);\n --dsw-alias-code-diff-deleted: var(--dsw-static-red-400-a12);\n --dsw-alias-file-diff-added-bg: #1f3124;\n --dsw-alias-file-diff-added-gutter: #132016;\n --dsw-alias-file-diff-added-marker: #41c977;\n --dsw-alias-file-diff-deleted-bg: #3c1f1b;\n --dsw-alias-file-diff-deleted-gutter: #28130e;\n --dsw-alias-file-diff-deleted-marker: #fa423e;\n --dsw-alias-state-error-primary: var(--dsw-static-red-400);\n --dsw-alias-state-error-secondary: var(--dsw-static-red-400);\n --dsw-alias-state-idle-primary: var(--dsw-static-neutral-600);\n --dsw-alias-state-success-primary: var(--dsw-static-green-500);\n --dsw-alias-state-success-secondary: var(--dsw-static-green-400);\n --dsw-alias-state-success-tertiary: var(--dsw-static-green-900);\n --dsw-alias-state-warn-label: var(--dsw-static-amber-600);\n --dsw-alias-state-warn-primary: var(--dsw-static-amber-500);\n --dsw-alias-state-warn-secondary: var(--dsw-static-amber-400);\n --dsw-alias-state-warn-tertiary: var(--dsw-static-amber-900);\n --dsw-alias-switch-thumb: var(--dsw-static-neutral-bluish-400);\n --dsw-alias-toast-bg: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-toast-label: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-turn-trigger-bg: var(--dsw-alias-interactive-bg-hover);\n --dsw-alias-turn-trigger-bg-hover: var(--dsw-alias-interactive-bg-active);\n --dsw-alias-tooltip-bg: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-tooltip-key-bg: color-mix(in srgb, var(--dsw-alias-tooltip-bg), white 18%);\n --dsw-specific-bubble-highlight: var(--dsw-static-neutral-bluish-750);\n --dsw-specific-bubble: var(--dsw-static-neutral-bluish-850);\n --dsw-specific-input-major: var(--dsw-static-neutral-bluish-850);\n --dsw-specific-login-input: var(--dsw-static-neutral-bluish-900);\n --dsw-menu-surface-fill: #43454a73;\n --dsw-alias-menu-group-header-fill: #303136f0;\n --dsw-specific-menu: var(--dsw-menu-surface-fill);\n --dsw-specific-selector: var(--dsw-static-neutral-bluish-800);\n --dsw-specific-sidebar-fill: var(--dsw-static-neutral-bluish-900);\n --dsw-specific-sidebar-nav-item-active-accent: var(--dsw-static-neutral-bluish-800);\n --dsw-specific-sidebar-nav-item-active: var(--dsw-static-neutral-bluish-750);\n --dsw-specific-sidebar-nav-item-hover: var(--dsw-static-neutral-bluish-850);\n --dsw-specific-tip: var(--dsw-static-neutral-bluish-800);\n}\n\nhtml[data-platform=\"darwin\"] [data-dc-scheme=\"light\"] {\n --dsw-specific-menu: #f8f9faf0;\n}\n\nhtml[data-platform=\"darwin\"] [data-dc-scheme=\"dark\"] {\n --dsw-specific-menu: #303136f0;\n}\n\n[data-dc-scheme=\"light\"] {\n color-scheme: light;\n}\n\n[data-dc-scheme=\"dark\"] {\n color-scheme: dark;\n}\n.dshc_embed {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n min-height: 0;\n padding-top: var(--dsh-frame-top-clearance, 0px);\n background: var(--dsw-alias-bg-base);\n display: flex;\n}\n\n.dshc_frame {\n background: var(--dsw-alias-bg-base);\n border: 0;\n flex: 1;\n width: 100%;\n height: 100%;\n}\n";document.head.appendChild(s)})();
|
|
8
|
+
(function(){var s=document.createElement('style');s.setAttribute('data-dsh-plugin',"bothouse-dsh-channels");s.textContent=".dshc_page {\n width: 100%;\n height: 100%;\n min-height: 0;\n padding-top: var(--dsh-frame-top-clearance, 0px);\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-bg-base);\n grid-template-columns: 220px minmax(0, 1fr) 240px;\n font-size: 14px;\n line-height: 1.5;\n display: grid;\n}\n\n.dshc_notice {\n max-width: 480px;\n color: var(--dsw-alias-label-secondary);\n text-align: center;\n grid-column: 1 / -1;\n place-self: center;\n padding: 24px;\n}\n\n.dshc_rooms, .dshc_members {\n background: var(--dsw-alias-bg-layer-2);\n min-height: 0;\n padding: 0 8px 16px;\n overflow-y: auto;\n}\n\n.dshc_membersHead {\n border-bottom: 1px solid var(--dsw-alias-border-l2);\n flex: none;\n height: 44px;\n margin: 0 0 8px;\n}\n\n.dshc_groupTitle {\n color: var(--dsw-alias-label-tertiary);\n letter-spacing: .02em;\n margin: 12px 8px 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.dshc_room {\n border-radius: var(--dsw-radius-sm);\n width: 100%;\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n text-align: left;\n cursor: pointer;\n background: none;\n border: 0;\n align-items: center;\n gap: 6px;\n padding: 6px 8px;\n display: flex;\n}\n\n.dshc_room:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_room:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_workspace {\n padding-left: 22px;\n font-size: .95em;\n}\n\n.dshc_roomLabel {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.dshc_activeCount {\n color: var(--dsw-alias-label-tertiary);\n flex-shrink: 0;\n margin-left: auto;\n font-size: 11px;\n}\n\n.dshc_activeBusy {\n color: var(--dsw-alias-label-primary);\n}\n\n.dshc_roomActive {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_hash {\n color: var(--dsw-alias-label-tertiary);\n font-size: 16px;\n}\n\n.dshc_chat {\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n display: flex;\n}\n\n.dshc_chatHead {\n -webkit-app-region: drag;\n border-bottom: 1px solid var(--dsw-alias-border-l2);\n align-items: center;\n gap: 6px;\n height: 44px;\n padding: 0 16px;\n font-weight: 600;\n display: flex;\n}\n\n.dshc_log {\n flex: 1;\n min-height: 0;\n padding: 8px 0 12px;\n overflow-y: auto;\n}\n\n.dshc_guide {\n border: 1px dashed var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-secondary);\n flex-direction: column;\n align-items: flex-start;\n gap: 10px;\n margin: 16px;\n padding: 14px 16px;\n display: flex;\n}\n\n.dshc_empty {\n color: var(--dsw-alias-label-tertiary);\n padding: 24px 16px;\n}\n\n.dshc_message {\n grid-template-columns: 36px minmax(0, 1fr);\n gap: 12px;\n padding: 6px 16px;\n display: grid;\n}\n\n.dshc_system .dshc_text {\n color: var(--dsw-alias-label-tertiary);\n font-style: italic;\n}\n\n.dshc_avatar {\n corner-shape: round;\n color: #fff;\n border-radius: 50%;\n flex: none;\n place-items: center;\n width: 36px;\n height: 36px;\n font-weight: 700;\n display: grid;\n position: relative;\n}\n\n.dshc_avatarImage {\n object-fit: cover;\n border-radius: 50%;\n width: 100%;\n height: 100%;\n position: absolute;\n inset: 0;\n}\n\n.dshc_avatarSmall {\n width: 28px;\n height: 28px;\n font-size: 12px;\n}\n\n.dshc_avatarAnchor {\n align-self: start;\n position: relative;\n}\n\n.dshc_avatarButton {\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: 50%;\n padding: 0;\n}\n\n.dshc_avatarMenu {\n z-index: 3;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-base);\n min-width: 140px;\n box-shadow: var(--dsw-elevation-panel, 0 8px 24px #0000003d);\n flex-direction: column;\n padding: 6px;\n display: flex;\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n}\n\n.dshc_avatarMenuTitle {\n padding: 4px 8px;\n font-weight: 700;\n}\n\n.dshc_avatarMenuItem {\n border-radius: var(--dsw-radius-sm);\n color: inherit;\n text-align: left;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 6px 8px;\n}\n\n.dshc_avatarMenuItem:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_messageBody {\n min-width: 0;\n}\n\n.dshc_messageHead {\n align-items: baseline;\n gap: 6px;\n display: flex;\n}\n\n.dshc_author {\n font-weight: 600;\n}\n\n.dshc_time {\n color: var(--dsw-alias-label-tertiary);\n font-size: 12px;\n}\n\n.dshc_tag {\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-primary-inverted);\n background: var(--dsw-alias-state-business-primary);\n white-space: nowrap;\n padding: 0 4px;\n font-size: 10px;\n font-weight: 600;\n}\n\n.dshc_edited {\n color: var(--dsw-alias-label-tertiary);\n font-size: 12px;\n}\n\n.dshc_ownActions {\n margin-left: auto;\n margin-right: var(--channels-reply-clearance);\n opacity: 0;\n gap: 8px;\n display: inline-flex;\n}\n\n.dshc_message:hover .dshc_ownActions, .dshc_ownActions:focus-within {\n opacity: 1;\n}\n\n@media (hover: none) {\n .dshc_ownActions {\n display: none;\n }\n\n .dshc_message[data-tools-open] .dshc_ownActions {\n opacity: 1;\n display: inline-flex;\n }\n}\n\n.dshc_editBox {\n flex-direction: column;\n gap: 6px;\n margin-top: 4px;\n display: flex;\n}\n\n.dshc_editInput {\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-base);\n min-height: 60px;\n color: inherit;\n font: inherit;\n resize: vertical;\n padding: 8px;\n}\n\n.dshc_editBar {\n justify-content: flex-end;\n align-items: center;\n gap: 8px;\n display: flex;\n}\n\n.dshc_editBar .dshc_time {\n margin-right: auto;\n}\n\n.dshc_text {\n white-space: normal;\n overflow-wrap: anywhere;\n}\n\n.dshc_card {\n border-left: 4px solid var(--dsw-alias-state-business-primary);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-layer-2);\n margin-top: 4px;\n padding: 6px 10px;\n}\n\n.dshc_card[data-state=\"failed\"] {\n border-left-color: var(--dsw-alias-state-error-primary);\n}\n\n.dshc_card[data-state=\"retrying\"] {\n border-left-color: var(--dsw-alias-state-warning-primary, #faa61a);\n}\n\n.dshc_cardButtons {\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n margin-top: 6px;\n display: flex;\n}\n\n.dshc_cardTitle {\n font-size: 13px;\n font-weight: 600;\n}\n\n.dshc_cardHead {\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n display: flex;\n}\n\n.dshc_cardViews {\n gap: 4px;\n display: flex;\n}\n\n.dshc_cardViewButton {\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n color: inherit;\n cursor: pointer;\n background: none;\n padding: 0 6px;\n font-size: 12px;\n}\n\n.dshc_cardViewButton[aria-pressed=\"true\"] {\n background: var(--dsw-alias-bg-base);\n font-weight: 600;\n}\n\n.dshc_permActions {\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n margin-top: 6px;\n display: flex;\n}\n\n.dshc_permScope {\n color: var(--dsw-alias-text-secondary);\n flex-basis: 100%;\n font-size: 12px;\n}\n\n.dshc_permStatus {\n margin-top: 6px;\n font-size: 13px;\n font-weight: 600;\n}\n\n.dshc_message {\n --channels-reply-clearance: 36px;\n position: relative;\n}\n\n.dshc_quote {\n border-left: 2px solid var(--dsw-alias-label-tertiary);\n min-width: 0;\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n text-overflow: ellipsis;\n gap: 6px;\n margin-bottom: 2px;\n padding-left: 8px;\n font-size: 12px;\n display: flex;\n overflow: hidden;\n}\n\n.dshc_quoteDeleted {\n font-style: italic;\n}\n\n.dshc_quoteAuthor {\n flex: none;\n font-weight: 600;\n}\n\n.dshc_replyButton {\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-tertiary);\n background: var(--dsw-alias-bg-layer-2);\n cursor: pointer;\n border: 0;\n padding: 0 6px;\n}\n\n.dshc_msgTools {\n z-index: 1;\n border: 1px solid var(--dsw-alias-separator, #7f7f7f40);\n border-radius: var(--dsw-radius-sm, 6px);\n background: var(--dsw-alias-bg-elevated, var(--dsw-alias-bg-primary, #fff));\n opacity: 0;\n pointer-events: none;\n align-items: center;\n gap: 2px;\n padding: 2px;\n display: inline-flex;\n position: absolute;\n top: 2px;\n right: 16px;\n box-shadow: 0 2px 6px #00000014;\n}\n\n.dshc_msgTool {\n border-radius: var(--dsw-radius-sm, 6px);\n color: var(--dsw-alias-label-secondary);\n white-space: nowrap;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 2px 8px;\n font-size: 12px;\n}\n\n.dshc_msgTool:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.dshc_msgTool:disabled {\n cursor: default;\n opacity: .6;\n}\n\n.dshc_msgToolNote {\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n padding: 0 6px;\n font-size: 12px;\n}\n\n.dshc_message:hover .dshc_msgTools, .dshc_message:focus-within .dshc_msgTools, .dshc_msgTools:has(.dshc_msgToolNote) {\n opacity: 1;\n pointer-events: auto;\n}\n\n@media (hover: none) {\n .dshc_message {\n -webkit-touch-callout: none;\n }\n\n .dshc_msgTools {\n display: none;\n }\n\n .dshc_message[data-tools-open] {\n background: var(--dsw-alias-interactive-bg-hover);\n }\n\n .dshc_message[data-tools-open] .dshc_msgTools {\n z-index: 3;\n opacity: 1;\n pointer-events: auto;\n display: inline-flex;\n top: -14px;\n right: 12px;\n }\n\n .dshc_message[data-tools-open] .dshc_msgTool {\n width: 40px;\n height: 36px;\n }\n}\n\n.dshc_replyBar {\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-tertiary);\n background: var(--dsw-alias-bg-layer-2);\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n padding: 4px 8px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_replyBarText {\n white-space: nowrap;\n text-overflow: ellipsis;\n flex: 1;\n min-width: 0;\n overflow: hidden;\n}\n\n.dshc_replyCancel {\n color: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n flex: none;\n}\n\n.dshc_working {\n min-height: 20px;\n color: var(--dsw-alias-label-tertiary);\n align-items: center;\n gap: 6px;\n padding: 0 16px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_composer {\n padding: 0 16px 16px;\n position: relative;\n}\n\n.dshc_composerBox {\n border: 1px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-bg-layer-1, var(--dsw-alias-bg-layer-2));\n box-shadow: var(--dsw-shadow-lv1-blur);\n flex-direction: column;\n display: flex;\n overflow: hidden;\n}\n\n.dshc_composerBox:focus-within {\n border-color: var(--dsw-alias-label-tertiary);\n}\n\n.dshc_composerToolbar {\n flex: none;\n align-items: center;\n gap: 4px;\n padding: 4px 10px 10px;\n display: flex;\n}\n\n.dshc_composerBox > .dshc_replyBar, .dshc_composerBox > .dshc_attachments {\n margin: 10px 14px 0;\n}\n\n.dshc_mentionButton {\n border-radius: var(--dsw-radius-full, 50%);\n width: 32px;\n height: 32px;\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n flex: none;\n justify-content: center;\n align-items: center;\n padding: 0;\n font-size: 18px;\n display: inline-flex;\n}\n\n.dshc_mentionButton:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_sendButton {\n border-radius: var(--dsw-radius-full, 50%);\n width: 32px;\n height: 32px;\n color: var(--dsw-alias-label-primary-inverted);\n background: var(--dsw-alias-label-primary);\n font: inherit;\n cursor: pointer;\n border: 0;\n flex: none;\n justify-content: center;\n align-items: center;\n margin-left: auto;\n padding: 0;\n display: inline-flex;\n}\n\n.dshc_sendButton:disabled {\n opacity: .45;\n cursor: default;\n}\n\n.dshc_sendButton:focus-visible, .dshc_mentionButton:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_mentionPopup {\n z-index: 2;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-base);\n max-height: 320px;\n box-shadow: var(--dsw-elevation-panel, 0 8px 24px #0000003d);\n flex-direction: column;\n padding: 6px;\n display: flex;\n position: absolute;\n bottom: calc(100% - 8px);\n left: 16px;\n right: 16px;\n}\n\n.dshc_mentionPopup > [role=\"listbox\"] {\n min-height: 0;\n overflow-y: auto;\n}\n\n.dshc_mentionTitle {\n color: var(--dsw-alias-label-tertiary);\n padding: 4px 8px 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.dshc_mentionItem {\n border-radius: var(--dsw-radius-sm);\n cursor: pointer;\n align-items: center;\n gap: 10px;\n padding: 6px 8px;\n display: flex;\n}\n\n.dshc_mentionActive {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_mentionName {\n font-weight: 600;\n}\n\n.dshc_mentionMeta {\n color: var(--dsw-alias-label-tertiary);\n margin-left: auto;\n font-size: 12px;\n}\n\n.dshc_mentionHint {\n border-top: 1px solid var(--dsw-alias-border-l2);\n color: var(--dsw-alias-label-tertiary);\n padding: 6px 8px 2px;\n font-size: 11px;\n}\n\n.dshc_mentionBadge {\n background: color-mix(in srgb, var(--dsw-alias-state-business-primary, #5865f2) 15%, transparent);\n color: var(--dsw-alias-state-business-primary, #5865f2);\n font-weight: 500;\n line-height: inherit;\n vertical-align: baseline;\n -webkit-box-decoration-break: clone;\n box-decoration-break: clone;\n cursor: pointer;\n border-radius: 3px;\n padding: 0 4px;\n transition: background-color .16s cubic-bezier(.2, 0, 0, 1), color .16s cubic-bezier(.2, 0, 0, 1);\n display: inline-block;\n}\n\n.dshc_mentionBadge:hover {\n background: color-mix(in srgb, var(--dsw-alias-state-business-primary, #5865f2) 28%, transparent);\n}\n\n.dshc_sendError {\n color: var(--dsw-alias-state-error-primary);\n margin-bottom: 6px;\n font-size: 12px;\n}\n\n.dshc_input {\n box-sizing: border-box;\n width: 100%;\n min-height: 52px;\n max-height: 40vh;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n resize: none;\n field-sizing: content;\n background: none;\n border: 0;\n border-radius: 0;\n flex: 1;\n min-width: 0;\n padding: 14px 16px 8px;\n line-height: 1.5;\n}\n\n.dshc_input::placeholder {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n@media (width <= 600px) {\n .dshc_composer {\n padding: 0 8px 8px;\n }\n\n .dshc_composerToolbar {\n padding: 4px 8px 8px;\n }\n\n .dshc_input {\n padding: 12px 14px 8px;\n }\n}\n\n.dshc_input:focus-visible {\n outline: none;\n}\n\n.dshc_member {\n border-radius: var(--dsw-radius-sm);\n min-width: 0;\n color: inherit;\n font: inherit;\n text-align: left;\n cursor: pointer;\n background: none;\n border: 0;\n flex: 1;\n align-items: center;\n gap: 10px;\n padding: 5px 8px;\n display: flex;\n}\n\n.dshc_member:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_member:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_offline {\n opacity: .5;\n}\n\n.dshc_memberAvatar {\n position: relative;\n}\n\n.dshc_presence {\n border: 2px solid var(--dsw-alias-bg-layer-2);\n corner-shape: round;\n background: #23a55a;\n border-radius: 50%;\n width: 10px;\n height: 10px;\n position: absolute;\n bottom: -2px;\n right: -2px;\n}\n\n.dshc_offline .dshc_presence {\n background: var(--dsw-alias-label-tertiary);\n}\n\n.dshc_memberText {\n flex-direction: column;\n min-width: 0;\n display: flex;\n}\n\n.dshc_memberName {\n align-items: center;\n gap: 6px;\n display: flex;\n}\n\n.dshc_memberStatus {\n color: var(--dsw-alias-label-tertiary);\n font-size: 12px;\n}\n\n@media (width <= 900px) {\n .dshc_page {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .dshc_rooms, .dshc_members {\n display: none;\n }\n}\n\n.dshc_groupHead {\n justify-content: space-between;\n align-items: center;\n padding-right: 4px;\n display: flex;\n}\n\n.dshc_iconButton {\n border-radius: var(--dsw-radius-sm);\n width: 22px;\n height: 22px;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n font-size: 16px;\n line-height: 1;\n}\n\n.dshc_iconButton:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_roomInput, .dshc_fieldInput {\n box-sizing: border-box;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n width: 100%;\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-bg-base);\n font: inherit;\n padding: 6px 8px;\n}\n\n.dshc_roomInput {\n margin: 2px 0 6px;\n}\n\n.dshc_roomInput:focus-visible, .dshc_fieldInput:focus-visible, .dshc_iconButton:focus-visible, .dshc_linkButton:focus-visible, .dshc_addMemberButton:focus-visible, .dshc_primaryButton:focus-visible, .dshc_secondaryButton:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_addMemberButton {\n box-sizing: border-box;\n border: 1px dashed var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n width: 100%;\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n cursor: pointer;\n background: none;\n margin: 4px 0;\n padding: 7px 8px;\n}\n\n.dshc_addMemberButton:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_settingsDivider {\n border: 0;\n border-top: 1px solid var(--dsw-alias-border-l1);\n width: 100%;\n margin: 8px 0 4px;\n}\n\n.dshc_memberListDivider {\n border: 0;\n border-top: 1px solid var(--dsw-alias-border-l1);\n width: calc(100% - 16px);\n margin: 12px 8px 2px;\n}\n\n.dshc_settingsButton {\n text-align: left;\n border-style: solid;\n border-color: #0000;\n align-items: center;\n gap: 8px;\n display: flex;\n}\n\n.dshc_settingsButton svg {\n flex: none;\n}\n\n.dshc_memberRow {\n border-radius: var(--dsw-radius-sm);\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.dshc_memberRow:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_memberRow .dshc_member:hover {\n background: none;\n}\n\n.dshc_memberModel {\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 11px;\n overflow: hidden;\n}\n\n.dshc_memberActions {\n color: var(--dsw-alias-label-tertiary);\n opacity: 0;\n flex: none;\n gap: 4px;\n padding-right: 6px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_memberRow:hover .dshc_memberActions, .dshc_memberRow:focus-within .dshc_memberActions {\n opacity: 1;\n}\n\n.dshc_linkButton {\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 2px 4px;\n font-size: 12px;\n}\n\n.dshc_linkButton:hover {\n color: var(--dsw-alias-label-primary);\n text-decoration: underline;\n}\n\n.dshc_dialogBackdrop {\n z-index: 10;\n background: #00000073;\n place-items: center;\n padding: 16px;\n display: grid;\n position: fixed;\n inset: 0;\n}\n\n.dshc_dialog {\n box-sizing: border-box;\n border-radius: var(--dsw-radius-lg);\n width: min(460px, 100%);\n max-height: calc(100vh - 32px);\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-bg-base);\n box-shadow: var(--dsw-elevation-panel, 0 12px 32px #0000004d);\n flex-direction: column;\n gap: 12px;\n padding: 20px;\n display: flex;\n overflow-y: auto;\n}\n\n.dshc_settingsDialog {\n box-sizing: border-box;\n height: min(70vh, 100dvh - 32px);\n max-height: calc(100dvh - 32px);\n overflow: hidden;\n}\n\n.dshc_settingsBody {\n overscroll-behavior: contain;\n flex: auto;\n min-height: 0;\n padding: 2px;\n overflow-y: auto;\n}\n\n.dshc_settingsDialog > :not(.dshc_settingsBody) {\n flex-shrink: 0;\n}\n\n.dshc_settingsFields {\n flex-direction: column;\n gap: 12px;\n display: flex;\n}\n\n.dshc_settingsFeedback {\n overflow-wrap: anywhere;\n max-height: 20%;\n overflow-y: auto;\n}\n\n.dshc_settingsDialog .dshc_dialogActions {\n justify-content: space-between;\n}\n\n@media (width <= 599px) {\n .dshc_settingsDialog {\n height: calc(100dvh - 32px);\n padding: 16px;\n }\n}\n\n.dshc_avatarCropStage {\n background: #000000a6;\n padding: 20px;\n}\n\n.dshc_avatarCropFrame {\n aspect-ratio: 1;\n touch-action: none;\n cursor: grab;\n outline: 2px solid #fff;\n width: min(256px, 100%);\n margin: auto;\n position: relative;\n overflow: hidden;\n}\n\n.dshc_avatarCropFrame:active {\n cursor: grabbing;\n}\n\n.dshc_avatarCropFrame img {\n pointer-events: none;\n user-select: none;\n max-width: none;\n position: absolute;\n}\n\n.dshc_dialogTitle {\n margin: 0;\n font-size: 16px;\n}\n\n.dshc_field {\n color: var(--dsw-alias-label-secondary);\n flex-direction: column;\n gap: 4px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_field textarea {\n resize: vertical;\n}\n\n.dshc_choiceRow {\n flex-wrap: wrap;\n gap: 12px;\n display: flex;\n}\n\n.dshc_choiceColumn {\n flex-direction: column;\n gap: 12px;\n display: flex;\n}\n\n.dshc_choiceColumn .dshc_choice {\n grid-template-columns: max-content minmax(0, 1fr);\n align-items: start;\n display: grid;\n}\n\n.dshc_choice {\n color: var(--dsw-alias-label-primary, inherit);\n cursor: pointer;\n align-items: center;\n gap: 4px;\n font-size: 13px;\n display: inline-flex;\n}\n\n.dshc_dialogActions {\n justify-content: flex-end;\n gap: 8px;\n display: flex;\n}\n\n.dshc_primaryButton, .dshc_secondaryButton {\n border-radius: var(--dsw-radius-sm);\n font: inherit;\n cursor: pointer;\n padding: 7px 14px;\n}\n\n.dshc_primaryButton {\n color: #fff;\n background: var(--dsw-alias-state-business-primary);\n border: 0;\n}\n\n.dshc_primaryButton:disabled {\n cursor: not-allowed;\n opacity: .5;\n}\n\n.dshc_secondaryButton {\n border: 1px solid var(--dsw-alias-border-l2);\n color: var(--dsw-alias-label-primary);\n background: none;\n}\n\n.dshc_memberFailed .dshc_memberStatus {\n color: var(--dsw-alias-state-error-primary, #ed4245);\n}\n\n.dshc_memberFailed .dshc_presence {\n background: #ed4245;\n}\n\n.dshc_mobileButton, .dshc_drawerBackdrop {\n display: none;\n}\n\n.dshc_panelToggle {\n border-radius: var(--dsw-radius-sm);\n width: 28px;\n height: 28px;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n justify-content: center;\n align-items: center;\n font-size: 16px;\n line-height: 1;\n display: inline-flex;\n}\n\n.dshc_panelToggle:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_panelToggle:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_panelToggleEnd {\n margin-left: auto;\n}\n\n.dshc_capabilityMenu {\n z-index: 4;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-base);\n max-height: 260px;\n box-shadow: var(--dsw-elevation-panel, 0 8px 24px #0000003d);\n gap: 2px;\n padding: 5px;\n display: grid;\n position: absolute;\n bottom: calc(100% + 4px);\n left: 0;\n right: 0;\n overflow-y: auto;\n}\n\n.dshc_capabilityItem:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_capabilityHelp {\n color: var(--dsw-alias-label-secondary);\n white-space: normal;\n margin: 6px;\n font-size: 12px;\n}\n\n.dshc_capabilityItem:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_capabilityItem {\n text-align: left;\n cursor: pointer;\n color: var(--dsw-alias-label-secondary);\n white-space: nowrap;\n background: none;\n border: 0;\n padding: 5px 8px;\n font-size: 12px;\n font-weight: 400;\n}\n\n@media (width >= 901px) {\n .dshc_page.dshc_roomsHidden {\n grid-template-columns: minmax(0, 1fr) 240px;\n }\n\n .dshc_page.dshc_membersHidden {\n grid-template-columns: 220px minmax(0, 1fr);\n }\n\n .dshc_page.dshc_roomsHidden.dshc_membersHidden {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .dshc_roomsHidden > .dshc_rooms, .dshc_membersHidden > .dshc_members {\n display: none;\n }\n}\n\n@media (width <= 900px) {\n .dshc_page {\n position: relative;\n overflow: hidden;\n }\n\n .dshc_mobileButton {\n min-width: 40px;\n min-height: 40px;\n color: inherit;\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: 6px;\n justify-content: center;\n align-items: center;\n display: inline-flex;\n }\n\n .dshc_mobileButton:last-child {\n margin-left: auto;\n }\n\n .dshc_panelToggle {\n display: none;\n }\n\n .dshc_drawerBackdrop {\n z-index: 4;\n background: #00000073;\n border: 0;\n display: block;\n position: absolute;\n inset: 0;\n }\n\n .dshc_rooms.dshc_drawerOpen, .dshc_members.dshc_drawerOpen {\n z-index: 5;\n box-sizing: border-box;\n width: min(280px, 85%);\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n box-shadow: 0 0 24px #0000004d;\n }\n\n .dshc_rooms.dshc_drawerOpen {\n left: 0;\n }\n\n .dshc_members.dshc_drawerOpen {\n right: 0;\n }\n\n .dshc_memberActions {\n opacity: 1;\n }\n\n .dshc_messageHead {\n flex-wrap: wrap;\n }\n}\n\n.dshc_avatarPicker {\n flex-wrap: wrap;\n gap: 8px;\n display: flex;\n}\n\n.dshc_avatarOption {\n cursor: pointer;\n background: none;\n border: 2px solid #0000;\n border-radius: 50%;\n padding: 2px;\n display: grid;\n}\n\n.dshc_avatarOption[aria-checked=\"true\"] {\n border-color: var(--dsw-alias-accent, #5865f2);\n}\n\n.dshc_taskBoardTrigger {\n box-sizing: border-box;\n border-radius: var(--dsw-radius-sm);\n width: 100%;\n height: 34px;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n text-align: left;\n cursor: pointer;\n background: none;\n border: 0;\n flex: none;\n align-items: center;\n gap: 8px;\n margin: 4px 0;\n padding: 7px 8px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_taskBoardTrigger:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_taskBoardTrigger:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_taskBoardSummary {\n color: var(--dsw-alias-label-secondary);\n text-align: right;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n overflow: hidden;\n}\n\n.dshc_taskBoardDialog {\n width: min(920px, 100%);\n height: min(70vh, 100dvh - 32px);\n overflow: hidden;\n}\n\n.dshc_taskBoardBody {\n overscroll-behavior: contain;\n flex: auto;\n min-height: 0;\n overflow-y: auto;\n}\n\n.dshc_taskBoardDialog > :not(.dshc_taskBoardBody) {\n flex-shrink: 0;\n}\n\n.dshc_boardTabs {\n border-bottom: 1px solid var(--dsw-alias-border-l2);\n gap: 4px;\n padding-bottom: 8px;\n display: flex;\n overflow-x: auto;\n}\n\n.dshc_boardTabs button {\n border-radius: var(--dsw-radius-sm);\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n flex: none;\n padding: 7px 10px;\n font-size: 13px;\n}\n\n.dshc_boardTabs button:hover, .dshc_boardTabs button[aria-selected=\"true\"] {\n color: var(--dsw-alias-state-business-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_boardTabs button:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n outline-offset: -2px;\n}\n\n.dshc_boardTabCount {\n font-variant-numeric: tabular-nums;\n margin-left: 4px;\n}\n\n.dshc_boardCardGrid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 12px;\n margin: 6px 0 16px;\n padding: 2px;\n list-style: none;\n display: grid;\n}\n\n.dshc_boardTaskCard {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-base);\n border-radius: 12px;\n flex-direction: column;\n gap: 10px;\n min-width: 0;\n padding: 14px;\n transition: transform .14s, box-shadow .14s;\n display: flex;\n}\n\n.dshc_boardTaskCard[data-working=\"true\"] {\n border-color: var(--dsw-alias-state-business-primary);\n}\n\n.dshc_boardTaskCard[data-status=\"done\"] {\n filter: saturate(.25);\n color: var(--dsw-alias-label-secondary);\n}\n\n.dshc_boardTaskCard:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px #00000014;\n}\n\n.dshc_boardTaskHeader {\n align-items: flex-start;\n gap: 8px;\n display: flex;\n}\n\n.dshc_boardTaskTitle {\n overflow-wrap: anywhere;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n flex: 1;\n font-size: 14px;\n font-weight: 600;\n line-height: 1.5;\n display: -webkit-box;\n overflow: hidden;\n}\n\n.dshc_boardTaskHeader .dshc_taskStatus {\n border-radius: 999px;\n padding: 3px 7px;\n font-size: 11px;\n}\n\n.dshc_boardTaskCard .dshc_taskLinks {\n justify-content: flex-end;\n margin-top: auto;\n}\n\n.dshc_boardTabEmpty {\n min-height: 240px;\n color: var(--dsw-alias-label-secondary);\n text-align: center;\n justify-content: center;\n align-items: center;\n padding: 40px 16px;\n display: flex;\n}\n\n@media (width <= 640px) {\n .dshc_boardCardGrid {\n grid-template-columns: minmax(0, 1fr);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_boardTaskCard {\n transition: none;\n }\n\n .dshc_boardTaskCard:hover {\n transform: none;\n }\n}\n\n.dshc_taskBoardScope {\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n}\n\n.dshc_taskSection + .dshc_taskSection {\n margin-top: 8px;\n}\n\n.dshc_taskSectionTitle {\n color: var(--dsw-alias-label-secondary);\n margin: 0 0 4px;\n padding: 0 8px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.dshc_taskOwnerGroup + .dshc_taskOwnerGroup {\n margin-top: 4px;\n}\n\n.dshc_taskOwnerName {\n color: var(--dsw-alias-label-tertiary);\n padding: 0 8px;\n font-size: 12px;\n}\n\n.dshc_taskList {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.dshc_taskRow {\n border-radius: var(--dsw-radius-sm);\n padding: 6px 8px;\n}\n\n.dshc_taskRow:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_taskLine {\n align-items: center;\n gap: 6px;\n min-width: 0;\n display: flex;\n}\n\n.dshc_taskTitle {\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 13px;\n overflow: hidden;\n}\n\n.dshc_taskMeta {\n color: var(--dsw-alias-label-tertiary);\n flex-wrap: wrap;\n gap: 0 8px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_taskLinks {\n gap: 8px;\n display: flex;\n}\n\n.dshc_taskEmpty {\n color: var(--dsw-alias-label-tertiary);\n margin: 0 8px;\n font-size: 12px;\n}\n\n.dshc_taskDone summary {\n cursor: pointer;\n}\n\n.dshc_taskStatus {\n border-radius: var(--dsw-radius-xs);\n color: var(--dsw-alias-label-primary-inverted);\n background: var(--dsw-alias-state-business-primary);\n flex: none;\n padding: 0 4px;\n font-size: 10px;\n font-style: normal;\n font-weight: 600;\n}\n\n.dshc_taskStatus[data-status=\"asked\"], .dshc_taskStatus[data-status=\"escalated\"], .dshc_taskStatus[data-status=\"declined\"], .dshc_taskStatus[data-status=\"rework\"] {\n background: var(--dsw-alias-state-warning-primary, var(--dsw-alias-state-error-primary));\n}\n\n.dshc_taskStatus[data-status=\"done\"] {\n background: var(--dsw-alias-label-tertiary);\n}\n\n.dshc_taskCard {\n margin-top: 4px;\n font-style: normal;\n}\n\n.dshc_taskMembers {\n margin: 4px 0 0;\n padding: 0;\n list-style: none;\n}\n\n.dshc_taskMember {\n align-items: center;\n gap: 8px;\n font-size: 13px;\n display: flex;\n}\n\n.dshc_taskMemberName {\n font-weight: 600;\n}\n\n.dshc_taskSub {\n color: var(--dsw-alias-label-secondary);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.dshc_focused {\n background: var(--dsw-alias-interactive-bg-hover);\n outline: 2px solid var(--dsw-alias-state-business-primary);\n}\n\n.dshc_attachments {\n flex-wrap: wrap;\n gap: 6px;\n margin: 4px 0;\n display: flex;\n}\n\n.dshc_attachmentImage {\n border-radius: 4px;\n max-width: min(320px, 100%);\n max-height: 240px;\n display: block;\n}\n\n.dshc_imageAttachment {\n align-content: start;\n max-width: 100%;\n display: grid;\n}\n\n.dshc_imagePreviewTrigger {\n cursor: zoom-in;\n background: none;\n border: 0;\n border-radius: 4px;\n grid-area: 1 / 1;\n padding: 0;\n}\n\n.dshc_imagePreviewTrigger:focus-visible {\n outline: 2px solid var(--dsw-alias-state-business-primary);\n outline-offset: 2px;\n}\n\n.dshc_imagePreviewDialog {\n box-sizing: border-box;\n width: fit-content;\n max-width: 90vw;\n max-height: 90dvh;\n overflow: auto;\n}\n\n.dshc_imagePreviewHeader {\n flex-shrink: 0;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n display: flex;\n}\n\n.dshc_imagePreviewHeader span {\n overflow-wrap: anywhere;\n min-width: 0;\n}\n\n.dshc_imagePreviewHeader button {\n flex-shrink: 0;\n}\n\n.dshc_imagePreviewImage {\n object-fit: contain;\n align-self: center;\n max-width: 100%;\n min-height: 0;\n max-height: 65dvh;\n display: block;\n}\n\n.dshc_imagePreviewActions {\n flex-wrap: wrap;\n flex-shrink: 0;\n gap: 8px;\n display: flex;\n}\n\n.dshc_imagePreviewActions a {\n text-decoration: none;\n}\n\n.dshc_imagePreviewActions button:disabled {\n cursor: wait;\n opacity: .5;\n}\n\n.dshc_attachmentActions {\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-bg-base);\n opacity: 0;\n pointer-events: none;\n flex-wrap: wrap;\n grid-area: 1 / 1;\n place-self: start end;\n gap: 4px;\n margin: 4px;\n padding: 4px;\n display: flex;\n}\n\n.dshc_attachmentActions a {\n text-decoration: none;\n}\n\n.dshc_attachmentActions button:disabled {\n cursor: wait;\n opacity: .5;\n}\n\n.dshc_imageAttachment:hover .dshc_attachmentActions, .dshc_imageAttachment:focus-within .dshc_attachmentActions, .dshc_imageAttachment[data-copy-state=\"error\"] .dshc_attachmentActions, .dshc_imageAttachment[data-copy-state=\"copying\"] .dshc_attachmentActions, .dshc_imageAttachment[data-copy-state=\"copied\"] .dshc_attachmentActions {\n opacity: 1;\n pointer-events: auto;\n}\n\n@media (hover: none), (pointer: coarse), (width <= 768px) {\n .dshc_attachmentActions {\n opacity: 1;\n pointer-events: auto;\n }\n}\n\n.dshc_attachmentThumb {\n object-fit: cover;\n vertical-align: middle;\n border-radius: 3px;\n width: 32px;\n height: 32px;\n}\n\n.dshc_attachmentFile {\n background: var(--background-secondary, #7f7f7f26);\n color: inherit;\n border-radius: 4px;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n text-decoration: none;\n display: inline-flex;\n}\n\n.dshc_attachmentSize {\n opacity: .6;\n font-size: .85em;\n}\n\n.dshc_attachmentAudio {\n flex-direction: column;\n gap: 2px;\n width: min(320px, 100%);\n display: flex;\n}\n\n.dshc_attachmentAudio audio {\n width: 100%;\n}\n\n.dshc_attachmentAudio a {\n color: inherit;\n text-decoration: none;\n}\n\n.dshc_attachmentFile {\n overflow-wrap: anywhere;\n max-width: 100%;\n}\n\n.dshc_chatHead button, .dshc_chatHead input, .dshc_chatHead select, .dshc_chatHead a, .dshc_chatHead [role=\"menu\"] {\n -webkit-app-region: no-drag;\n}\n\n.dshc_text pre, .dshc_text table {\n max-width: 100%;\n overflow-x: auto;\n}\n\n@media (width >= 901px) {\n .dshc_page {\n grid-template-columns: 232px minmax(0, 1fr) 272px;\n }\n\n .dshc_page.dshc_roomsHidden {\n grid-template-columns: minmax(0, 1fr) 272px;\n }\n\n .dshc_page.dshc_membersHidden {\n grid-template-columns: 232px minmax(0, 1fr);\n }\n\n .dshc_page.dshc_roomsHidden.dshc_membersHidden {\n grid-template-columns: minmax(0, 1fr);\n }\n}\n\n.dshc_rooms {\n padding-top: 4px;\n}\n\n.dshc_room {\n border-radius: var(--dsw-radius-md);\n min-height: 34px;\n padding: 6px 10px;\n transition: background-color .15s, color .15s;\n}\n\n.dshc_workspace {\n min-height: 30px;\n padding-left: 28px;\n font-size: 13px;\n position: relative;\n}\n\n.dshc_workspace:before {\n content: \"\";\n border-left: 1px solid var(--dsw-alias-border-l2);\n border-bottom: 1px solid var(--dsw-alias-border-l2);\n border-bottom-left-radius: 4px;\n width: 7px;\n position: absolute;\n top: 0;\n bottom: 50%;\n left: 15px;\n}\n\n.dshc_workspace .dshc_hash {\n display: none;\n}\n\n.dshc_roomActive {\n color: var(--dsw-alias-label-primary);\n background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, transparent);\n box-shadow: inset 2px 0 0 var(--dsw-alias-state-business-primary);\n font-weight: 600;\n}\n\n.dshc_activeCount {\n font-variant-numeric: tabular-nums;\n border-radius: 999px;\n margin-left: 0;\n padding: 0 6px;\n font-size: 11px;\n line-height: 18px;\n}\n\n.dshc_activeBusy {\n color: var(--dsw-alias-state-business-primary);\n background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, transparent);\n}\n\n.dshc_roomLabel {\n flex: auto;\n min-width: 0;\n}\n\n.dshc_avatarStack {\n flex: none;\n align-items: center;\n padding-left: 4px;\n display: inline-flex;\n}\n\n.dshc_stackDot {\n border: 2px solid var(--dsw-alias-bg-layer-2);\n background-position: center;\n background-size: cover;\n border-radius: 50%;\n width: 18px;\n height: 18px;\n margin-left: -6px;\n}\n\n.dshc_room .dshc_stackDot {\n width: 16px;\n height: 16px;\n}\n\n.dshc_roomActive .dshc_stackDot {\n border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 14%, var(--dsw-alias-bg-layer-2));\n}\n\n.dshc_chatHead {\n gap: 8px;\n height: 52px;\n}\n\n.dshc_roomName {\n letter-spacing: -.01em;\n white-space: nowrap;\n font-size: 15px;\n}\n\n.dshc_headMeta {\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n font-weight: 400;\n overflow: hidden;\n}\n\n.dshc_headActivity {\n color: var(--dsw-alias-label-secondary);\n flex: none;\n align-items: center;\n gap: 6px;\n margin-left: auto;\n font-size: 12px;\n font-weight: 500;\n display: inline-flex;\n}\n\n.dshc_headActivity .dshc_stackDot {\n border-color: var(--dsw-alias-bg-base);\n width: 22px;\n height: 22px;\n}\n\n.dshc_headActivity + .dshc_panelToggleEnd {\n margin-left: 4px;\n}\n\n.dshc_chatHead > .dshc_roomName {\n text-overflow: ellipsis;\n min-width: 0;\n overflow: hidden;\n}\n\n.dshc_chatHead > .dshc_taskBoardTrigger {\n width: auto;\n margin: 0 0 0 auto;\n}\n\n.dshc_chatHead .dshc_taskBoardSummary {\n display: none;\n}\n\n.dshc_headLead {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n border-radius: 999px;\n flex: 0 auto;\n align-items: center;\n gap: 6px;\n min-width: 0;\n padding: 4px 8px;\n font-size: 12px;\n display: inline-flex;\n}\n\n.dshc_headLeadText {\n flex-direction: column;\n min-width: 0;\n display: flex;\n}\n\n.dshc_headLeadName {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.dshc_headLeadStatus {\n color: var(--dsw-alias-label-secondary);\n white-space: nowrap;\n font-size: 11px;\n font-weight: 400;\n}\n\n.dshc_headLead + .dshc_panelToggleEnd {\n margin-left: 0;\n}\n\n.dshc_membersHead {\n align-items: center;\n height: 52px;\n padding: 0 4px;\n display: flex;\n}\n\n.dshc_membersHeadTitle {\n color: var(--dsw-alias-label-tertiary);\n letter-spacing: .08em;\n font-size: 11px;\n font-weight: 650;\n}\n\n.dshc_log {\n padding: 12px 0 16px;\n}\n\n.dshc_message {\n grid-template-columns: 36px minmax(0, 1fr);\n gap: 12px;\n padding: 8px 20px 2px;\n transition: background-color .15s;\n}\n\n.dshc_message.dshc_grouped {\n padding-top: 1px;\n}\n\n.dshc_message:hover {\n background: color-mix(in srgb, var(--dsw-alias-interactive-bg-hover) 70%, transparent);\n}\n\n.dshc_messageHead {\n gap: 8px;\n margin-bottom: 2px;\n}\n\n.dshc_messageHeadGrouped {\n margin-bottom: 0;\n}\n\n.dshc_messageHeadGrouped:not(:has(*)) {\n display: none;\n}\n\n.dshc_author {\n font-size: 13px;\n}\n\n.dshc_time, .dshc_edited {\n font-variant-numeric: tabular-nums;\n font-size: 11px;\n}\n\n.dshc_gutterTime {\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n text-align: right;\n opacity: 0;\n align-self: start;\n padding-top: 3px;\n font-size: 10px;\n transition: opacity .15s;\n}\n\n.dshc_message:hover .dshc_gutterTime {\n opacity: 1;\n}\n\n.dshc_text {\n line-height: 1.6;\n}\n\n.dshc_own {\n grid-template-columns: minmax(0, 1fr) 36px;\n}\n\n.dshc_own > :first-child {\n grid-area: 1 / 2;\n}\n\n.dshc_own > .dshc_messageBody {\n flex-direction: column;\n grid-area: 1 / 1;\n align-items: flex-end;\n display: flex;\n}\n\n.dshc_own .dshc_messageHead {\n flex-direction: row-reverse;\n}\n\n.dshc_own .dshc_ownActions {\n margin-left: 0;\n margin-right: auto;\n}\n\n.dshc_own > .dshc_messageBody > .dshc_text {\n max-width: min(560px, 100%);\n color: var(--dsw-alias-label-primary);\n background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 16%, var(--dsw-alias-bg-layer-2));\n box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--dsw-alias-state-business-primary) 28%, transparent);\n border-radius: 16px 6px 16px 16px;\n padding: 8px 14px;\n}\n\n.dshc_own > .dshc_messageBody > .dshc_quote {\n align-self: flex-end;\n}\n\n.dshc_own .dshc_msgTools {\n left: 16px;\n right: auto;\n}\n\n.dshc_own.dshc_grouped > .dshc_messageBody > .dshc_text {\n border-radius: 16px 6px 6px 16px;\n}\n\n.dshc_systemRecord {\n flex-direction: column;\n align-items: center;\n padding-bottom: 4px;\n display: flex;\n}\n\n.dshc_systemRecord > .dshc_systemLine {\n align-self: stretch;\n}\n\n.dshc_taskRecord {\n box-sizing: border-box;\n width: min(480px, 100% - 40px);\n margin-top: 0;\n}\n\n.dshc_systemLine {\n color: var(--dsw-alias-label-tertiary);\n align-items: center;\n gap: 12px;\n padding: 10px 32px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_systemLine:before, .dshc_systemLine:after {\n content: \"\";\n background: var(--dsw-alias-border-l2);\n flex: 24px;\n min-width: 24px;\n height: 1px;\n}\n\n.dshc_systemText {\n text-align: center;\n max-width: min(640px, 80%);\n}\n\n.dshc_systemText p {\n margin: 0;\n}\n\n.dshc_errorBar {\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 35%, transparent);\n background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 9%, transparent);\n border-radius: 12px;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px 10px;\n margin: 6px 20px 6px 68px;\n padding: 8px 12px;\n font-size: 13px;\n display: flex;\n}\n\n.dshc_errorBar .dshc_cardButtons {\n margin: 0 0 0 auto;\n}\n\n.dshc_errorBar .dshc_secondaryButton {\n padding: 3px 10px;\n font-size: 12px;\n}\n\n.dshc_errorBar[data-state=\"retried\"] {\n opacity: .65;\n}\n\n.dshc_errorIcon {\n color: #fff;\n background: var(--dsw-alias-state-error-primary);\n border-radius: 50%;\n flex: none;\n place-items: center;\n width: 18px;\n height: 18px;\n font-size: 12px;\n font-weight: 700;\n display: grid;\n}\n\n.dshc_errorText {\n min-width: 0;\n color: var(--dsw-alias-label-primary);\n flex: 200px;\n}\n\n.dshc_errorText p {\n margin: 0;\n}\n\n.dshc_runStrip {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-1, var(--dsw-alias-bg-layer-2));\n border-radius: 12px;\n flex-direction: column;\n max-width: 100%;\n margin-top: 4px;\n padding: 5px 10px;\n font-size: 12px;\n display: inline-flex;\n}\n\n.dshc_runStrip[data-state=\"running\"] {\n border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 45%, var(--dsw-alias-border-l2));\n}\n\n.dshc_runStrip[data-state=\"failed\"] {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, var(--dsw-alias-border-l2));\n}\n\n.dshc_runHead {\n min-width: 0;\n color: var(--dsw-alias-label-secondary);\n align-items: center;\n gap: 8px;\n display: flex;\n}\n\n.dshc_runTitle {\n color: var(--dsw-alias-label-primary);\n flex: none;\n font-weight: 600;\n}\n\n.dshc_runSummary {\n font-variant-numeric: tabular-nums;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.dshc_runHead .dshc_cardViews {\n margin-left: 8px;\n}\n\n.dshc_runHead .dshc_cardViewButton {\n color: var(--dsw-alias-label-tertiary);\n border-radius: 999px;\n font-size: 11px;\n}\n\n.dshc_runHead .dshc_cardViewButton[aria-pressed=\"true\"] {\n color: var(--dsw-alias-label-primary);\n}\n\n.dshc_runIcon {\n border-radius: 50%;\n flex: none;\n width: 12px;\n height: 12px;\n position: relative;\n}\n\n.dshc_runStrip[data-state=\"running\"] .dshc_runIcon {\n border: 2px solid color-mix(in srgb, var(--dsw-alias-state-business-primary) 25%, transparent);\n border-top-color: var(--dsw-alias-state-business-primary);\n animation: .8s linear infinite dshc_channels-spin;\n}\n\n.dshc_runStrip[data-state=\"completed\"] .dshc_runIcon {\n background: #23a55a;\n}\n\n.dshc_runStrip[data-state=\"completed\"] .dshc_runIcon:after {\n content: \"\";\n border: 1.5px solid #fff;\n border-width: 0 1.5px 1.5px 0;\n width: 3px;\n height: 6px;\n position: absolute;\n top: 2px;\n left: 4px;\n transform: rotate(45deg);\n}\n\n.dshc_runStrip[data-state=\"failed\"] .dshc_runIcon {\n background: var(--dsw-alias-state-error-primary);\n}\n\n.dshc_runSteps {\n color: var(--dsw-alias-label-secondary);\n margin-top: 4px;\n font-size: 12px;\n line-height: 1.55;\n}\n\n.dshc_runSteps p {\n margin: 0;\n}\n\n.dshc_runStrip .dshc_cardButtons {\n margin-top: 6px;\n}\n\n@keyframes dshc_channels-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_runStrip[data-state=\"running\"] .dshc_runIcon {\n animation-duration: 2.4s;\n }\n}\n\n.dshc_card {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n border-left-width: 1px;\n border-radius: 14px;\n margin-top: 6px;\n padding: 10px 12px;\n}\n\n.dshc_card[data-state=\"failed\"] {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 40%, var(--dsw-alias-border-l2));\n}\n\n.dshc_taskAnchor {\n max-width: 560px;\n box-shadow: inset 3px 0 0 var(--channels-accent-warm, #d08a2e);\n}\n\n.dshc_permInline {\n color: var(--dsw-alias-label-secondary);\n flex-wrap: wrap;\n align-items: baseline;\n gap: 4px 8px;\n display: flex;\n}\n\n.dshc_permInline .dshc_text {\n flex: 0 auto;\n min-width: 0;\n}\n\n.dshc_permInline .dshc_text p {\n margin: 0;\n}\n\n.dshc_permLock {\n color: var(--dsw-alias-state-warning-primary, #e9a23b);\n flex: none;\n font-size: 9px;\n}\n\n.dshc_permWaiting {\n color: var(--dsw-alias-state-warning-primary, #e9a23b);\n flex: none;\n font-size: 11px;\n font-weight: 600;\n}\n\n.dshc_permTray {\n flex-direction: column;\n gap: 6px;\n max-height: 40%;\n margin: 0 16px 8px;\n display: flex;\n overflow-y: auto;\n}\n\n.dshc_permTrayItem {\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 55%, var(--dsw-alias-border-l2));\n background: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 7%, var(--dsw-alias-bg-layer-2));\n border-radius: 14px;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px 12px;\n padding: 10px 12px;\n display: flex;\n box-shadow: 0 6px 20px -12px #00000059;\n}\n\n.dshc_permTrayText {\n flex: 240px;\n min-width: 0;\n font-size: 13px;\n}\n\n.dshc_permTrayText .dshc_text p {\n margin: 0;\n}\n\n.dshc_permTrayWho {\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n font-weight: 600;\n}\n\n.dshc_permTrayItem .dshc_permActions {\n flex-wrap: nowrap;\n margin: 0;\n}\n\n.dshc_permTrayItem .dshc_permScope {\n display: none;\n}\n\n.dshc_members {\n flex-direction: column;\n padding: 0 10px 16px;\n}\n\n@media (width >= 901px) {\n .dshc_members {\n display: flex;\n }\n\n .dshc_membersHidden > .dshc_members {\n display: none;\n }\n}\n\n.dshc_members.dshc_drawerOpen {\n display: flex;\n}\n\n.dshc_activityNow {\n flex-direction: column;\n gap: 2px;\n margin-bottom: 6px;\n display: flex;\n}\n\n.dshc_activityItem {\n border: 1px solid var(--dsw-alias-border-l2);\n width: 100%;\n color: inherit;\n background: var(--dsw-alias-bg-base);\n font: inherit;\n text-align: left;\n cursor: pointer;\n border-radius: 12px;\n align-items: center;\n gap: 10px;\n padding: 8px 10px;\n display: flex;\n}\n\n.dshc_activityItem + .dshc_activityItem {\n margin-top: 4px;\n}\n\n.dshc_activityItem:hover {\n border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 40%, var(--dsw-alias-border-l2));\n}\n\n.dshc_activityItem:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_activityText {\n flex-direction: column;\n flex: 1;\n min-width: 0;\n display: flex;\n}\n\n.dshc_activityName {\n font-size: 13px;\n font-weight: 600;\n}\n\n.dshc_activityWhat {\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n overflow: hidden;\n}\n\n.dshc_activityPulse {\n background: var(--dsw-alias-state-business-primary);\n border-radius: 50%;\n flex: none;\n width: 8px;\n height: 8px;\n animation: 1.6s ease-in-out infinite dshc_channels-pulse;\n}\n\n@keyframes dshc_channels-pulse {\n 50% {\n box-shadow: 0 0 0 3px #23a55a40;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_activityPulse {\n animation: none;\n }\n}\n\n.dshc_member {\n padding: 6px 8px;\n}\n\n.dshc_memberText {\n flex: 1;\n}\n\n.dshc_memberStatus {\n flex: none;\n margin-left: auto;\n font-size: 11px;\n}\n\n.dshc_memberStatus[data-status=\"busy\"] {\n color: var(--dsw-alias-state-business-primary);\n font-weight: 600;\n}\n\n.dshc_memberStatus[data-status=\"error\"] {\n color: var(--dsw-alias-state-error-primary);\n font-weight: 600;\n}\n\n.dshc_memberActions {\n background: var(--dsw-alias-bg-layer-2);\n padding-left: 8px;\n position: absolute;\n top: 50%;\n right: 8px;\n transform: translateY(-50%);\n}\n\n.dshc_addMemberButton {\n border-radius: 10px;\n}\n\n@media (width <= 900px) {\n .dshc_headMeta, .dshc_headActivityText {\n display: none;\n }\n\n .dshc_chatHead {\n padding: 0 8px;\n }\n\n .dshc_mobileButton {\n white-space: nowrap;\n }\n\n .dshc_headActivity ~ .dshc_mobileButton:last-child {\n margin-left: 4px;\n }\n\n .dshc_message {\n padding-left: 12px;\n padding-right: 12px;\n }\n\n .dshc_errorBar {\n margin-left: 12px;\n margin-right: 12px;\n }\n\n .dshc_permTray {\n margin: 0 8px 8px;\n }\n\n .dshc_permTrayItem .dshc_permActions {\n flex-wrap: wrap;\n }\n\n .dshc_systemLine {\n padding: 8px 12px;\n }\n\n .dshc_systemText {\n max-width: 90%;\n }\n\n .dshc_memberActions {\n background: none;\n padding-left: 0;\n position: static;\n transform: none;\n }\n}\n\n@keyframes dshc_channelsEnter {\n from {\n opacity: 0;\n transform: translateY(6px);\n }\n\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n@keyframes dshc_channelsEnterOwn {\n from {\n opacity: 0;\n transform: translateY(12px) scale(.985);\n }\n\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n@keyframes dshc_channelsGlow {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n@keyframes dshc_channelsPop {\n from {\n opacity: 0;\n transform: translateY(4px) scale(.98);\n }\n\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n@keyframes dshc_channelsDot {\n 0%, 60%, 100% {\n opacity: .35;\n transform: none;\n }\n\n 30% {\n opacity: 1;\n transform: translateY(-2px);\n }\n}\n\n@keyframes dshc_channelsDrain {\n from {\n transform: scaleX(1);\n }\n\n to {\n transform: scaleX(0);\n }\n}\n\n.dshc_enter {\n animation: .18s cubic-bezier(.2, 0, 0, 1) both dshc_channelsEnter;\n}\n\n.dshc_enterOwn {\n animation: .22s cubic-bezier(.22, 1, .36, 1) both dshc_channelsEnterOwn;\n}\n\n.dshc_enterGlow:before {\n content: \"\";\n pointer-events: none;\n background: linear-gradient(90deg, color-mix(in srgb, var(--dsw-alias-state-business-primary) 10%, transparent), transparent 70%);\n animation: .7s cubic-bezier(.4, 0, .2, 1) both dshc_channelsGlow;\n animation-delay: inherit;\n position: absolute;\n inset: 0;\n}\n\n.dshc_message {\n transition: background-color .16s cubic-bezier(.2, 0, 0, 1);\n}\n\n.dshc_room {\n transition: background-color .16s cubic-bezier(.2, 0, 0, 1), color .16s cubic-bezier(.2, 0, 0, 1);\n}\n\n.dshc_card {\n transition: border-color .32s cubic-bezier(.2, 0, 0, 1), background-color .32s cubic-bezier(.2, 0, 0, 1);\n}\n\n.dshc_sendButton, .dshc_primaryButton, .dshc_secondaryButton, .dshc_mentionButton, .dshc_cardViewButton {\n transition: background-color .16s cubic-bezier(.2, 0, 0, 1), opacity .16s cubic-bezier(.2, 0, 0, 1), transform .12s cubic-bezier(.2, 0, 0, 1);\n}\n\n.dshc_sendButton:not(:disabled):active, .dshc_primaryButton:not(:disabled):active, .dshc_secondaryButton:not(:disabled):active, .dshc_mentionButton:not(:disabled):active, .dshc_cardViewButton:active {\n transform: translateY(1px);\n}\n\n.dshc_mentionPopup {\n transform-origin: bottom;\n animation: .16s cubic-bezier(.22, 1, .36, 1) both dshc_channelsPop;\n}\n\n.dshc_typingDots {\n vertical-align: middle;\n gap: 3px;\n margin-right: 6px;\n display: inline-flex;\n}\n\n.dshc_typingDots i {\n background: currentColor;\n border-radius: 50%;\n width: 4px;\n height: 4px;\n animation: 1.2s ease-in-out infinite dshc_channelsDot;\n}\n\n.dshc_typingDots i:nth-child(2) {\n animation-delay: .15s;\n}\n\n.dshc_typingDots i:nth-child(3) {\n animation-delay: .3s;\n}\n\n.dshc_logWrap {\n flex-direction: column;\n flex: 1;\n min-height: 0;\n display: flex;\n position: relative;\n}\n\n.dshc_olderLoading {\n color: var(--dsw-alias-label-tertiary);\n text-align: center;\n padding: 8px 16px;\n font-size: 12px;\n}\n\n.dshc_unreadDivider {\n color: var(--dsw-alias-state-error-primary);\n align-items: center;\n gap: 8px;\n margin: 8px 16px;\n font-size: 12px;\n font-weight: 600;\n display: flex;\n}\n\n.dshc_unreadDivider:before, .dshc_unreadDivider:after {\n content: \"\";\n opacity: .35;\n background: currentColor;\n flex: 1;\n height: 1px;\n}\n\n.dshc_withdrawnRow {\n text-align: right;\n color: var(--dsw-alias-label-tertiary);\n padding: 6px 16px;\n font-size: 13px;\n font-style: italic;\n animation: .18s cubic-bezier(.2, 0, 0, 1) both dshc_channelsEnter;\n}\n\n.dshc_jumpLatest {\n z-index: 3;\n border: 1px solid var(--dsw-alias-border-l2);\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-bg-base);\n box-shadow: var(--dsw-elevation-panel, 0 8px 24px #00000029);\n font: inherit;\n cursor: pointer;\n border-radius: 999px;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n font-size: 12px;\n animation: .22s cubic-bezier(.22, 1, .36, 1) both dshc_channelsPop;\n display: inline-flex;\n position: absolute;\n bottom: 12px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.dshc_jumpLatest:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_jumpLatest:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_jumpCount {\n color: var(--dsw-alias-state-business-primary);\n font-weight: 600;\n}\n\n.dshc_undoToast {\n z-index: 4;\n border-radius: var(--dsw-radius-md);\n width: max-content;\n max-width: calc(100% - 32px);\n color: var(--dsw-alias-label-primary-inverted);\n background: var(--dsw-alias-label-primary);\n box-shadow: var(--dsw-elevation-panel, 0 8px 24px #0000003d);\n align-items: center;\n gap: 12px;\n margin: 0 auto;\n padding: 8px 8px 8px 14px;\n font-size: 13px;\n animation: .22s cubic-bezier(.22, 1, .36, 1) both dshc_channelsPop;\n display: flex;\n position: absolute;\n bottom: 12px;\n left: 0;\n right: 0;\n overflow: hidden;\n}\n\n.dshc_undoButton {\n border-radius: var(--dsw-radius-sm);\n color: inherit;\n background: color-mix(in srgb, currentColor 16%, transparent);\n font: inherit;\n cursor: pointer;\n border: 0;\n padding: 2px 10px;\n font-weight: 600;\n}\n\n.dshc_undoButton:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_undoBar {\n background: var(--dsw-alias-state-business-primary);\n transform-origin: 0;\n height: 2px;\n animation: linear forwards dshc_channelsDrain;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n.dshc_undoToast ~ .dshc_jumpLatest {\n display: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_enter, .dshc_enterOwn, .dshc_enterGlow:before, .dshc_mentionPopup, .dshc_jumpLatest, .dshc_undoToast, .dshc_withdrawnRow {\n animation: none;\n }\n\n .dshc_typingDots i {\n opacity: .6;\n animation: none;\n }\n\n .dshc_undoBar {\n animation: none;\n }\n\n .dshc_message, .dshc_room, .dshc_card, .dshc_sendButton, .dshc_primaryButton, .dshc_secondaryButton, .dshc_mentionButton, .dshc_mentionBadge, .dshc_cardViewButton {\n transition: none;\n }\n}\n\n.dshc_leadCard {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2);\n border-radius: 14px;\n align-items: center;\n gap: 10px;\n margin: 8px 8px 4px;\n display: flex;\n}\n\n.dshc_leadCardButton {\n border-radius: inherit;\n min-width: 0;\n color: inherit;\n font: inherit;\n text-align: left;\n cursor: pointer;\n background: none;\n border: 0;\n flex: auto;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n display: flex;\n}\n\n.dshc_leadCardButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_leadCardButton:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-alias-border-focus, currentColor);\n outline-offset: -2px;\n}\n\n.dshc_leadCardButton:disabled {\n cursor: default;\n background: none;\n}\n\n.dshc_leadCardText {\n flex-direction: column;\n min-width: 0;\n display: flex;\n}\n\n.dshc_leadCardName {\n color: var(--dsw-alias-label-primary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 14px;\n font-weight: 650;\n overflow: hidden;\n}\n\n.dshc_leadCardStatus {\n color: var(--dsw-alias-label-secondary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n overflow: hidden;\n}\n\n.dshc_message:not(.dshc_own) > .dshc_messageBody > .dshc_text {\n background: var(--dsw-alias-bg-layer-2);\n border-radius: 6px 16px 16px;\n width: fit-content;\n max-width: min(640px, 100%);\n padding: 8px 14px;\n}\n\n.dshc_message.dshc_grouped:not(.dshc_own) > .dshc_messageBody > .dshc_text {\n border-radius: 6px 16px 16px 6px;\n}\n\n.dshc_own > .dshc_messageBody > .dshc_text {\n color: var(--dsw-alias-bg-base);\n background: var(--dsw-alias-label-primary);\n box-shadow: none;\n}\n\n.dshc_own > .dshc_messageBody > .dshc_text * {\n color: inherit;\n}\n\n.dshc_own > .dshc_messageBody > .dshc_text a {\n color: inherit;\n text-decoration: underline;\n}\n\n.dshc_own > .dshc_messageBody > .dshc_text code {\n color: inherit;\n background: color-mix(in srgb, var(--dsw-alias-bg-base) 18%, transparent);\n}\n\n.dshc_own > .dshc_messageBody > .dshc_text .dshc_mentionBadge {\n color: var(--dsw-alias-bg-base);\n background: color-mix(in srgb, var(--dsw-alias-bg-base) 24%, transparent);\n}\n\n.dshc_own > .dshc_messageBody > .dshc_text .dshc_mentionBadge:hover {\n background: color-mix(in srgb, var(--dsw-alias-bg-base) 36%, transparent);\n}\n\n.dshc_boardDrawerBackdrop {\n background: #00000040;\n place-items: stretch end;\n padding: 0;\n}\n\n.dshc_boardDrawerBackdrop > .dshc_taskBoardDialog {\n box-sizing: border-box;\n border-radius: 0;\n width: min(440px, 100%);\n height: 100dvh;\n max-height: none;\n animation: .2s ease-out dshc_boardDrawerIn;\n}\n\n@keyframes dshc_boardDrawerIn {\n from {\n opacity: 0;\n transform: translateX(24px);\n }\n\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_boardDrawerBackdrop > .dshc_taskBoardDialog {\n animation: none;\n }\n}\n\n.dshc_schemeToggle {\n border-radius: var(--dsw-radius-sm);\n width: 28px;\n height: 28px;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n flex: none;\n justify-content: center;\n align-items: center;\n margin-left: 4px;\n font-size: 16px;\n line-height: 1;\n display: inline-flex;\n}\n\n.dshc_schemeToggle:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_schemeToggle:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_schemeToggle + .dshc_panelToggleEnd {\n margin-left: 4px;\n}\n\n.dshc_progressCard {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-base);\n box-shadow: 0 6px 18px #0000000a, 0 -12px 0 0 var(--dsw-alias-bg-base);\n border-radius: 14px;\n flex: none;\n margin: 8px 16px 4px;\n padding: 8px 14px;\n font-size: 12px;\n position: relative;\n}\n\n.dshc_progressHead {\n align-items: center;\n gap: 8px;\n display: flex;\n}\n\n.dshc_progressTitle {\n color: var(--dsw-alias-label-primary);\n font-size: 12px;\n}\n\n.dshc_progressSummary {\n white-space: nowrap;\n text-overflow: ellipsis;\n min-width: 0;\n color: var(--dsw-alias-label-tertiary);\n flex: 1;\n overflow: hidden;\n}\n\n.dshc_progressToggle {\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-sm);\n min-width: 22px;\n height: 24px;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n cursor: pointer;\n background: none;\n flex: none;\n justify-content: center;\n align-items: center;\n gap: 4px;\n margin-left: auto;\n padding: 0 10px;\n font-size: 12px;\n font-weight: 500;\n line-height: 1;\n display: inline-flex;\n}\n\n.dshc_progressChevron {\n font-size: 12px;\n}\n\n.dshc_progressToggle:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_progressToggle:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_progressCard[data-folded=\"true\"] {\n padding: 6px 12px;\n}\n\n.dshc_progressRows {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 0 14px;\n margin: 4px 0 0;\n display: grid;\n}\n\n.dshc_progressRow {\n min-width: 0;\n}\n\n.dshc_progressRow dt {\n color: var(--dsw-alias-label-tertiary);\n font-size: 10px;\n}\n\n.dshc_progressRow dd {\n white-space: nowrap;\n text-overflow: ellipsis;\n min-width: 0;\n color: var(--dsw-alias-label-primary);\n margin: 0;\n overflow: hidden;\n}\n\n.dshc_progressRow[data-empty=\"true\"] dd {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.dshc_progressRow[data-row=\"open\"][data-empty=\"false\"] dd, .dshc_progressRow[data-row=\"open\"] .dshc_progressLink {\n color: var(--dsw-alias-state-warning-primary, #b7791f);\n}\n\n.dshc_progressLink {\n max-width: 100%;\n color: inherit;\n font: inherit;\n text-align: left;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 0;\n overflow: hidden;\n}\n\n.dshc_progressLink:hover {\n text-decoration: underline;\n}\n\n@media (width <= 760px) {\n .dshc_progressCard {\n margin: 6px 10px 2px;\n }\n\n .dshc_progressRows {\n grid-template-columns: 52px minmax(0, 1fr);\n }\n\n .dshc_progressRow {\n display: contents;\n }\n}\n\n.dshc_stepChips {\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n display: flex;\n}\n\n.dshc_stepChip {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-base);\n max-width: 220px;\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n cursor: pointer;\n border-radius: 999px;\n align-items: center;\n gap: 5px;\n padding: 2px 9px 2px 7px;\n font-size: 11px;\n display: inline-flex;\n}\n\n.dshc_stepChip b {\n color: var(--dsw-alias-label-primary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 600;\n overflow: hidden;\n}\n\n.dshc_stepChip:disabled {\n cursor: default;\n}\n\n.dshc_stepChip[aria-expanded=\"true\"] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_stepChip[data-state=\"failed\"] {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, var(--dsw-alias-border-l2));\n}\n\n.dshc_stepChip[data-state=\"failed\"] b {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.dshc_stepChip[data-state=\"running\"] {\n border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 55%, var(--dsw-alias-border-l2));\n}\n\n.dshc_stepMark {\n background: var(--dsw-alias-label-tertiary);\n border-radius: 50%;\n flex: none;\n width: 7px;\n height: 7px;\n}\n\n.dshc_stepChip[data-state=\"ok\"] .dshc_stepMark {\n background: #23a55a;\n}\n\n.dshc_stepChip[data-state=\"failed\"] .dshc_stepMark {\n background: var(--dsw-alias-state-error-primary);\n}\n\n.dshc_stepChip[data-state=\"running\"] .dshc_stepMark {\n background: var(--dsw-alias-state-business-primary);\n animation: 1s ease-in-out infinite dshc_channels-blink;\n}\n\n@keyframes dshc_channels-blink {\n 50% {\n opacity: .3;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_stepChip[data-state=\"running\"] .dshc_stepMark {\n animation: none;\n }\n}\n\n.dshc_stepOut {\n border: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-layer-2, var(--dsw-alias-bg-base));\n color: var(--dsw-alias-label-secondary);\n border-radius: 8px;\n flex-basis: 100%;\n gap: 4px;\n padding: 8px 10px;\n font-size: 11px;\n line-height: 1.5;\n display: grid;\n}\n\n.dshc_stepOut[data-state=\"failed\"] {\n border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, var(--dsw-alias-border-l2));\n}\n\n.dshc_stepOut div {\n gap: 8px;\n min-width: 0;\n display: flex;\n}\n\n.dshc_stepOut span {\n color: var(--dsw-alias-label-tertiary);\n flex: none;\n}\n\n.dshc_stepOut code {\n overflow-wrap: anywhere;\n min-width: 0;\n font-family: ui-monospace, Menlo, monospace;\n}\n\n.dshc_stepOut[data-state=\"failed\"] > div[data-state=\"failed\"] > div:last-child > code {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.dshc_decideTray {\n border: 1px solid color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 55%, var(--dsw-alias-border-l2));\n background: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 7%, var(--dsw-alias-bg-layer-2));\n border-radius: 14px;\n flex-direction: column;\n max-height: 45%;\n margin: 0 16px 8px;\n display: flex;\n overflow-y: auto;\n}\n\n.dshc_decideTrayHead {\n width: 100%;\n color: inherit;\n font: inherit;\n text-align: left;\n cursor: pointer;\n background: none;\n border: 0;\n flex: none;\n align-items: baseline;\n gap: 8px;\n padding: 7px 12px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_decideTrayHead strong {\n color: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 70%, var(--dsw-alias-label-primary));\n}\n\n.dshc_decideTrayHead small {\n color: var(--dsw-alias-label-secondary);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.dshc_decideTrayHead:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n outline-offset: -2px;\n}\n\n.dshc_decideTrayToggle {\n color: var(--dsw-alias-label-secondary);\n white-space: nowrap;\n margin-left: auto;\n}\n\n.dshc_decideTray .dshc_permTray {\n max-height: none;\n margin: 0;\n padding: 0 8px 8px;\n}\n\n.dshc_askList {\n flex-direction: column;\n display: flex;\n}\n\n.dshc_askItem {\n border-top: 1px solid color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 30%, transparent);\n background: var(--dsw-alias-bg-layer-2);\n flex-wrap: wrap;\n align-items: center;\n gap: 6px 10px;\n padding: 8px 12px;\n display: flex;\n}\n\n.dshc_askKind {\n color: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 75%, var(--dsw-alias-label-primary));\n background: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 15%, transparent);\n border-radius: 5px;\n flex: none;\n padding: 0 6px;\n font-size: 11px;\n}\n\n.dshc_askText {\n flex-direction: column;\n flex: 200px;\n min-width: 0;\n font-size: 13px;\n display: flex;\n}\n\n.dshc_askQuestion {\n overflow-wrap: anywhere;\n}\n\n.dshc_askFrom {\n color: var(--dsw-alias-label-secondary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 11px;\n overflow: hidden;\n}\n\n.dshc_askForm {\n flex: 0 260px;\n align-items: center;\n gap: 6px;\n min-width: 160px;\n display: flex;\n}\n\n.dshc_askInput {\n border: 1px solid var(--dsw-alias-border-l2);\n min-width: 0;\n color: inherit;\n background: var(--dsw-alias-bg-base);\n font: inherit;\n border-radius: 8px;\n flex: 1;\n padding: 4px 8px;\n font-size: 12px;\n}\n\n.dshc_askInput:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n}\n\n.dshc_askSend {\n width: 26px;\n height: 26px;\n color: var(--dsw-alias-bg-base);\n background: var(--dsw-alias-label-primary);\n cursor: pointer;\n border: 0;\n border-radius: 50%;\n flex: none;\n justify-content: center;\n align-items: center;\n padding: 0;\n display: inline-flex;\n}\n\n.dshc_askSend:disabled {\n opacity: .3;\n cursor: default;\n}\n\n.dshc_askSend:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color);\n outline-offset: 2px;\n}\n\n.dshc_askDone {\n color: var(--dsw-alias-label-secondary);\n align-items: center;\n gap: 8px;\n font-size: 12px;\n display: inline-flex;\n}\n\n.dshc_askNotice {\n color: color-mix(in srgb, var(--dsw-alias-state-warning-primary, #e9a23b) 75%, var(--dsw-alias-label-primary));\n flex-basis: 100%;\n font-size: 12px;\n}\n\n@media (width <= 900px) {\n .dshc_decideTray {\n margin: 0 8px 8px;\n }\n\n .dshc_askForm {\n flex-basis: 100%;\n }\n}\n\n.dshc_headTeam {\n flex: none;\n align-items: center;\n margin-left: auto;\n display: inline-flex;\n}\n\n.dshc_mate, .dshc_mateMore {\n border: 2px solid var(--dsw-alias-bg-base);\n background: var(--dsw-alias-bg-base);\n cursor: pointer;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n margin-left: -6px;\n padding: 0;\n display: inline-flex;\n position: relative;\n}\n\n.dshc_mate:first-child {\n margin-left: 0;\n}\n\n.dshc_mate .dshc_avatar {\n margin: 0;\n}\n\n.dshc_mateMore {\n background: var(--dsw-alias-interactive-bg-hover);\n width: 28px;\n height: 28px;\n color: var(--dsw-alias-label-secondary);\n font-size: 11px;\n font-weight: 600;\n}\n\n.dshc_mateDot {\n box-sizing: border-box;\n border: 2px solid var(--dsw-alias-bg-base);\n background: var(--dsw-alias-label-tertiary);\n border-radius: 50%;\n width: 9px;\n height: 9px;\n position: absolute;\n bottom: -2px;\n right: -2px;\n}\n\n.dshc_mate[data-state=\"busy\"] .dshc_mateDot {\n background: #23a55a;\n animation: 1.6s ease-in-out infinite dshc_channels-pulse;\n}\n\n.dshc_mate[data-state=\"idle\"] .dshc_mateDot {\n background: var(--dsw-alias-bg-base);\n box-shadow: inset 0 0 0 1.5px var(--dsw-alias-label-tertiary);\n}\n\n.dshc_mate[data-state=\"error\"] .dshc_mateDot {\n background: var(--dsw-alias-state-error-primary);\n}\n\n.dshc_mate[data-state=\"offline\"] {\n opacity: .55;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_mate[data-state=\"busy\"] .dshc_mateDot {\n animation: none;\n }\n}\n\n@media (width <= 760px) {\n .dshc_headTeam {\n display: none;\n }\n}\n\n.dshc_chatHead > .dshc_headTeam + .dshc_taskBoardTrigger {\n margin-left: 12px;\n}\n\n.dshc_sideDock {\n display: none;\n}\n\n@media (width >= 1101px) {\n .dshc_page.dshc_panelOpen {\n grid-template-columns: 220px minmax(0, 1fr) min(420px, 36%) 240px;\n }\n\n .dshc_page.dshc_panelOpen.dshc_roomsHidden {\n grid-template-columns: minmax(0, 1fr) min(420px, 36%) 240px;\n }\n\n .dshc_page.dshc_panelOpen.dshc_membersHidden {\n grid-template-columns: 220px minmax(0, 1fr) min(420px, 36%);\n }\n\n .dshc_page.dshc_panelOpen.dshc_roomsHidden.dshc_membersHidden {\n grid-template-columns: minmax(0, 1fr) min(420px, 36%);\n }\n\n .dshc_page.dshc_panelOpen > .dshc_sideDock {\n border-left: 1px solid var(--dsw-alias-border-l2);\n background: var(--dsw-alias-bg-base);\n min-width: 0;\n min-height: 0;\n display: flex;\n }\n}\n\n.dshc_sidePanel {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n max-height: none;\n box-shadow: none;\n border: 0;\n border-radius: 0;\n margin: 0;\n animation: .2s ease-out dshc_boardDrawerIn;\n position: relative;\n}\n\n.dshc_sidePanel:focus {\n outline: none;\n}\n\n.dshc_sidePanelClose {\n width: 28px;\n height: 28px;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: 6px;\n font-size: 18px;\n line-height: 1;\n position: absolute;\n top: 10px;\n right: 10px;\n}\n\n.dshc_sidePanelClose:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_sidePanel {\n animation: none;\n }\n}\n\n.dshc_sidePanel .dshc_boardCardGrid {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.dshc_slashPopup {\n z-index: 6;\n width: min(360px, 100% - 32px);\n animation: none;\n right: auto;\n}\n\n.dshc_slashGroup {\n color: var(--dsw-alias-label-tertiary);\n padding: 6px 8px 2px;\n font-size: 11px;\n}\n\n.dshc_slashItem {\n border-radius: var(--dsw-radius-sm);\n cursor: pointer;\n align-items: baseline;\n gap: 8px;\n padding: 5px 8px;\n display: flex;\n}\n\n.dshc_slashActive {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_slashName {\n flex: none;\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n font-weight: 600;\n}\n\n.dshc_slashMeta {\n min-width: 0;\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n overflow: hidden;\n}\n\n.dshc_sendButton.dshc_stopButton {\n background: var(--dsw-alias-label-primary);\n}\n\n.dshc_stopNote + .dshc_sendButton {\n margin-left: 8px;\n}\n\n.dshc_sendButton.dshc_stopButton[data-phase=\"stopping\"] {\n opacity: .6;\n cursor: progress;\n}\n\n.dshc_stopNote {\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n margin-left: auto;\n font-size: 12px;\n}\n\n.dshc_cmdLine {\n color: var(--dsw-alias-label-tertiary);\n flex-wrap: wrap;\n align-items: baseline;\n gap: 6px;\n padding: 1px 16px 1px 72px;\n font-size: 12px;\n display: flex;\n}\n\n.dshc_cmdLine code {\n color: var(--dsw-alias-label-secondary);\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n}\n\n.dshc_cmdResult {\n min-width: 0;\n max-width: 60ch;\n color: inherit;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 0;\n overflow: hidden;\n}\n\n.dshc_cmdResult[aria-expanded=\"true\"] {\n white-space: pre-line;\n max-width: none;\n}\n\n.dshc_cmdLine[data-failed=\"true\"] .dshc_cmdResult {\n color: var(--dsw-alias-danger, #d94848);\n}\n\n@media (width <= 720px) {\n .dshc_cmdLine {\n padding-left: 16px;\n }\n}\n\n.dshc_msgTool {\n justify-content: center;\n align-items: center;\n width: 26px;\n height: 24px;\n padding: 0;\n display: inline-flex;\n position: relative;\n}\n\n.dshc_msgTool[data-tip]:after {\n content: attr(data-tip);\n z-index: 3;\n background: var(--dsw-alias-label-primary);\n color: var(--dsw-alias-label-primary-inverted);\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n border-radius: 4px;\n padding: 2px 6px;\n font-size: 11px;\n position: absolute;\n top: calc(100% + 4px);\n left: 50%;\n transform: translateX(-50%);\n}\n\n.dshc_msgTool[data-tip]:hover:after, .dshc_msgTool[data-tip]:focus-visible:after {\n opacity: 1;\n transition: opacity 0s 80ms;\n}\n\n.dshc_permSessionButton {\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n text-underline-offset: 2px;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 4px 6px;\n font-size: 12px;\n text-decoration: underline;\n}\n\n.dshc_permSessionButton:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.dshc_permSessionButton:disabled {\n opacity: .5;\n cursor: default;\n}\n\n.dshc_queuedButton {\n border: 1px solid var(--dsw-alias-border-default, #0000001f);\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n cursor: pointer;\n background: none;\n border-radius: 9px;\n padding: 0 6px;\n font-size: 11px;\n line-height: 16px;\n}\n\n.dshc_queuedButton:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.dshc_queuedTag {\n color: #a76a06;\n background: #eaa02824;\n border-radius: 4px;\n padding: 0 5px;\n font-size: 11px;\n line-height: 16px;\n}\n\n[data-queued] .dshc_ownActions {\n opacity: 1;\n}\n\n.dshc_memory {\n margin-top: 4px;\n}\n\n.dshc_memoryBadge {\n background: var(--dsw-alias-fill-secondary, #0000000d);\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n cursor: pointer;\n border: 0;\n border-radius: 9px;\n align-items: center;\n gap: 4px;\n padding: 0 6px;\n font-size: 11px;\n line-height: 18px;\n display: inline-flex;\n}\n\n.dshc_memoryBadge:hover, .dshc_memoryBadge[aria-expanded=\"true\"] {\n color: var(--dsw-alias-label-secondary);\n}\n\n.dshc_memoryList {\n border-left: 2px solid var(--dsw-alias-border-default, #0000001f);\n flex-direction: column;\n gap: 4px;\n max-width: 560px;\n margin: 4px 0 0;\n padding: 6px 10px;\n font-size: 12px;\n list-style: none;\n display: flex;\n}\n\n.dshc_memoryItem {\n flex-direction: column;\n display: flex;\n}\n\n.dshc_memoryTitle {\n color: var(--dsw-alias-label-secondary);\n line-height: 1.5;\n}\n\n.dshc_memoryPage {\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n font-family: var(--dsw-font-mono, ui-monospace, monospace);\n}\n\n.dshc_delivery {\n flex-direction: column;\n gap: 6px;\n max-width: 720px;\n margin-top: 8px;\n display: flex;\n}\n\n.dshc_deliveryFrame {\n border: 1px solid var(--background-modifier-accent, #7f7f7f4d);\n background: #fff;\n border-radius: 6px;\n height: 360px;\n display: flex;\n overflow: hidden;\n}\n\n.dshc_deliveryActions {\n flex-wrap: wrap;\n align-items: center;\n gap: 6px;\n display: flex;\n}\n\n.dshc_deliveryActions a {\n text-decoration: none;\n}\n\n.dshc_deliveryDone {\n color: var(--text-muted, #888);\n font-size: 12px;\n}\n\n.dshc_deliveryFullDialog {\n box-sizing: border-box;\n flex-direction: column;\n gap: 8px;\n width: 94vw;\n max-width: none;\n height: 92dvh;\n display: flex;\n}\n\n.dshc_deliveryFullFrame {\n background: #fff;\n border-radius: 6px;\n flex: 1;\n min-height: 0;\n display: flex;\n overflow: hidden;\n}\n\n.dshc_dmTitle {\n color: var(--text-muted, #888);\n margin: 14px 8px 4px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.dshc_dmAvatar {\n margin-right: 6px;\n display: inline-flex;\n}\n\n.dshc_dmRow {\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.dshc_dmRow .dshc_room {\n padding-right: 26px;\n}\n\n.dshc_dmClose {\n border-radius: var(--dsw-radius-sm, 4px);\n width: 20px;\n height: 20px;\n color: var(--dsw-alias-label-tertiary, #888);\n font: inherit;\n cursor: pointer;\n opacity: 0;\n background: none;\n border: 0;\n padding: 0;\n font-size: 15px;\n line-height: 20px;\n position: absolute;\n right: 4px;\n}\n\n.dshc_dmRow:hover .dshc_dmClose, .dshc_dmClose:focus-visible {\n opacity: 1;\n}\n\n.dshc_dmClose:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n@media (hover: none) {\n .dshc_dmClose {\n opacity: 1;\n }\n}\n\n.dshc_dmHead {\n margin-top: 14px;\n}\n\n.dshc_dmPicker {\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-2);\n flex-direction: column;\n margin: 0 4px 4px;\n padding: 4px;\n display: flex;\n}\n\n.dshc_dmPickNone {\n color: var(--dsw-alias-label-tertiary);\n padding: 6px 8px;\n font-size: 12px;\n}\n\n.dshc_dmNewRow {\n color: var(--dsw-alias-label-tertiary);\n font-size: 13px;\n}\n\nbutton.dshc_headMeta {\n border-radius: var(--dsw-radius-sm);\n min-width: 0;\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n flex: 0 auto;\n padding: 2px 6px;\n font-size: 12px;\n}\n\nbutton.dshc_headMeta:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dshc_headSpacer {\n flex: auto;\n}\n\n.dshc_roomUnread {\n color: var(--dsw-alias-label-primary);\n font-weight: 650;\n}\n\n.dshc_unreadBadge {\n color: #fff;\n background: var(--dsw-alias-state-danger-primary, #e5484d);\n text-align: center;\n font-variant-numeric: tabular-nums;\n border-radius: 999px;\n flex: none;\n min-width: 18px;\n padding: 0 5px;\n font-size: 11px;\n font-weight: 600;\n line-height: 18px;\n}\n\n.dshc_slashDisabled {\n opacity: .45;\n cursor: not-allowed;\n}\n\n.dshc_leadCardHint {\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 11px;\n overflow: hidden;\n}\n\n.dshc_roomWorking {\n max-width: 96px;\n color: var(--dsw-alias-state-business-primary);\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: none;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n font-weight: 500;\n display: inline-flex;\n overflow: hidden;\n}\n\n.dshc_roomWorkingDot {\n background: currentColor;\n border-radius: 50%;\n flex: none;\n width: 6px;\n height: 6px;\n animation: 1.4s ease-in-out infinite dshc_roomWorkingPulse;\n}\n\n@keyframes dshc_roomWorkingPulse {\n 50% {\n opacity: .35;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .dshc_roomWorkingDot {\n animation: none;\n }\n}\n\n.dshc_drawerTools {\n display: none;\n}\n\n@media (width <= 600px) {\n .dshc_drawerTools {\n flex-wrap: wrap;\n gap: 6px;\n margin: 0 8px 8px;\n display: flex;\n }\n\n .dshc_chatHead > .dshc_taskBoardTrigger, .dshc_chatHead > .dshc_schemeToggle, .dshc_chatHead > .dshc_headMeta, .dshc_chatHead > .dshc_headTeam {\n display: none;\n }\n\n .dshc_chatHead > .dshc_roomName {\n flex: auto;\n }\n}\n\n.dshc_panelOpen .dshc_chatHead > .dshc_headTeam, .dshc_panelOpen .dshc_chatHead > .dshc_headMeta {\n display: none;\n}\n\n.dshc_panelOpen .dshc_chatHead > .dshc_roomName {\n flex: 0 auto;\n}\n[data-dc-scheme=\"light\"] {\n --dsw-static-amber-100: #fef5e7;\n --dsw-static-amber-400: #f7ad31;\n --dsw-static-amber-500: #f59e0b;\n --dsw-static-amber-600: #dd8629;\n --dsw-static-amber-900: #27241f;\n --dsw-static-blue-100: #dbeafe;\n --dsw-static-blue-300: #93c5fd;\n --dsw-static-blue-400: #60a5fa;\n --dsw-static-blue-450: #4d93f8;\n --dsw-static-blue-500: #3b82f6;\n --dsw-static-blue-50: #eff6ff;\n --dsw-static-blue-50p: #eaf3ff;\n --dsw-static-blue-600: #2563eb;\n --dsw-static-blue-75: #e5f0ff;\n --dsw-static-blue-800: #1e40af;\n --dsw-static-blue-900: #0e3074;\n --dsw-static-blue-950: #172554;\n --dsw-static-deepseek-100: #e4edfd;\n --dsw-static-deepseek-200: #d3e2ff;\n --dsw-static-deepseek-300: #b7c8fe;\n --dsw-static-deepseek-400: #7aaaff;\n --dsw-static-deepseek-450: #5686fe;\n --dsw-static-deepseek-500: #4176e6;\n --dsw-static-deepseek-50: #edf3fe;\n --dsw-static-deepseek-600: #4868b2;\n --dsw-static-deepseek-700-delete: #2f4c8f;\n --dsw-static-deepseek-800: #34415b;\n --dsw-static-deepseek-900: #283142;\n --dsw-static-green-100: #e6faed;\n --dsw-static-green-400: #4ed17e;\n --dsw-static-green-500: #22c55e;\n --dsw-static-green-500-a08: #22c55e14;\n --dsw-static-green-500-a12: #22c55e1f;\n --dsw-static-green-900: #233c2c;\n --dsw-static-neutral-00: #fff;\n --dsw-static-neutral-1000: #000;\n --dsw-static-neutral-100: #f5f5f5;\n --dsw-static-neutral-150: #ededed;\n --dsw-static-neutral-200: #e5e5e5;\n --dsw-static-neutral-250: #dcdcdc;\n --dsw-static-neutral-300: #d4d4d4;\n --dsw-static-neutral-400: #a2a4a6;\n --dsw-static-neutral-500: #7f8287;\n --dsw-static-neutral-50: #fafafa;\n --dsw-static-neutral-550: #65676b;\n --dsw-static-neutral-600: #545557;\n --dsw-static-neutral-700: #3c3c3d;\n --dsw-static-neutral-800: #292929;\n --dsw-static-neutral-850: #212123;\n --dsw-static-neutral-900: #0f0f0f;\n --dsw-static-neutral-bluish-00: #fff;\n --dsw-static-neutral-bluish-1000: #0f1115;\n --dsw-static-neutral-bluish-100: #ebeef2;\n --dsw-static-neutral-bluish-150: #e9ecf2;\n --dsw-static-neutral-bluish-200: #e1e5ee;\n --dsw-static-neutral-bluish-300: #cfd3d6;\n --dsw-static-neutral-bluish-400: #adb2b8;\n --dsw-static-neutral-bluish-500: #979da6;\n --dsw-static-neutral-bluish-50: #f9fafb;\n --dsw-static-neutral-bluish-600: #81858c;\n --dsw-static-neutral-bluish-60: #f5f6f7;\n --dsw-static-neutral-bluish-700: #61666b;\n --dsw-static-neutral-bluish-750: #43454a;\n --dsw-static-neutral-bluish-75: #f1f3f5;\n --dsw-static-neutral-bluish-800: #353638;\n --dsw-static-neutral-bluish-850: #2c2c2e;\n --dsw-static-neutral-bluish-875: #232324;\n --dsw-static-neutral-bluish-900: #1b1b1c;\n --dsw-static-neutral-bluish-950: #151517;\n --dsw-static-red-100: #fee2e2;\n --dsw-static-red-400: #f25a5a;\n --dsw-static-red-400-a12: #f25a5a1f;\n --dsw-static-red-500: #ef4444;\n --dsw-static-red-50: #fef2f2;\n --dsw-static-red-600: #ec1313;\n --dsw-static-red-600-a08: #ec131314;\n --dsw-static-red-900: #570c0c;\n}\n\n[data-dc-scheme=\"dark\"] {\n --dsw-static-amber-100: #fef5e7;\n --dsw-static-amber-400: #f7ad31;\n --dsw-static-amber-500: #f59e0b;\n --dsw-static-amber-600: #dd8629;\n --dsw-static-amber-900: #27241f;\n --dsw-static-blue-100: #dbeafe;\n --dsw-static-blue-300: #93c5fd;\n --dsw-static-blue-400: #60a5fa;\n --dsw-static-blue-450: #4d93f8;\n --dsw-static-blue-500: #3b82f6;\n --dsw-static-blue-50: #eff6ff;\n --dsw-static-blue-50p: #eaf3ff;\n --dsw-static-blue-600: #2563eb;\n --dsw-static-blue-75: #e5f0ff;\n --dsw-static-blue-800: #1e40af;\n --dsw-static-blue-900: #0e3074;\n --dsw-static-blue-950: #172554;\n --dsw-static-deepseek-100: #e4edfd;\n --dsw-static-deepseek-200: #d3e2ff;\n --dsw-static-deepseek-300: #b7c8fe;\n --dsw-static-deepseek-400: #7aaaff;\n --dsw-static-deepseek-450: #5686fe;\n --dsw-static-deepseek-500: #4176e6;\n --dsw-static-deepseek-50: #edf3fe;\n --dsw-static-deepseek-600: #4868b2;\n --dsw-static-deepseek-700-delete: #2f4c8f;\n --dsw-static-deepseek-800: #34415b;\n --dsw-static-deepseek-900: #283142;\n --dsw-static-green-100: #e6faed;\n --dsw-static-green-400: #4ed17e;\n --dsw-static-green-500: #22c55e;\n --dsw-static-green-500-a08: #22c55e14;\n --dsw-static-green-500-a12: #22c55e1f;\n --dsw-static-green-900: #233c2c;\n --dsw-static-neutral-00: #fff;\n --dsw-static-neutral-1000: #000;\n --dsw-static-neutral-100: #f5f5f5;\n --dsw-static-neutral-150: #ededed;\n --dsw-static-neutral-200: #e5e5e5;\n --dsw-static-neutral-250: #dcdcdc;\n --dsw-static-neutral-300: #d4d4d4;\n --dsw-static-neutral-400: #a2a4a6;\n --dsw-static-neutral-500: #7f8287;\n --dsw-static-neutral-50: #fafafa;\n --dsw-static-neutral-550: #65676b;\n --dsw-static-neutral-600: #545557;\n --dsw-static-neutral-700: #3c3c3d;\n --dsw-static-neutral-800: #292929;\n --dsw-static-neutral-850: #212123;\n --dsw-static-neutral-900: #0f0f0f;\n --dsw-static-neutral-bluish-00: #fff;\n --dsw-static-neutral-bluish-1000: #0f1115;\n --dsw-static-neutral-bluish-100: #ebeef2;\n --dsw-static-neutral-bluish-150: #e9ecf2;\n --dsw-static-neutral-bluish-200: #e1e5ee;\n --dsw-static-neutral-bluish-300: #cfd3d6;\n --dsw-static-neutral-bluish-400: #adb2b8;\n --dsw-static-neutral-bluish-500: #979da6;\n --dsw-static-neutral-bluish-50: #f9fafb;\n --dsw-static-neutral-bluish-600: #81858c;\n --dsw-static-neutral-bluish-60: #f9fafb;\n --dsw-static-neutral-bluish-700: #61666b;\n --dsw-static-neutral-bluish-750: #43454a;\n --dsw-static-neutral-bluish-75: #f1f3f5;\n --dsw-static-neutral-bluish-800: #353638;\n --dsw-static-neutral-bluish-850: #2c2c2e;\n --dsw-static-neutral-bluish-875: #232324;\n --dsw-static-neutral-bluish-900: #1b1b1c;\n --dsw-static-neutral-bluish-950: #151517;\n --dsw-static-red-100: #fee2e2;\n --dsw-static-red-400: #f25a5a;\n --dsw-static-red-400-a12: #f25a5a1f;\n --dsw-static-red-500: #ef4444;\n --dsw-static-red-50: #fef2f2;\n --dsw-static-red-600: #ec1313;\n --dsw-static-red-600-a08: #ec131314;\n --dsw-static-red-900: #570c0c;\n}\n\n[data-dc-scheme=\"light\"] {\n --dsw-alias-bg-base: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-bg-document-preview: var(--dsw-static-neutral-bluish-100);\n --dsw-alias-bg-document-selection: color-mix(in srgb, var(--dsw-static-blue-500) 40%, transparent);\n --dsw-alias-label-document-preview: var(--dsw-static-neutral-bluish-700);\n --dsw-alias-bg-layer-1: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-bg-layer-2: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-bg-layer-3: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-bg-mask-1: #0000003d;\n --dsw-alias-bg-mask-2: #0000001f;\n --dsw-alias-bg-mask-3: #0000007a;\n --dsw-alias-bg-mask-photo: #000000e0;\n --dsw-alias-bg-mask-drop: #ffffffb3;\n --dsw-alias-bg-module-platform: var(--dsw-static-neutral-bluish-60);\n --dsw-alias-bg-multi-select: var(--dsw-static-neutral-bluish-60);\n --dsw-alias-bg-overlay: var(--dsw-static-neutral-bluish-150);\n --dsw-alias-bg-skeleton: #0000000a;\n --dsw-alias-border-inverted2: #0000;\n --dsw-alias-border-inverted: #0000;\n --dsw-alias-border-l1: #0000000a;\n --dsw-alias-border-l2-darkmode-thin: #0000001a;\n --dsw-alias-border-l2: #0000001a;\n --dsw-alias-border-l3: #0000001f;\n --dsw-alias-border-l4: #00000029;\n --dsw-alias-brand-primary-invert: var(--dsw-static-neutral-bluish-1000);\n --dsw-alias-brand-primary-new-colorprimary-new-color: #4176e6;\n --dsw-alias-brand-primary: var(--dsw-static-neutral-bluish-1000);\n --dsw-alias-brand-text: var(--dsw-static-neutral-bluish-1000);\n --dsw-alias-button-contrast-fill: var(--dsw-static-neutral-bluish-700);\n --dsw-alias-button-elevated-fill: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-button-floating-fill: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-button-floating-hover: var(--dsw-static-neutral-bluish-75);\n --dsw-alias-button-ghost-active-border: var(--dsw-static-neutral-bluish-500);\n --dsw-alias-button-ghost-active-fill: var(--dsw-static-neutral-bluish-100);\n --dsw-alias-button-ghost-active-hover: var(--dsw-static-neutral-bluish-150);\n --dsw-alias-button-info-fill: var(--dsw-static-deepseek-500);\n --dsw-alias-button-info-hover: var(--dsw-static-deepseek-400);\n --dsw-alias-button-primary-dimmed: var(--dsw-static-neutral-bluish-100);\n --dsw-alias-button-primary-fill: var(--dsw-alias-brand-primary);\n --dsw-alias-button-primary-hover: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-button-tool-bar-fill-invisible: #1f1f1f5c;\n --dsw-alias-button-tool-bar-fill: #54555780;\n --dsw-alias-button-tool-bar-hover: #54555799;\n --dsw-alias-interactive-bg-active: #2631481a;\n --dsw-alias-interactive-bg-hover-accent: #26314824;\n --dsw-alias-interactive-bg-hover-danger: #ec13130d;\n --dsw-alias-interactive-bg-hover-solid: var(--dsw-static-neutral-bluish-75);\n --dsw-alias-interactive-bg-hover: #2631480f;\n --dsw-alias-label-caption: var(--dsw-static-neutral-bluish-400);\n --dsw-alias-label-deep-diving: color-mix(in srgb, var(--dsw-static-deepseek-500) 70%, var(--dsw-static-blue-950));\n --dsw-alias-label-deep-diving-shimmer: color-mix(in srgb, var(--dsw-static-deepseek-500) 30%, var(--dsw-static-blue-950));\n --dsw-alias-label-dimmed: var(--dsw-static-neutral-bluish-200);\n --dsw-alias-label-primary-bluish: var(--dsw-static-blue-900);\n --dsw-alias-label-primary-dimmed: var(--dsw-static-neutral-bluish-950);\n --dsw-alias-label-primary-foreground: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-label-primary-inverted: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-label-primary: var(--dsw-static-neutral-bluish-1000);\n --dsw-alias-label-secondary: var(--dsw-static-neutral-bluish-700);\n --dsw-alias-label-shimmer: color-mix(in srgb, var(--dsw-static-neutral-1000) 30%, transparent);\n --dsw-alias-label-tertiary: var(--dsw-static-neutral-bluish-600);\n --dsw-alias-menu-icon: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-link: var(--dsw-static-deepseek-500);\n --dsw-alias-markdown-citation: var(--dsw-static-neutral-bluish-100);\n --dsw-alias-markdown-code-block-banner: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-markdown-code-block: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-markdown-code-segment-selected: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-markdown-code-segment-unselected: var(--dsw-static-neutral-bluish-75);\n --dsw-alias-markdown-inline-code: var(--dsw-static-neutral-50);\n --dsw-alias-markdown-placeholder: var(--dsw-static-neutral-bluish-60);\n --dsw-alias-markdown-tag: var(--dsw-static-neutral-bluish-75);\n --dsw-alias-scrollbar-bg-l1: var(--dsw-static-neutral-200);\n --dsw-alias-scrollbar-bg-l2: var(--dsw-static-neutral-200);\n --dsw-alias-scrollbar-hover-l1: var(--dsw-static-neutral-300);\n --dsw-alias-scrollbar-hover-l2: var(--dsw-static-neutral-300);\n --dsw-alias-state-business-primary: var(--dsw-static-deepseek-500);\n --dsw-alias-state-business-tertiary: var(--dsw-static-deepseek-100);\n --dsw-alias-code-diff-added: var(--dsw-static-green-500-a08);\n --dsw-alias-code-diff-deleted: var(--dsw-static-red-600-a08);\n --dsw-alias-file-diff-added-bg: #e6f4e7;\n --dsw-alias-file-diff-added-gutter: #edf7ed;\n --dsw-alias-file-diff-added-marker: #01a241;\n --dsw-alias-file-diff-deleted-bg: #fce6e2;\n --dsw-alias-file-diff-deleted-gutter: #fdece9;\n --dsw-alias-file-diff-deleted-marker: #ba2723;\n --dsw-alias-state-error-primary: var(--dsw-static-red-600);\n --dsw-alias-state-error-secondary: var(--dsw-static-red-400);\n --dsw-alias-state-idle-primary: var(--dsw-static-neutral-300);\n --dsw-alias-state-success-primary: var(--dsw-static-green-500);\n --dsw-alias-state-success-secondary: var(--dsw-static-green-400);\n --dsw-alias-state-success-tertiary: var(--dsw-static-green-100);\n --dsw-alias-state-warn-label: var(--dsw-static-amber-600);\n --dsw-alias-state-warn-primary: var(--dsw-static-amber-500);\n --dsw-alias-state-warn-secondary: var(--dsw-static-amber-400);\n --dsw-alias-state-warn-tertiary: var(--dsw-static-amber-100);\n --dsw-alias-switch-thumb: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-toast-bg: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-toast-label: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-tooltip-bg: var(--dsw-static-neutral-bluish-850);\n --dsw-alias-tooltip-key-bg: color-mix(in srgb, var(--dsw-alias-tooltip-bg), white 18%);\n --dsw-alias-turn-trigger-bg: var(--dsw-alias-markdown-code-block);\n --dsw-alias-turn-trigger-bg-hover: var(--dsw-alias-interactive-bg-hover);\n --dsw-specific-bubble-highlight: var(--dsw-static-deepseek-200);\n --dsw-specific-bubble: var(--dsw-static-deepseek-50);\n --dsw-specific-input-major: var(--dsw-static-neutral-bluish-00);\n --dsw-specific-login-input: var(--dsw-static-neutral-bluish-50);\n --dsw-menu-surface-fill: #f8f9fa94;\n --dsw-alias-menu-group-header-fill: #f8f9faf0;\n --dsw-specific-menu: var(--dsw-menu-surface-fill);\n --dsw-specific-selector: var(--dsw-static-neutral-bluish-60);\n --dsw-specific-sidebar-fill: var(--dsw-static-neutral-bluish-50);\n --dsw-specific-sidebar-nav-item-active-accent: var(--dsw-static-deepseek-100);\n --dsw-specific-sidebar-nav-item-active: var(--dsw-static-neutral-bluish-100);\n --dsw-specific-sidebar-nav-item-hover: var(--dsw-static-neutral-bluish-75);\n --dsw-specific-tip: var(--dsw-static-neutral-bluish-60);\n}\n\n[data-dc-scheme=\"dark\"] {\n --dsw-alias-bg-base: var(--dsw-static-neutral-bluish-950);\n --dsw-alias-bg-document-preview: var(--dsw-static-neutral-bluish-950);\n --dsw-alias-bg-document-selection: color-mix(in srgb, var(--dsw-static-blue-500) 40%, transparent);\n --dsw-alias-label-document-preview: var(--dsw-static-neutral-bluish-300);\n --dsw-alias-bg-layer-1: var(--dsw-static-neutral-bluish-875);\n --dsw-alias-bg-layer-2: var(--dsw-static-neutral-bluish-850);\n --dsw-alias-bg-layer-3: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-bg-mask-1: #00000080;\n --dsw-alias-bg-mask-2: #0003;\n --dsw-alias-bg-mask-3: #0000007a;\n --dsw-alias-bg-mask-photo: #000000e0;\n --dsw-alias-bg-mask-drop: #272730b3;\n --dsw-alias-bg-module-platform: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-bg-multi-select: var(--dsw-static-neutral-850);\n --dsw-alias-bg-overlay: var(--dsw-static-neutral-bluish-700);\n --dsw-alias-bg-skeleton: #ffffff14;\n --dsw-alias-border-inverted2: #ffffff14;\n --dsw-alias-border-inverted: #ffffff0f;\n --dsw-alias-border-l1: #ffffff0f;\n --dsw-alias-border-l2-darkmode-thin: #ffffff0f;\n --dsw-alias-border-l2: #ffffff1f;\n --dsw-alias-border-l3: #ffffff29;\n --dsw-alias-border-l4: #fff3;\n --dsw-alias-brand-primary-invert: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-brand-primary-new-colorprimary-new-color: var(--dsw-static-deepseek-450);\n --dsw-alias-brand-primary: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-brand-text: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-button-contrast-fill: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-button-elevated-fill: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-button-floating-fill: var(--dsw-static-neutral-bluish-850);\n --dsw-alias-button-floating-hover: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-button-ghost-active-border: var(--dsw-static-neutral-bluish-600);\n --dsw-alias-button-ghost-active-fill: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-button-ghost-active-hover: var(--dsw-static-neutral-bluish-700);\n --dsw-alias-button-info-fill: var(--dsw-static-deepseek-400);\n --dsw-alias-button-info-hover: var(--dsw-static-deepseek-500);\n --dsw-alias-button-primary-dimmed: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-button-primary-fill: var(--dsw-alias-brand-primary);\n --dsw-alias-button-primary-hover: var(--dsw-static-neutral-bluish-100);\n --dsw-alias-button-tool-bar-fill-invisible: #1f1f1f5c;\n --dsw-alias-button-tool-bar-fill: #54555780;\n --dsw-alias-button-tool-bar-hover: #54555799;\n --dsw-alias-interactive-bg-active: #ffffff24;\n --dsw-alias-interactive-bg-hover-accent: #ffffff3d;\n --dsw-alias-interactive-bg-hover-danger: #f25a5a26;\n --dsw-alias-interactive-bg-hover-solid: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-interactive-bg-hover: #ffffff14;\n --dsw-alias-label-caption: var(--dsw-static-neutral-bluish-600);\n --dsw-alias-label-deep-diving: color-mix(in srgb, var(--dsw-static-deepseek-450) 55%, var(--dsw-static-neutral-bluish-400));\n --dsw-alias-label-deep-diving-shimmer: color-mix(in srgb, var(--dsw-static-blue-300) 65%, var(--dsw-static-deepseek-400));\n --dsw-alias-label-dimmed: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-label-primary-bluish: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-label-primary-dimmed: var(--dsw-static-neutral-bluish-100);\n --dsw-alias-label-primary-foreground: var(--dsw-static-neutral-bluish-1000);\n --dsw-alias-label-primary-inverted: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-label-primary: var(--dsw-static-neutral-bluish-50);\n --dsw-alias-label-secondary: var(--dsw-static-neutral-bluish-300);\n --dsw-alias-label-shimmer: color-mix(in srgb, var(--dsw-static-neutral-00) 45%, transparent);\n --dsw-alias-label-tertiary: var(--dsw-static-neutral-bluish-400);\n --dsw-alias-menu-icon: var(--dsw-alias-label-primary-dimmed);\n --dsw-alias-link: var(--dsw-static-deepseek-400);\n --dsw-alias-markdown-citation: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-markdown-code-block-banner: var(--dsw-static-neutral-bluish-850);\n --dsw-alias-markdown-code-block: var(--dsw-static-neutral-bluish-900);\n --dsw-alias-markdown-code-segment-selected: var(--dsw-static-neutral-bluish-800);\n --dsw-alias-markdown-code-segment-unselected: var(--dsw-static-neutral-bluish-900);\n --dsw-alias-markdown-inline-code: var(--dsw-static-neutral-800);\n --dsw-alias-markdown-placeholder: var(--dsw-static-neutral-bluish-850);\n --dsw-alias-markdown-tag: var(--dsw-static-neutral-bluish-850);\n --dsw-alias-scrollbar-bg-l1: var(--dsw-static-neutral-700);\n --dsw-alias-scrollbar-bg-l2: var(--dsw-static-neutral-600);\n --dsw-alias-scrollbar-hover-l1: var(--dsw-static-neutral-600);\n --dsw-alias-scrollbar-hover-l2: var(--dsw-static-neutral-550);\n --dsw-alias-state-business-primary: var(--dsw-static-deepseek-400);\n --dsw-alias-state-business-tertiary: var(--dsw-static-deepseek-800);\n --dsw-alias-code-diff-added: var(--dsw-static-green-500-a12);\n --dsw-alias-code-diff-deleted: var(--dsw-static-red-400-a12);\n --dsw-alias-file-diff-added-bg: #1f3124;\n --dsw-alias-file-diff-added-gutter: #132016;\n --dsw-alias-file-diff-added-marker: #41c977;\n --dsw-alias-file-diff-deleted-bg: #3c1f1b;\n --dsw-alias-file-diff-deleted-gutter: #28130e;\n --dsw-alias-file-diff-deleted-marker: #fa423e;\n --dsw-alias-state-error-primary: var(--dsw-static-red-400);\n --dsw-alias-state-error-secondary: var(--dsw-static-red-400);\n --dsw-alias-state-idle-primary: var(--dsw-static-neutral-600);\n --dsw-alias-state-success-primary: var(--dsw-static-green-500);\n --dsw-alias-state-success-secondary: var(--dsw-static-green-400);\n --dsw-alias-state-success-tertiary: var(--dsw-static-green-900);\n --dsw-alias-state-warn-label: var(--dsw-static-amber-600);\n --dsw-alias-state-warn-primary: var(--dsw-static-amber-500);\n --dsw-alias-state-warn-secondary: var(--dsw-static-amber-400);\n --dsw-alias-state-warn-tertiary: var(--dsw-static-amber-900);\n --dsw-alias-switch-thumb: var(--dsw-static-neutral-bluish-400);\n --dsw-alias-toast-bg: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-toast-label: var(--dsw-static-neutral-bluish-00);\n --dsw-alias-turn-trigger-bg: var(--dsw-alias-interactive-bg-hover);\n --dsw-alias-turn-trigger-bg-hover: var(--dsw-alias-interactive-bg-active);\n --dsw-alias-tooltip-bg: var(--dsw-static-neutral-bluish-750);\n --dsw-alias-tooltip-key-bg: color-mix(in srgb, var(--dsw-alias-tooltip-bg), white 18%);\n --dsw-specific-bubble-highlight: var(--dsw-static-neutral-bluish-750);\n --dsw-specific-bubble: var(--dsw-static-neutral-bluish-850);\n --dsw-specific-input-major: var(--dsw-static-neutral-bluish-850);\n --dsw-specific-login-input: var(--dsw-static-neutral-bluish-900);\n --dsw-menu-surface-fill: #43454a73;\n --dsw-alias-menu-group-header-fill: #303136f0;\n --dsw-specific-menu: var(--dsw-menu-surface-fill);\n --dsw-specific-selector: var(--dsw-static-neutral-bluish-800);\n --dsw-specific-sidebar-fill: var(--dsw-static-neutral-bluish-900);\n --dsw-specific-sidebar-nav-item-active-accent: var(--dsw-static-neutral-bluish-800);\n --dsw-specific-sidebar-nav-item-active: var(--dsw-static-neutral-bluish-750);\n --dsw-specific-sidebar-nav-item-hover: var(--dsw-static-neutral-bluish-850);\n --dsw-specific-tip: var(--dsw-static-neutral-bluish-800);\n}\n\nhtml[data-platform=\"darwin\"] [data-dc-scheme=\"light\"] {\n --dsw-specific-menu: #f8f9faf0;\n}\n\nhtml[data-platform=\"darwin\"] [data-dc-scheme=\"dark\"] {\n --dsw-specific-menu: #303136f0;\n}\n\n[data-dc-scheme=\"light\"] {\n color-scheme: light;\n}\n\n[data-dc-scheme=\"dark\"] {\n color-scheme: dark;\n}\n.dshc_embed {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n min-height: 0;\n padding-top: var(--dsh-frame-top-clearance, 0px);\n background: var(--dsw-alias-bg-base);\n display: flex;\n}\n\n.dshc_frame {\n background: var(--dsw-alias-bg-base);\n border: 0;\n flex: 1;\n width: 100%;\n height: 100%;\n}\n";document.head.appendChild(s)})();
|
|
9
9
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
10
10
|
// \0rolldown/runtime.js
|
|
11
|
+
var __create = Object.create;
|
|
11
12
|
var __defProp = Object.defineProperty;
|
|
13
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
14
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
15
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
16
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
17
|
var __exportAll = (all, no_symbols) => {
|
|
13
18
|
let target = {};
|
|
14
19
|
for (var name in all) __defProp(target, name, {
|
|
@@ -18,9 +23,24 @@ var __exportAll = (all, no_symbols) => {
|
|
|
18
23
|
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
19
24
|
return target;
|
|
20
25
|
};
|
|
26
|
+
var __copyProps = (to, from, except, desc) => {
|
|
27
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
28
|
+
key = keys[i];
|
|
29
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
30
|
+
get: ((k) => from[k]).bind(null, key),
|
|
31
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return to;
|
|
35
|
+
};
|
|
36
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
|
|
37
|
+
value: mod,
|
|
38
|
+
enumerable: true
|
|
39
|
+
}) : target, mod));
|
|
21
40
|
let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
22
41
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
23
42
|
let react = require("react");
|
|
43
|
+
react = __toESM(react, 1);
|
|
24
44
|
let react_dom = require("react-dom");
|
|
25
45
|
// src/client/uuid.ts
|
|
26
46
|
/**
|
|
@@ -16772,6 +16792,7 @@ var ChannelsPage_module_default = {
|
|
|
16772
16792
|
"jumpCount": "dshc_jumpCount",
|
|
16773
16793
|
"jumpLatest": "dshc_jumpLatest",
|
|
16774
16794
|
"leadCard": "dshc_leadCard",
|
|
16795
|
+
"leadCardButton": "dshc_leadCardButton",
|
|
16775
16796
|
"leadCardHint": "dshc_leadCardHint",
|
|
16776
16797
|
"leadCardName": "dshc_leadCardName",
|
|
16777
16798
|
"leadCardStatus": "dshc_leadCardStatus",
|
|
@@ -16803,6 +16824,7 @@ var ChannelsPage_module_default = {
|
|
|
16803
16824
|
"memoryPage": "dshc_memoryPage",
|
|
16804
16825
|
"memoryTitle": "dshc_memoryTitle",
|
|
16805
16826
|
"mentionActive": "dshc_mentionActive",
|
|
16827
|
+
"mentionBadge": "dshc_mentionBadge",
|
|
16806
16828
|
"mentionButton": "dshc_mentionButton",
|
|
16807
16829
|
"mentionHint": "dshc_mentionHint",
|
|
16808
16830
|
"mentionItem": "dshc_mentionItem",
|
|
@@ -18782,6 +18804,186 @@ function insertMention(text, caret, member) {
|
|
|
18782
18804
|
caret: caret + insert.length
|
|
18783
18805
|
};
|
|
18784
18806
|
}
|
|
18807
|
+
// src/client/mention-highlight.tsx
|
|
18808
|
+
/**
|
|
18809
|
+
* Mention badge highlighting for channel message text and quotes.
|
|
18810
|
+
* Highlights valid channel members/roles as pill badges (Discord-style),
|
|
18811
|
+
* cleanly separated from regular text, without false positives in code or emails.
|
|
18812
|
+
*/
|
|
18813
|
+
function escapeRegex(s) {
|
|
18814
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
18815
|
+
}
|
|
18816
|
+
/**
|
|
18817
|
+
* Builds a regex matcher and lookup map for channel member mention aliases.
|
|
18818
|
+
* Longest aliases are prioritized so e.g. "@阿柚子" matches before "@阿柚".
|
|
18819
|
+
*/
|
|
18820
|
+
function buildMentionMatcher(members) {
|
|
18821
|
+
if (!members || members.length === 0) return void 0;
|
|
18822
|
+
const aliasMap = /* @__PURE__ */ new Map();
|
|
18823
|
+
for (const m of members) {
|
|
18824
|
+
const name = m.name?.trim();
|
|
18825
|
+
const id = m.id?.trim();
|
|
18826
|
+
if (name) aliasMap.set("@" + name, m);
|
|
18827
|
+
if (id) {
|
|
18828
|
+
aliasMap.set("@" + id, m);
|
|
18829
|
+
aliasMap.set("<@" + id + ">", m);
|
|
18830
|
+
aliasMap.set("<@!" + id + ">", m);
|
|
18831
|
+
}
|
|
18832
|
+
if (m.mentionId) {
|
|
18833
|
+
aliasMap.set("<@" + m.mentionId + ">", m);
|
|
18834
|
+
aliasMap.set("<@!" + m.mentionId + ">", m);
|
|
18835
|
+
}
|
|
18836
|
+
}
|
|
18837
|
+
const sortedAliases = Array.from(aliasMap.keys()).sort((a, b) => b.length - a.length);
|
|
18838
|
+
if (sortedAliases.length === 0) return void 0;
|
|
18839
|
+
const parts = sortedAliases.map((alias) => {
|
|
18840
|
+
const escaped = escapeRegex(alias);
|
|
18841
|
+
return /[a-zA-Z0-9_]$/.test(alias) ? `${escaped}(?![a-zA-Z0-9_])` : escaped;
|
|
18842
|
+
});
|
|
18843
|
+
return {
|
|
18844
|
+
regex: new RegExp(`(?<=^|[^a-zA-Z0-9_])(${parts.join("|")})`, "g"),
|
|
18845
|
+
aliasMap
|
|
18846
|
+
};
|
|
18847
|
+
}
|
|
18848
|
+
/**
|
|
18849
|
+
* Splits plain text into non-mention and mention segments.
|
|
18850
|
+
*/
|
|
18851
|
+
function splitMentions(text, members) {
|
|
18852
|
+
if (!text) return [];
|
|
18853
|
+
const matcher = buildMentionMatcher(members);
|
|
18854
|
+
if (!matcher) return [{ text }];
|
|
18855
|
+
const { regex, aliasMap } = matcher;
|
|
18856
|
+
const segments = [];
|
|
18857
|
+
let lastIndex = 0;
|
|
18858
|
+
for (const match of text.matchAll(regex)) {
|
|
18859
|
+
const matchText = match[0];
|
|
18860
|
+
const startIndex = match.index ?? 0;
|
|
18861
|
+
if (startIndex > lastIndex) segments.push({ text: text.slice(lastIndex, startIndex) });
|
|
18862
|
+
const member = aliasMap.get(matchText);
|
|
18863
|
+
segments.push({
|
|
18864
|
+
text: matchText,
|
|
18865
|
+
member
|
|
18866
|
+
});
|
|
18867
|
+
lastIndex = startIndex + matchText.length;
|
|
18868
|
+
}
|
|
18869
|
+
if (lastIndex < text.length) segments.push({ text: text.slice(lastIndex) });
|
|
18870
|
+
return segments;
|
|
18871
|
+
}
|
|
18872
|
+
/**
|
|
18873
|
+
* Formats mention text for display in the pill badge:
|
|
18874
|
+
* converts raw Discord tags like <@12345> into readable @Name.
|
|
18875
|
+
*/
|
|
18876
|
+
function formatMentionBadgeText(rawText, member) {
|
|
18877
|
+
if (rawText.startsWith("<@")) return `@${member.name}`;
|
|
18878
|
+
return rawText;
|
|
18879
|
+
}
|
|
18880
|
+
/**
|
|
18881
|
+
* Highlights mentions in the text nodes of a container element without
|
|
18882
|
+
* touching code blocks (<pre>, <code>), input controls, or scripts.
|
|
18883
|
+
*/
|
|
18884
|
+
function highlightMentionsInElement(container, members, badgeClassName = ChannelsPage_module_default.mentionBadge) {
|
|
18885
|
+
if (!container || !members || members.length === 0) return;
|
|
18886
|
+
const matcher = buildMentionMatcher(members);
|
|
18887
|
+
if (!matcher) return;
|
|
18888
|
+
const doc = container.ownerDocument || document;
|
|
18889
|
+
const existing = container.querySelectorAll(`.${badgeClassName}, [data-mention]`);
|
|
18890
|
+
for (const el of existing) el.replaceWith(doc.createTextNode(el.textContent || ""));
|
|
18891
|
+
container.normalize();
|
|
18892
|
+
const walker = doc.createTreeWalker(container, NodeFilter.SHOW_TEXT, { acceptNode(node) {
|
|
18893
|
+
const parent = node.parentElement;
|
|
18894
|
+
if (!parent) return NodeFilter.FILTER_REJECT;
|
|
18895
|
+
if (parent.closest("pre, code, textarea, input, script, style")) return NodeFilter.FILTER_REJECT;
|
|
18896
|
+
return NodeFilter.FILTER_ACCEPT;
|
|
18897
|
+
} });
|
|
18898
|
+
const textNodes = [];
|
|
18899
|
+
let curr;
|
|
18900
|
+
while (curr = walker.nextNode()) textNodes.push(curr);
|
|
18901
|
+
for (const node of textNodes) {
|
|
18902
|
+
const text = node.nodeValue || "";
|
|
18903
|
+
if (!text) continue;
|
|
18904
|
+
matcher.regex.lastIndex = 0;
|
|
18905
|
+
if (!matcher.regex.test(text)) continue;
|
|
18906
|
+
const segments = splitMentions(text, members);
|
|
18907
|
+
if (segments.length === 1 && !segments[0]?.member) continue;
|
|
18908
|
+
const fragment = doc.createDocumentFragment();
|
|
18909
|
+
for (const seg of segments) if (!seg.member) fragment.appendChild(doc.createTextNode(seg.text));
|
|
18910
|
+
else {
|
|
18911
|
+
const badge = doc.createElement("span");
|
|
18912
|
+
badge.className = badgeClassName;
|
|
18913
|
+
badge.dataset.mention = seg.member.id;
|
|
18914
|
+
badge.title = `@${seg.member.name}`;
|
|
18915
|
+
badge.textContent = formatMentionBadgeText(seg.text, seg.member);
|
|
18916
|
+
fragment.appendChild(badge);
|
|
18917
|
+
}
|
|
18918
|
+
node.replaceWith(fragment);
|
|
18919
|
+
}
|
|
18920
|
+
}
|
|
18921
|
+
/**
|
|
18922
|
+
* Renders quote text with mention pill badges as React elements.
|
|
18923
|
+
*/
|
|
18924
|
+
function renderQuoteMentions(text, members, onMention, badgeClassName = ChannelsPage_module_default.mentionBadge) {
|
|
18925
|
+
return splitMentions(text, members).map((seg, idx) => {
|
|
18926
|
+
if (!seg.member) return seg.text;
|
|
18927
|
+
const member = seg.member;
|
|
18928
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
18929
|
+
className: badgeClassName,
|
|
18930
|
+
"data-mention": member.id,
|
|
18931
|
+
title: `@${member.name}`,
|
|
18932
|
+
onClick: onMention ? (e) => {
|
|
18933
|
+
e.stopPropagation();
|
|
18934
|
+
onMention(member);
|
|
18935
|
+
} : void 0,
|
|
18936
|
+
children: formatMentionBadgeText(seg.text, member)
|
|
18937
|
+
}, idx);
|
|
18938
|
+
});
|
|
18939
|
+
}
|
|
18940
|
+
const useIsomorphicLayoutEffect = typeof window !== "undefined" ? react.useLayoutEffect : react.useEffect;
|
|
18941
|
+
/**
|
|
18942
|
+
* Wraps MarkdownText and applies Discord-style pill badge highlighting
|
|
18943
|
+
* to recognized channel member mentions.
|
|
18944
|
+
*/
|
|
18945
|
+
function HighlightedMarkdown({ text, labels, members, className, inline, dataCardText, onMention }) {
|
|
18946
|
+
const containerRef = (0, react.useRef)(null);
|
|
18947
|
+
useIsomorphicLayoutEffect(() => {
|
|
18948
|
+
const el = containerRef.current;
|
|
18949
|
+
if (!el || !members || members.length === 0) return;
|
|
18950
|
+
highlightMentionsInElement(el, members, ChannelsPage_module_default.mentionBadge);
|
|
18951
|
+
}, [text, members]);
|
|
18952
|
+
const handleClick = (e) => {
|
|
18953
|
+
if (!onMention || !members) return;
|
|
18954
|
+
const target = e.target.closest("[data-mention]");
|
|
18955
|
+
if (!target) return;
|
|
18956
|
+
const mentionId = target.dataset.mention;
|
|
18957
|
+
const member = members.find((m) => m.id === mentionId);
|
|
18958
|
+
if (member) {
|
|
18959
|
+
e.stopPropagation();
|
|
18960
|
+
onMention(member);
|
|
18961
|
+
}
|
|
18962
|
+
};
|
|
18963
|
+
if (inline) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
18964
|
+
ref: (el) => {
|
|
18965
|
+
containerRef.current = el;
|
|
18966
|
+
},
|
|
18967
|
+
className,
|
|
18968
|
+
onClick: handleClick,
|
|
18969
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, {
|
|
18970
|
+
text,
|
|
18971
|
+
labels
|
|
18972
|
+
}, text)
|
|
18973
|
+
});
|
|
18974
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
18975
|
+
ref: (el) => {
|
|
18976
|
+
containerRef.current = el;
|
|
18977
|
+
},
|
|
18978
|
+
className,
|
|
18979
|
+
"data-card-text": dataCardText ? true : void 0,
|
|
18980
|
+
onClick: handleClick,
|
|
18981
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, {
|
|
18982
|
+
text,
|
|
18983
|
+
labels
|
|
18984
|
+
}, text)
|
|
18985
|
+
});
|
|
18986
|
+
}
|
|
18785
18987
|
// src/client/avatars.ts
|
|
18786
18988
|
/**
|
|
18787
18989
|
* Built-in member avatars served by the collab plugin at `collab/avatars/<slug>.png`:
|
|
@@ -19565,8 +19767,8 @@ const tabLabels = {
|
|
|
19565
19767
|
workspace: "settingsWorkspace"
|
|
19566
19768
|
};
|
|
19567
19769
|
/** Drafts and save outcomes live for the whole dialog, independently of the selected tab. */
|
|
19568
|
-
function ChannelSettingsDialog({ room, members, effectiveLead, renameRoom, setDispatchMode, setMaxRelay, setLead, setWorkspacePath, renewRoom, t, onClose }) {
|
|
19569
|
-
const [tab, setTab] = (0, react.useState)(
|
|
19770
|
+
function ChannelSettingsDialog({ room, members, effectiveLead, renameRoom, setDispatchMode, setMaxRelay, setLead, setWorkspacePath, renewRoom, initialTab = "basic", t, onClose }) {
|
|
19771
|
+
const [tab, setTab] = (0, react.useState)(initialTab);
|
|
19570
19772
|
const [name, setName] = (0, react.useState)(room.name);
|
|
19571
19773
|
const [mode, setMode] = (0, react.useState)(room.dispatch_mode ?? "mixed");
|
|
19572
19774
|
const [relay, setRelay] = (0, react.useState)(String(room.max_relay ?? RELAY_CAP_MIN));
|
|
@@ -20405,7 +20607,7 @@ function compactComposer() {
|
|
|
20405
20607
|
return typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia("(hover: none), (max-width: 600px)").matches;
|
|
20406
20608
|
}
|
|
20407
20609
|
/** The quoted original above a reply; a deleted original shows only a placeholder. */
|
|
20408
|
-
function Quote({ quote, t }) {
|
|
20610
|
+
function Quote({ quote, t, members, onMention }) {
|
|
20409
20611
|
if (quote.deleted === true) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
20410
20612
|
className: `${ChannelsPage_module_default.quote} ${ChannelsPage_module_default.quoteDeleted}`,
|
|
20411
20613
|
children: t("replyDeleted")
|
|
@@ -20415,7 +20617,7 @@ function Quote({ quote, t }) {
|
|
|
20415
20617
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
20416
20618
|
className: ChannelsPage_module_default.quoteAuthor,
|
|
20417
20619
|
children: quote.name
|
|
20418
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: quote.text })]
|
|
20620
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: members ? renderQuoteMentions(quote.text, members, onMention) : quote.text })]
|
|
20419
20621
|
});
|
|
20420
20622
|
}
|
|
20421
20623
|
const CARD_VIEW_DEFAULT = "brief";
|
|
@@ -20537,7 +20739,7 @@ function MemoryBadge({ items, t }) {
|
|
|
20537
20739
|
});
|
|
20538
20740
|
}
|
|
20539
20741
|
const LONG_PRESS_MS = 450;
|
|
20540
|
-
function MessageRow({ message, member, t, onConfigure, menuOpen, onAvatar, onCloseMenu, onMention, onDm, onReview, onDecide, onReply, onTask, onRetry, retrying, tasks, focused, cardView, onCardView, own, grouped, enter, queuedFor, taskCardShown = true, toolsOpen = false, onLongPress }) {
|
|
20742
|
+
function MessageRow({ message, member, members, t, onConfigure, menuOpen, onAvatar, onCloseMenu, onMention, onDm, onReview, onDecide, onReply, onTask, onRetry, retrying, tasks, focused, cardView, onCardView, own, grouped, enter, queuedFor, taskCardShown = true, toolsOpen = false, onLongPress }) {
|
|
20541
20743
|
const labels = (0, react.useMemo)(() => ({
|
|
20542
20744
|
code: {
|
|
20543
20745
|
copyLabel: t("copyCode"),
|
|
@@ -20641,9 +20843,12 @@ function MessageRow({ message, member, t, onConfigure, menuOpen, onAvatar, onClo
|
|
|
20641
20843
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
20642
20844
|
className: ChannelsPage_module_default.systemText,
|
|
20643
20845
|
title: fullTime,
|
|
20644
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
20846
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(HighlightedMarkdown, {
|
|
20645
20847
|
text: markdown,
|
|
20646
|
-
labels
|
|
20848
|
+
labels,
|
|
20849
|
+
members,
|
|
20850
|
+
onMention,
|
|
20851
|
+
inline: true
|
|
20647
20852
|
})
|
|
20648
20853
|
})
|
|
20649
20854
|
}), card?.kind === "task" && typeof card.task_id === "number" && taskCardShown && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -20671,12 +20876,12 @@ function MessageRow({ message, member, t, onConfigure, menuOpen, onAvatar, onClo
|
|
|
20671
20876
|
"aria-hidden": true,
|
|
20672
20877
|
children: "!"
|
|
20673
20878
|
}),
|
|
20674
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
20879
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(HighlightedMarkdown, {
|
|
20880
|
+
text: markdown,
|
|
20881
|
+
labels,
|
|
20882
|
+
members,
|
|
20675
20883
|
className: ChannelsPage_module_default.errorText,
|
|
20676
|
-
|
|
20677
|
-
text: markdown,
|
|
20678
|
-
labels
|
|
20679
|
-
})
|
|
20884
|
+
onMention
|
|
20680
20885
|
}),
|
|
20681
20886
|
retryButtons
|
|
20682
20887
|
]
|
|
@@ -20786,7 +20991,9 @@ function MessageRow({ message, member, t, onConfigure, menuOpen, onAvatar, onClo
|
|
|
20786
20991
|
children: [
|
|
20787
20992
|
message.reply_to !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Quote, {
|
|
20788
20993
|
quote: message.reply_to,
|
|
20789
|
-
t
|
|
20994
|
+
t,
|
|
20995
|
+
members,
|
|
20996
|
+
onMention
|
|
20790
20997
|
}),
|
|
20791
20998
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
20792
20999
|
className: grouped ? `${ChannelsPage_module_default.messageHead} ${ChannelsPage_module_default.messageHeadGrouped}` : ChannelsPage_module_default.messageHead,
|
|
@@ -20876,12 +21083,12 @@ function MessageRow({ message, member, t, onConfigure, menuOpen, onAvatar, onClo
|
|
|
20876
21083
|
]
|
|
20877
21084
|
})]
|
|
20878
21085
|
}) : card === void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
20879
|
-
message.text !== "" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
21086
|
+
message.text !== "" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(HighlightedMarkdown, {
|
|
21087
|
+
text: markdown,
|
|
21088
|
+
labels,
|
|
21089
|
+
members,
|
|
20880
21090
|
className: ChannelsPage_module_default.text,
|
|
20881
|
-
|
|
20882
|
-
text: markdown,
|
|
20883
|
-
labels
|
|
20884
|
-
})
|
|
21091
|
+
onMention
|
|
20885
21092
|
}),
|
|
20886
21093
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(AttachmentList, {
|
|
20887
21094
|
attachments: message.attachments,
|
|
@@ -20935,13 +21142,13 @@ function MessageRow({ message, member, t, onConfigure, menuOpen, onAvatar, onClo
|
|
|
20935
21142
|
chips,
|
|
20936
21143
|
runState: card.state,
|
|
20937
21144
|
t
|
|
20938
|
-
}) : !progressFolded && progressLines.length > 1 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
21145
|
+
}) : !progressFolded && progressLines.length > 1 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(HighlightedMarkdown, {
|
|
21146
|
+
text: stepsMarkdown,
|
|
21147
|
+
labels,
|
|
21148
|
+
members,
|
|
20939
21149
|
className: `${ChannelsPage_module_default.text} ${ChannelsPage_module_default.runSteps}`,
|
|
20940
|
-
|
|
20941
|
-
|
|
20942
|
-
text: stepsMarkdown,
|
|
20943
|
-
labels
|
|
20944
|
-
})
|
|
21150
|
+
dataCardText: true,
|
|
21151
|
+
onMention
|
|
20945
21152
|
}),
|
|
20946
21153
|
retryButtons
|
|
20947
21154
|
]
|
|
@@ -20953,12 +21160,12 @@ function MessageRow({ message, member, t, onConfigure, menuOpen, onAvatar, onClo
|
|
|
20953
21160
|
"aria-hidden": true,
|
|
20954
21161
|
children: "●"
|
|
20955
21162
|
}),
|
|
20956
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
21163
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(HighlightedMarkdown, {
|
|
21164
|
+
text: markdown,
|
|
21165
|
+
labels,
|
|
21166
|
+
members,
|
|
20957
21167
|
className: ChannelsPage_module_default.text,
|
|
20958
|
-
|
|
20959
|
-
text: markdown,
|
|
20960
|
-
labels
|
|
20961
|
-
})
|
|
21168
|
+
onMention
|
|
20962
21169
|
}),
|
|
20963
21170
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
20964
21171
|
className: ChannelsPage_module_default.permWaiting,
|
|
@@ -20977,12 +21184,12 @@ function MessageRow({ message, member, t, onConfigure, menuOpen, onAvatar, onClo
|
|
|
20977
21184
|
children: card.title
|
|
20978
21185
|
})
|
|
20979
21186
|
}),
|
|
20980
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
21187
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(HighlightedMarkdown, {
|
|
21188
|
+
text: markdown,
|
|
21189
|
+
labels,
|
|
21190
|
+
members,
|
|
20981
21191
|
className: ChannelsPage_module_default.text,
|
|
20982
|
-
|
|
20983
|
-
text: markdown,
|
|
20984
|
-
labels
|
|
20985
|
-
})
|
|
21192
|
+
onMention
|
|
20986
21193
|
}),
|
|
20987
21194
|
retryButtons,
|
|
20988
21195
|
card.kind === "permission" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PermissionCard, {
|
|
@@ -21100,7 +21307,7 @@ function MessageRow({ message, member, t, onConfigure, menuOpen, onAvatar, onClo
|
|
|
21100
21307
|
});
|
|
21101
21308
|
}
|
|
21102
21309
|
/** One pending permission request in the tray above the composer (#113). */
|
|
21103
|
-
function PermTrayItem({ message, author, t, onDecide }) {
|
|
21310
|
+
function PermTrayItem({ message, author, members, onMention, t, onDecide }) {
|
|
21104
21311
|
const labels = (0, react.useMemo)(() => ({
|
|
21105
21312
|
code: {
|
|
21106
21313
|
copyLabel: t("copyCode"),
|
|
@@ -21126,12 +21333,12 @@ function PermTrayItem({ message, author, t, onDecide }) {
|
|
|
21126
21333
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
21127
21334
|
className: ChannelsPage_module_default.permTrayWho,
|
|
21128
21335
|
children: t("permAsks", { name: message.name })
|
|
21129
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
21336
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(HighlightedMarkdown, {
|
|
21337
|
+
text: markdown,
|
|
21338
|
+
labels,
|
|
21339
|
+
members,
|
|
21130
21340
|
className: ChannelsPage_module_default.text,
|
|
21131
|
-
|
|
21132
|
-
text: markdown,
|
|
21133
|
-
labels
|
|
21134
|
-
})
|
|
21341
|
+
onMention
|
|
21135
21342
|
})]
|
|
21136
21343
|
}),
|
|
21137
21344
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PermissionCard, {
|
|
@@ -21371,8 +21578,10 @@ function ChannelsPage({ useChannels, selectRoom, send, reviewTask, dispatchTask,
|
|
|
21371
21578
|
const [memberError, setMemberError] = (0, react.useState)(void 0);
|
|
21372
21579
|
const [retryingId, setRetryingId] = (0, react.useState)(void 0);
|
|
21373
21580
|
const [settingsOpen, setSettingsOpen] = (0, react.useState)(false);
|
|
21581
|
+
const [settingsTab, setSettingsTab] = (0, react.useState)("basic");
|
|
21374
21582
|
const settingsButtonRef = (0, react.useRef)(null);
|
|
21375
21583
|
const settingsReturnRef = (0, react.useRef)(null);
|
|
21584
|
+
const leadCardRef = (0, react.useRef)(null);
|
|
21376
21585
|
(0, react.useEffect)(() => {
|
|
21377
21586
|
if (!settingsOpen) return;
|
|
21378
21587
|
const opener = settingsReturnRef.current;
|
|
@@ -22130,37 +22339,49 @@ function ChannelsPage({ useChannels, selectRoom, send, reviewTask, dispatchTask,
|
|
|
22130
22339
|
"aria-modal": drawer === "rooms" ? true : void 0,
|
|
22131
22340
|
tabIndex: drawer === "rooms" ? -1 : void 0,
|
|
22132
22341
|
children: [
|
|
22133
|
-
/* @__PURE__ */ (0, react_jsx_runtime.
|
|
22342
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
22134
22343
|
className: ChannelsPage_module_default.leadCard,
|
|
22135
22344
|
role: "group",
|
|
22136
22345
|
"aria-label": t("leadCard"),
|
|
22137
|
-
|
|
22138
|
-
|
|
22139
|
-
|
|
22140
|
-
|
|
22141
|
-
|
|
22142
|
-
|
|
22143
|
-
|
|
22144
|
-
|
|
22145
|
-
|
|
22146
|
-
|
|
22147
|
-
|
|
22148
|
-
|
|
22149
|
-
|
|
22150
|
-
|
|
22151
|
-
|
|
22152
|
-
|
|
22153
|
-
|
|
22154
|
-
|
|
22155
|
-
|
|
22156
|
-
|
|
22157
|
-
|
|
22158
|
-
|
|
22159
|
-
|
|
22160
|
-
|
|
22161
|
-
|
|
22162
|
-
|
|
22163
|
-
|
|
22346
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
22347
|
+
ref: leadCardRef,
|
|
22348
|
+
type: "button",
|
|
22349
|
+
className: ChannelsPage_module_default.leadCardButton,
|
|
22350
|
+
disabled: room === void 0,
|
|
22351
|
+
title: `${lead === void 0 ? leadStatus : `${lead.name} · ${leadStatus}`}\n${t("leadCardChange")}`,
|
|
22352
|
+
onClick: () => {
|
|
22353
|
+
settingsReturnRef.current = leadCardRef.current;
|
|
22354
|
+
setDrawer(void 0);
|
|
22355
|
+
setSettingsTab("dispatch");
|
|
22356
|
+
setSettingsOpen(true);
|
|
22357
|
+
},
|
|
22358
|
+
children: [lead !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Avatar, {
|
|
22359
|
+
id: lead.id,
|
|
22360
|
+
name: lead.name,
|
|
22361
|
+
avatar: lead.avatar,
|
|
22362
|
+
avatarVersion: lead.avatarVersion
|
|
22363
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
22364
|
+
className: ChannelsPage_module_default.leadCardText,
|
|
22365
|
+
children: [
|
|
22366
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
22367
|
+
className: ChannelsPage_module_default.leadCardName,
|
|
22368
|
+
children: lead?.name ?? t("headLead")
|
|
22369
|
+
}),
|
|
22370
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
22371
|
+
className: ChannelsPage_module_default.leadCardStatus,
|
|
22372
|
+
children: [
|
|
22373
|
+
t("leadPinned"),
|
|
22374
|
+
" · ",
|
|
22375
|
+
leadStatus
|
|
22376
|
+
]
|
|
22377
|
+
}),
|
|
22378
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
22379
|
+
className: ChannelsPage_module_default.leadCardHint,
|
|
22380
|
+
children: leadId == null ? t("leadCardSet") : t("leadCardHint")
|
|
22381
|
+
})
|
|
22382
|
+
]
|
|
22383
|
+
})]
|
|
22384
|
+
})
|
|
22164
22385
|
}),
|
|
22165
22386
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
22166
22387
|
className: ChannelsPage_module_default.groupHead,
|
|
@@ -22531,6 +22752,7 @@ function ChannelsPage({ useChannels, selectRoom, send, reviewTask, dispatchTask,
|
|
|
22531
22752
|
message: m,
|
|
22532
22753
|
grouped: continues(visibleMessages[index - 1], m) && !answerIds.has(visibleMessages[index - 1]?.id ?? -1) && !(visibleMessages[index - 1]?.author_kind === "user" && commandLine(visibleMessages[index - 1]?.text ?? "") !== void 0),
|
|
22533
22754
|
member: byId.get(m.author),
|
|
22755
|
+
members: visibleMembers,
|
|
22534
22756
|
t,
|
|
22535
22757
|
onConfigure: () => {
|
|
22536
22758
|
if (!openModelSettings()) setModelsOpen(true);
|
|
@@ -22630,6 +22852,8 @@ function ChannelsPage({ useChannels, selectRoom, send, reviewTask, dispatchTask,
|
|
|
22630
22852
|
children: pendingPerms.map((m) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PermTrayItem, {
|
|
22631
22853
|
message: m,
|
|
22632
22854
|
author: byId.get(m.author),
|
|
22855
|
+
members: visibleMembers,
|
|
22856
|
+
onMention: mentionFromAvatar,
|
|
22633
22857
|
t,
|
|
22634
22858
|
onDecide: decidePermission
|
|
22635
22859
|
}, m.id))
|
|
@@ -22908,6 +23132,7 @@ function ChannelsPage({ useChannels, selectRoom, send, reviewTask, dispatchTask,
|
|
|
22908
23132
|
onClick: () => {
|
|
22909
23133
|
settingsReturnRef.current = drawer === "members" ? membersToggleRef.current : settingsButtonRef.current;
|
|
22910
23134
|
setDrawer(void 0);
|
|
23135
|
+
setSettingsTab("basic");
|
|
22911
23136
|
setSettingsOpen(true);
|
|
22912
23137
|
},
|
|
22913
23138
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
@@ -23003,6 +23228,7 @@ function ChannelsPage({ useChannels, selectRoom, send, reviewTask, dispatchTask,
|
|
|
23003
23228
|
settingsOpen && room !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelSettingsDialog, {
|
|
23004
23229
|
room,
|
|
23005
23230
|
members: visibleMembers,
|
|
23231
|
+
initialTab: settingsTab,
|
|
23006
23232
|
effectiveLead: room.effective_lead_id === void 0 ? state.effectiveLeadId ?? state.leadId ?? "" : room.effective_lead_id ?? "",
|
|
23007
23233
|
renameRoom,
|
|
23008
23234
|
setDispatchMode,
|
|
@@ -23072,7 +23298,7 @@ const zh = {
|
|
|
23072
23298
|
mateReplying: "在回复",
|
|
23073
23299
|
headLeadIdle: "空闲",
|
|
23074
23300
|
headLeadBusyUnreported: "在忙",
|
|
23075
|
-
headLeadUnset: "
|
|
23301
|
+
headLeadUnset: "未设主角色",
|
|
23076
23302
|
progressTitle: "本频道进展",
|
|
23077
23303
|
progressDone: "做完",
|
|
23078
23304
|
progressDoing: "在做",
|
|
@@ -23104,6 +23330,8 @@ const zh = {
|
|
|
23104
23330
|
leadPinned: "主角色",
|
|
23105
23331
|
leadCard: "主角色",
|
|
23106
23332
|
leadCardHint: "接你的话,派活给队友,收结果",
|
|
23333
|
+
leadCardSet: "点这里选一个",
|
|
23334
|
+
leadCardChange: "点开频道设置,换主角色",
|
|
23107
23335
|
activityPanel: "活动",
|
|
23108
23336
|
activityNow: "正在进行",
|
|
23109
23337
|
activityThinking: "思考中",
|
|
@@ -23452,6 +23680,8 @@ const en = {
|
|
|
23452
23680
|
leadPinned: "Primary role",
|
|
23453
23681
|
leadCard: "Primary role",
|
|
23454
23682
|
leadCardHint: "Takes your messages, hands work to teammates, collects results",
|
|
23683
|
+
leadCardSet: "Click to pick one",
|
|
23684
|
+
leadCardChange: "Open channel settings to change the primary role",
|
|
23455
23685
|
activityPanel: "Activity",
|
|
23456
23686
|
activityNow: "Now",
|
|
23457
23687
|
activityThinking: "Thinking",
|
|
@@ -23586,7 +23816,7 @@ const en = {
|
|
|
23586
23816
|
capabilityReminderHelp: "Dispatched tasks receive one reminder when due. The owner returns a result or explains the blocker.",
|
|
23587
23817
|
capabilityWorkspaceHelp: "Assign work to a role in the chat channel. Roles create workspaces when needed; questions and progress return to the chat channel.",
|
|
23588
23818
|
capabilityLeadHelp: "Choose a role under Primary role in the members panel. Messages without an explicit addressee then go to the new primary role.",
|
|
23589
|
-
capabilityDmHelp: "Use
|
|
23819
|
+
capabilityDmHelp: "Use New message under Direct messages in the left column, or Message privately in a bot's avatar menu, to talk with that role one to one, away from the channel. Roles can also message the configured owner.",
|
|
23590
23820
|
configureModel: "Add a model key",
|
|
23591
23821
|
configureModelHint: "Models are configured in Settings → Models: use the settings entry at the bottom of the sidebar, or press ⌘, in the desktop app (Ctrl+, on Windows/Linux).",
|
|
23592
23822
|
retry: "Retry",
|