/* V1.1.80 群范围私聊：独立窗口，不改变主聊天布局与公共变量。 */
.dm-header-button{flex:0 0 auto;border:1px solid #e0e4e9;border-radius:9px;padding:6px 11px;background:#fff;color:#384b5c;font-size:13px;cursor:pointer}
.group-dm-shade[hidden],.group-dm-panel[hidden]{display:none!important}
.group-dm-shade{position:fixed;inset:0;background:rgba(26,37,50,.34);z-index:1400}
.group-dm-panel{position:fixed;z-index:1401;left:50%;top:50%;transform:translate(-50%,-50%);width:min(660px,calc(100vw - 32px));height:min(720px,calc(100dvh - 42px));display:flex;flex-direction:column;overflow:hidden;background:#f8fafc;border:1px solid #dce4ec;border-radius:14px;box-shadow:0 25px 75px rgba(15,26,42,.24);font-family:inherit;color:#253748}
.group-dm-panel button,.group-dm-panel input,.group-dm-panel select{font:inherit}
.dm-head{height:55px;flex-shrink:0;background:#fff;border-bottom:1px solid #e5ebf0;display:flex;align-items:center;justify-content:space-between;padding:0 18px}
.dm-head h2{font-size:17px;font-weight:600;margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#group-dm-close{border:0;background:transparent;color:#657686;font-size:27px;padding:5px 10px;cursor:pointer}
.dm-hint{font-size:12px;color:#758596;padding:10px 17px 7px;margin:0;line-height:1.65}
#dm-hint[data-error="1"]{color:#bf3f42}
.dm-toolbar{padding:12px 16px;display:flex;gap:7px;flex-wrap:wrap;background:#fff;border-bottom:1px solid #e8edf2}
.dm-toolbar button{background:transparent;border:0;border-bottom:2px solid transparent;color:#52677b;cursor:pointer;padding:8px 10px;font-size:13px}
.dm-toolbar button.active{border-color:#2f9072;color:#207b5f;font-weight:600}
#dm-search{min-width:0;flex:1 1 180px;background:#f5f7f9;border:1px solid #dfe5e9;border-radius:8px;outline:none;padding:9px 10px}
.dm-thread-list{overflow:auto;flex:1;min-height:0;padding:10px 16px}
.dm-empty{font-size:13px;color:#758596;line-height:1.75;padding:15px 8px;margin:0}
.dm-person{display:block;width:100%;text-align:left;padding:14px 12px;background:white;border:0;border-bottom:1px solid #ebeff2;color:#314355;cursor:pointer}
.dm-person:hover{background:#f0f6f3}
.dm-thread-list #dm-mode{display:block;width:100%;height:42px;margin:8px 0 14px;border:1px solid #dbe3e8;border-radius:8px;background:white;padding:0 12px}
.dm-grant-row{display:flex;align-items:center;gap:13px;background:white;border-bottom:1px solid #ecf0f3;min-height:44px;padding:8px 10px;font-size:14px}
.dm-grant-row input{width:17px;height:17px;accent-color:#288565}
.dm-save{margin:16px 0;padding:11px 22px;background:#268763;color:white;border:none;border-radius:8px;cursor:pointer;font-weight:600}
.dm-message-section{min-height:0;flex:1;display:flex;flex-direction:column}
.dm-message-section[hidden],.dm-toolbar[hidden],.dm-thread-list[hidden]{display:none!important}
.dm-message-section>header{padding:10px 15px;border-bottom:1px solid #e5ebf0;display:flex;align-items:center;gap:12px}
#dm-back{border:0;background:transparent;color:#437d77;padding:6px;cursor:pointer}
.dm-message-list{flex:1;min-height:0;overflow-y:auto;padding:14px 18px;display:flex;flex-direction:column;gap:12px}
.dm-message{max-width:84%;align-self:flex-start;display:flex;flex-direction:column;gap:3px}
.dm-message.mine{align-self:flex-end;align-items:flex-end}
.dm-bubble{white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border:1px solid #e9edf1;border-radius:12px;padding:10px 13px;margin:0;font-size:14px;line-height:1.55}
.dm-message.mine .dm-bubble{background:#d8f1e4;border-color:#cee9dc}
.dm-time{color:#8c99a5;font-size:10px}
.dm-compose{display:flex;gap:9px;padding:12px 15px;border-top:1px solid #e2e9ef;background:white}
#dm-text{flex:1;min-width:0;border:1px solid #d9e1e7;border-radius:8px;padding:10px 12px;background:#f8fafb}
#dm-send{background:#288865;border:0;border-radius:8px;padding:8px 18px;color:#fff;cursor:pointer}
@media(max-width:640px){.group-dm-panel{inset:0;width:100%;height:100dvh;max-width:none;transform:none;border-radius:0;border:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.dm-toolbar{padding:8px 10px}.dm-head{height:50px;padding:0 12px}.dm-header-button{padding:6px 8px}}

/* V1.1.81 — 私聊显示在消息工作区内；群成员入口来自群资料，不占群标题栏。 */
#chat-pane{position:relative}
#chat-pane .group-dm-panel{position:absolute;inset:0;left:0;top:0;transform:none;width:100%;height:100%;max-width:none;max-height:none;border:0;border-radius:0;box-shadow:none;z-index:20;background:var(--ui-bg,#f7f9fc)}
#chat-pane .group-dm-panel .dm-head{min-height:56px}
#chat-pane .dm-thread-list{padding:0 14px}
#chat-pane .dm-person{min-height:64px;font-size:14px;border-bottom:1px solid #ebeff2;border-radius:0}
#chat-pane .dm-unread{float:right;min-width:19px;height:19px;border-radius:50px;padding:0 5px;display:inline-grid;place-items:center;font-size:11px;background:#2c9071;color:#fff}
#chat-pane .dm-person:focus-visible{outline:2px solid #268763;outline-offset:-2px}
#member-app .native-member-message{color:#267b63}
#member-app .contacts-add[hidden]{display:none!important}
@media(max-width:640px){#chat-pane .group-dm-panel{inset:0;width:100%;height:100%;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}#chat-pane .dm-thread-list{padding:0 8px}#chat-pane .dm-compose{padding-bottom:calc(12px + env(safe-area-inset-bottom))}}

#chat-info-count[data-dm-unread]:after{content:attr(data-dm-unread);display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:7px;padding:0 5px;border-radius:12px;background:#258864;color:#fff;font-size:10px;vertical-align:middle}

/* V1.1.82 — private submit has explicit idle/in-flight affordance. */
#dm-send:disabled{opacity:.48;cursor:not-allowed;filter:saturate(.7)}
#dm-send:not(:disabled):focus-visible{outline:2px solid #5eaa88;outline-offset:2px}

/* V1.1.84 · 与正式运营版群成员、群管理弹窗共用的视觉语言。
   授权配置为居中管理对话框；私聊消息仍位于消息工作区。 */
#member-app .group-dm-shade{
  position:fixed;inset:0;z-index:1950;background:rgba(36,43,61,.30);
}
#member-app .group-dm-panel.is-settings-overlay{
  position:fixed;z-index:1951;inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(494px,calc(100vw - 32px));height:min(675px,calc(100dvh - 48px));
  max-width:none;max-height:none;border:1px solid var(--ui-border,#e7ebf1);
  border-radius:15px;background:#fff;box-shadow:var(--ui-shadow-dialog,0 24px 72px rgba(18,29,47,.22));
  color:var(--ui-ink,#252f41);font-family:var(--ui-font,inherit);
}
#member-app .group-dm-panel.is-settings-overlay .dm-head{
  min-height:60px;height:60px;position:relative;justify-content:center;
  padding:10px 50px;background:#fff;border-bottom:1px solid #eef0f4;
}
#member-app .group-dm-panel.is-settings-overlay .dm-head h2{
  font-size:15px;font-weight:600;color:#222d3e;letter-spacing:.04px;
}
#member-app .group-dm-panel.is-settings-overlay #group-dm-close{
  position:absolute;right:12px;top:11px;min-width:35px;min-height:35px;
  display:grid;place-items:center;padding:0;color:#6f7a8b;font-size:21px;
  border-radius:8px;line-height:1;background:transparent;
}
#member-app .group-dm-panel.is-settings-overlay #group-dm-close:hover{background:#f3f5f9}
#member-app .group-dm-panel.is-settings-overlay #dm-peer-details{
  padding:17px 22px 8px;font-size:12px;line-height:1.8;color:#8793a3;
}
#member-app .group-dm-panel.is-settings-overlay .dm-toolbar{
  border:0;padding:11px 22px 14px;background:#fff;display:block;
}
#member-app .group-dm-panel.is-settings-overlay .dm-toolbar button{display:none!important}
#member-app .group-dm-panel.is-settings-overlay #dm-search{
  display:block;width:100%;min-height:43px;background:#f6f7fa;
  border:1px solid #e4e8f0;border-radius:9px;font-size:13px;color:#334155;
  padding:0 13px;transition:border-color .18s,background .18s,box-shadow .18s;
}
#member-app .group-dm-panel.is-settings-overlay #dm-search:focus{
  outline:0;background:#fff;border-color:#90b7fa;box-shadow:0 0 0 3px rgba(52,120,246,.10);
}
#member-app .group-dm-panel.is-settings-overlay .dm-thread-list{
  flex:1;min-height:0;overflow-y:auto;padding:0 22px 16px;background:#fff;
}
#member-app .group-dm-panel.is-settings-overlay .dm-empty{
  margin:0;padding:10px 0 14px;line-height:1.8;color:#8b95a4;font-size:12px;
}
#member-app .group-dm-panel.is-settings-overlay #dm-mode{
  min-height:44px;height:44px;margin:4px 0 12px;
  border:1px solid #e3e8f0;background:#f7f8fa;border-radius:9px;
  padding:0 12px;color:#344154;font-size:13px;
}
#member-app .group-dm-panel.is-settings-overlay #dm-mode:focus-visible{
  outline:0;border-color:#91b7f5;box-shadow:0 0 0 3px rgba(52,120,246,.10);
}
#member-app .group-dm-panel.is-settings-overlay .dm-grant-row{
  display:flex;align-items:center;gap:13px;min-height:51px;
  padding:10px 4px;border-bottom:1px solid #eef0f4;background:#fff;
  font-size:13px;color:#2f3b4f;cursor:pointer;
}
#member-app .group-dm-panel.is-settings-overlay .dm-grant-row:hover{background:#fafbfe}
#member-app .group-dm-panel.is-settings-overlay .dm-grant-row input{
  width:17px;height:17px;margin:0;accent-color:var(--ui-primary,#3478f6);
}
#member-app .group-dm-panel.is-settings-overlay .dm-save{
  width:100%;min-height:44px;margin:20px 0 5px;padding:0 18px;
  border:1px solid var(--ui-primary,#3478f6);border-radius:9px;
  background:var(--ui-primary,#3478f6);color:#fff;font-size:13px;font-weight:600;
  transition:background .16s,opacity .16s,box-shadow .16s;
}
#member-app .group-dm-panel.is-settings-overlay .dm-save:hover:not(:disabled){background:#2869e1}
#member-app .group-dm-panel.is-settings-overlay .dm-save:disabled{opacity:.55;cursor:wait}
#member-app .group-dm-panel.is-settings-overlay #dm-hint{
  flex:0 0 auto;padding:5px 22px 15px;min-height:20px;font-size:12px;
}
/* Private conversation shares the standard message-area palette and restrained buttons. */
#member-app .group-dm-panel:not(.is-settings-overlay){background:var(--ui-canvas,#f5f4fa)}
#member-app .group-dm-panel .dm-head{border-color:#eef0f4;background:#fff}
#member-app .group-dm-panel .dm-toolbar{border-color:#eef0f4}
#member-app .group-dm-panel .dm-toolbar button{color:#737f90}
#member-app .group-dm-panel .dm-toolbar button.active{color:#3478f6;border-color:#3478f6}
#member-app .group-dm-panel .dm-person{color:#293446}
#member-app .group-dm-panel .dm-person:hover{background:#f8faff}
#member-app .group-dm-panel .dm-unread{background:#3478f6!important}
#member-app .group-dm-panel .dm-message.mine .dm-bubble{background:#fff;border-color:#e8ebf0;color:#263447}
#member-app .group-dm-panel #dm-back{color:#3478f6}
#member-app .group-dm-panel #dm-send{background:#3478f6;border-radius:9px;min-height:40px;font-size:13px}
#member-app .group-dm-panel #dm-send:disabled{background:#e9eef5;color:#97a5b5;opacity:1;filter:none}
#member-app .group-dm-panel #dm-send:not(:disabled):focus-visible{outline:2px solid #83aafd;outline-offset:2px}
@media(max-width:760px){
  #member-app .group-dm-panel.is-settings-overlay{
    inset:0;left:0;top:0;width:100vw;height:100dvh;max-height:none;
    transform:none;border:0;border-radius:0;box-shadow:none;
    padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);
  }
  #member-app .group-dm-panel.is-settings-overlay .dm-head{
    min-height:55px;height:55px;background:#f6f5fb;
  }
  #member-app .group-dm-panel.is-settings-overlay #group-dm-close{left:11px;right:auto}
  #member-app .group-dm-panel.is-settings-overlay .dm-thread-list{padding:0 16px 17px}
  #member-app .group-dm-panel.is-settings-overlay .dm-toolbar{padding:11px 16px}
  #member-app .group-dm-panel.is-settings-overlay #dm-peer-details{padding:16px 16px 6px}
  #member-app .group-dm-panel.is-settings-overlay #dm-hint{padding:5px 16px 14px}
}

/* V1.1.84 policy form: one purpose per section, no dense multi-mode legend. */
#member-app .group-dm-panel.is-settings-overlay{
  height:auto;max-height:min(675px,calc(100dvh - 48px));
}
#member-app .group-dm-panel.is-settings-overlay .dm-thread-list{
  flex:0 1 auto;max-height:min(475px,calc(100dvh - 250px));
}
#member-app .group-dm-panel.is-settings-overlay .dm-section-label{
  padding:3px 0 8px;font-size:12px;font-weight:600;color:#4b596b;
}
#member-app .group-dm-panel.is-settings-overlay .dm-policy-help{
  padding:2px 0 14px;margin:0;color:#8b95a4;font-size:12px;line-height:1.75;
}
#member-app .group-dm-panel.is-settings-overlay .dm-grant-section[hidden]{display:none!important}
#member-app .group-dm-panel.is-settings-overlay .dm-grant-heading{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 0;border-bottom:1px solid #edf0f4;
}
#member-app .group-dm-panel.is-settings-overlay .dm-grant-heading strong{
  color:#4b596b;font-size:12px;font-weight:600;
}
#member-app .group-dm-panel.is-settings-overlay .dm-grant-count{
  color:#94a0ae;font-size:11px;
}
@media(max-width:760px){
  #member-app .group-dm-panel.is-settings-overlay{height:100dvh;max-height:none}
  #member-app .group-dm-panel.is-settings-overlay .dm-thread-list{flex:1 1 auto;max-height:none}
}

/* V1.1.87：私聊首条消息的空态必须可见，输入栏固定在底部不随消息区滚走。 */
#member-app .group-dm-panel:not(.is-settings-overlay) .dm-message-section{min-height:0;flex:1 1 0;}
#member-app .group-dm-panel:not(.is-settings-overlay) .dm-message-section>header,
#member-app .group-dm-panel:not(.is-settings-overlay) .dm-compose,
#member-app .group-dm-panel:not(.is-settings-overlay) #dm-hint{flex-shrink:0;}
#member-app .group-dm-panel:not(.is-settings-overlay) .dm-message-list{min-height:0;flex:1 1 0;overflow-y:auto;}
#member-app .group-dm-panel:not(.is-settings-overlay) .dm-conversation-empty{
  margin:auto 0;padding:16px 20px;text-align:center;color:#909aab;font-size:13px;line-height:1.8;
}
#member-app .group-dm-panel:not(.is-settings-overlay) .dm-load-error{color:#b85458;}
/* 私聊编辑区与群聊相同：输入区域聚焦不绘制单独方框。 */

/* V1.1.88 — keep private conversations inside the same native message list and composer geometry. */
#member-app .group-list .dm-inbox-row{position:relative;min-height:65px;border-bottom:1px solid #edf0f5}
#member-app .dm-inbox-avatar{flex:0 0 39px;height:39px;display:grid;place-items:center;border-radius:10px;background:#e8eef9;color:#4266a5;font-weight:600;font-size:14px}
#member-app .dm-inbox-row .group-info{min-width:0}
#member-app .dm-inbox-row .group-info strong,#member-app .dm-inbox-row .group-info small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
#member-app .dm-inbox-row .group-info small{color:#8894a5;font-size:11px;margin-top:3px}
#member-app .dm-inbox-row .group-trailing{margin-left:auto;align-items:flex-end}
#member-app .dm-inbox-row .unread-badge{background:#3478f6}
#member-app .group-dm-panel:not(.is-settings-overlay) #dm-peer-details{font-size:11px;color:#8a94a6;border-bottom:1px solid #edf0f5;padding:7px 15px}
#member-app .group-dm-panel:not(.is-settings-overlay) .dm-compose{position:relative;flex:0 0 auto;display:flex;flex-direction:column;gap:0;padding:9px 15px calc(9px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e9ebf2}
#member-app .group-dm-panel .dm-compose-tools{display:flex;align-items:center;gap:8px;height:32px}
#member-app .group-dm-panel .dm-compose-tool{width:33px;height:30px;border:0;border-radius:7px;background:transparent;color:#414e62;font-size:23px;display:grid;place-items:center;cursor:pointer}
#member-app .group-dm-panel .dm-compose-tool svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#member-app .group-dm-panel .dm-compose-tool:hover,#member-app .group-dm-panel .dm-compose-tool[aria-expanded="true"]{background:#edf2fa;color:#3478f6}
#member-app .group-dm-panel .dm-compose-form{display:flex;align-items:flex-end;gap:12px;min-width:0}
#member-app .group-dm-panel #dm-text{display:block;flex:1 1 auto;width:100%;min-width:0;height:90px;min-height:70px;max-height:114px;resize:vertical;overflow-y:auto;padding:10px 4px;border:0;border-radius:0;outline:none;background:transparent;color:#293448;font-size:13px;line-height:1.5;font-family:inherit;box-shadow:none}
#member-app .group-dm-panel #dm-text:focus-visible{outline:0;border:0;box-shadow:none;background:transparent}
#member-app .group-dm-panel #dm-send{align-self:flex-end;flex:0 0 auto;min-width:73px;min-height:31px;padding:0 14px;border-radius:6px;font-size:12px}
#member-app .group-dm-panel .dm-compose-panel{position:absolute;bottom:calc(100% + 5px);left:15px;z-index:30;width:min(340px,calc(100% - 30px));max-height:230px;overflow:auto;background:#fff;border:1px solid #e9edf4;border-radius:11px;padding:9px;box-shadow:0 12px 32px rgba(31,47,75,.12)}
#member-app .group-dm-panel .dm-compose-panel[hidden]{display:none!important}
#member-app .group-dm-panel .dm-emoji-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
#member-app .group-dm-panel .dm-emoji-btn{min-width:0;min-height:35px;padding:2px;border:0;border-radius:6px;background:#fff;font-size:21px;cursor:pointer}
#member-app .group-dm-panel .dm-emoji-btn:hover{background:#f0f4fa}
#member-app .group-dm-panel .dm-more-help{margin:4px;color:#738198;font-size:12px;line-height:1.8}
@media(max-width:760px){
  #member-app .group-dm-panel:not(.is-settings-overlay) .dm-compose{padding:7px 10px calc(7px + env(safe-area-inset-bottom))}
  #member-app .group-dm-panel .dm-compose-tools{order:2;height:1px;overflow:visible;position:absolute;right:58px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:2;gap:2px}
  #member-app .group-dm-panel .dm-compose-tool{height:32px;width:30px;font-size:23px}
  #member-app .group-dm-panel .dm-compose-form{align-items:center;min-height:45px;gap:5px}
  #member-app .group-dm-panel #dm-text{min-height:40px;height:40px;max-height:90px;resize:none;border-radius:7px!important;background:#fff!important;padding:11px 74px 9px 10px!important;font-size:16px!important}
  #member-app .group-dm-panel #dm-send{min-width:52px;height:36px;min-height:36px;padding:0 10px;display:none}
  #member-app .group-dm-panel .dm-compose.has-text #dm-send{display:flex;align-items:center;justify-content:center}
  #member-app .group-dm-panel .dm-compose.has-text .dm-compose-tools{right:56px}
  #member-app .group-dm-panel .dm-compose-panel{left:8px;bottom:calc(100% + 5px);width:calc(100% - 16px)}
}

/* V1.1.89 · precise message-list actions, usable on touch and desktop. */
#member-app .dm-inbox-item{display:flex;align-items:stretch;position:relative;width:100%;min-width:0;isolation:isolate;border-bottom:1px solid #edf0f5;background:#fff}
#member-app .dm-inbox-item.is-pinned{background:#f0f3f9}
#member-app .dm-inbox-item .dm-inbox-row{flex:1 1 auto;min-width:0;border-bottom:0;background:transparent}
#member-app .dm-inbox-item .dm-inbox-more{flex:0 0 30px;border:0;background:transparent;color:#9aa4b2;font-size:23px;line-height:1;cursor:pointer}
#member-app .dm-inbox-item .dm-inbox-more:hover{color:#3478f6;background:#f1f4fa}
#member-app .dm-inbox-item .dm-inbox-actions{display:flex;align-items:stretch;flex:0 0 auto;background:#f3f5fa}
#member-app .dm-inbox-item .dm-inbox-actions[hidden]{display:none!important}
#member-app .dm-inbox-actions button{border:0;border-radius:0;padding:0 12px;background:#eaf2fe;color:#336ab5;white-space:nowrap;font-size:12px;font-weight:600;cursor:pointer}
#member-app .dm-inbox-actions .dm-hide-action{background:#fceaea;color:#bd4853}
#member-app .dm-inbox-actions button:disabled{opacity:.55;cursor:wait}
#member-app .dm-inbox-item .dm-pin-label{font-size:10px;color:#6079a0;background:#e5ebf6;padding:2px 5px;border-radius:4px}
#member-app .dm-inbox-item.actions-open .dm-inbox-row{max-width:calc(100% - 180px);overflow:hidden}
#member-app .dm-inbox-avatar{border-radius:50%;background:#e8eef7;font-size:15px;color:#56749c}
#member-app .group-dm-panel .dm-peer-bar{background:#fff;min-height:56px;border-bottom:1px solid #edf0f3}
#member-app .group-dm-panel .dm-peer-identity strong{font-size:15px;font-weight:600;color:#273549}
#member-app .group-dm-panel .dm-peer-identity small{font-size:11px;color:#98a2b0}
#member-app .group-dm-panel .dm-peer-lock{border:1px solid #e7ecf3;color:#8995a5;font-size:10px;padding:4px 8px;border-radius:12px}
#member-app .group-dm-panel .compose-tools{display:flex;align-items:center;gap:10px;height:27px}
#member-app .group-dm-panel .compose-tool{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;padding:0;border:0;border-radius:5px;background:transparent;color:#606c7c;cursor:pointer}
#member-app .group-dm-panel .compose-tool svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#member-app .group-dm-panel .compose-tool:focus-visible,#member-app .dm-inbox-item button:focus-visible{outline:2px solid #86aef4;outline-offset:2px}
#member-app .group-dm-panel .dm-media-label{display:block;font-size:11px;color:#768292;margin-bottom:5px}
#member-app .group-dm-panel .dm-picture{max-width:min(270px,60vw);max-height:260px;object-fit:contain;border-radius:8px}
#member-app .group-dm-panel .dm-audio{max-width:min(260px,68vw);height:39px}
#member-app .group-dm-panel .dm-video{max-width:min(300px,68vw);max-height:270px;border-radius:8px}
#member-app .group-dm-panel .dm-file{font-size:12px;color:#3478f6;word-break:break-word}
#member-app .group-dm-panel .dm-file-disabled{color:var(--text-secondary,#747d8b);cursor:default;display:inline-block}
#member-app .group-dm-panel #dm-retry-upload{padding:5px 10px;border:1px solid #bfccdf;border-radius:6px;background:#fff;color:#41649a;cursor:pointer}
#member-app .msg-avatar.msg-avatar-profile{cursor:pointer;transition:box-shadow .15s,transform .15s}
#member-app .msg-avatar.msg-avatar-profile:hover{box-shadow:0 0 0 2px #b7cdf2;transform:translateY(-1px)}
#member-app .msg-avatar.msg-avatar-profile:focus-visible{outline:2px solid #3478f6;outline-offset:3px}
.dm-member-profile{text-align:center;max-width:390px;width:min(390px,calc(100vw - 32px));padding:26px 25px}
.dm-member-profile .dm-member-profile-avatar{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 10px;border-radius:50%;background:#edf1f8;color:#5e789f;font-size:32px}
.dm-member-profile h2{margin:0 0 19px;font-size:18px;color:#273549}
.dm-member-profile-fields{display:grid;grid-template-columns:86px 1fr;gap:11px 16px;text-align:left;margin:0;padding:14px 0;border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5;font-size:12px;line-height:1.6}
.dm-member-profile-fields dt{color:#8793a3}.dm-member-profile-fields dd{margin:0;color:#344054;overflow-wrap:anywhere}
.dm-member-profile-actions{display:flex;gap:10px;justify-content:center;margin-top:20px}
.dm-member-profile-actions button{flex:1;min-height:42px;border:1px solid #dfe6f0;border-radius:8px;background:#fff;color:#53647b;cursor:pointer}
.dm-member-profile-actions .primary{background:#3478f6;border-color:#3478f6;color:#fff;font-weight:600}
@media(max-width:760px){
  #member-app .dm-inbox-item .dm-inbox-more{width:30px;flex-basis:30px}
  #member-app .group-dm-panel:not(.is-settings-overlay) .dm-compose{min-height:64px!important;height:auto!important;flex-direction:column!important;align-items:stretch!important}
  #member-app .group-dm-panel .dm-compose .compose-tools{display:none!important}
  #member-app .group-dm-panel .dm-compose .compose-form{min-height:50px!important;width:100%!important;align-items:center!important}
  #member-app .group-dm-panel .dm-compose .compose-mobile-tool{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 28px;width:28px}
  #member-app .group-dm-panel .dm-compose .compose-mobile-actions{display:flex!important;align-items:center;gap:11px}
  #member-app .group-dm-panel .dm-compose #dm-text{flex:1 1 auto;width:auto!important;min-width:0;box-shadow:none!important}
  #member-app .group-dm-panel .dm-compose .compose-panel[data-kind="emoji"],
  #member-app .group-dm-panel .dm-compose .compose-panel[data-kind="voice"]{position:static!important;order:2;max-width:none;width:100%;box-shadow:none}
}

/* V1.1.89 final: compact professional conversation header, without repeating the peer name. */
#member-app .group-dm-panel.is-conversation .dm-head{
  min-height:58px;padding:0 54px;justify-content:center;position:relative;
  border-bottom:1px solid #edf0f5;
}
#member-app .group-dm-panel.is-conversation .dm-head h2{
  text-align:center;max-width:100%;font-size:16px;line-height:1.3;font-weight:600;
  letter-spacing:.1px;color:#27364a;
}
#member-app .group-dm-panel.is-conversation #group-dm-close{
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  width:34px;height:34px;display:grid;place-items:center;padding:0;
  font-size:24px;border-radius:8px;
}
#member-app .group-dm-panel.is-conversation #group-dm-close:hover{background:#f3f5f9}
#member-app .group-dm-panel.is-conversation #dm-peer-details{display:none}
#member-app .group-dm-panel.is-conversation .dm-peer-bar{
  min-height:39px;padding:0 16px;gap:10px;justify-content:flex-start;
  background:#fff;border-bottom:1px solid #eef1f6;
}
#member-app .group-dm-panel.is-conversation .dm-peer-identity strong{display:none}
#member-app .group-dm-panel.is-conversation .dm-peer-identity small{
  font-size:12px;line-height:1.3;color:#8a95a6;
}
#member-app .group-dm-panel.is-conversation .dm-peer-lock{
  margin-left:auto;font-size:10px;padding:3px 8px;
}
#member-app .dm-inbox-item .dm-inbox-actions:not([hidden]){
  position:absolute;right:0;top:0;bottom:0;z-index:5;display:flex;
  box-shadow:-5px 0 12px rgba(39,55,76,.08);background:#fff;
}
#member-app .dm-inbox-item.actions-open .dm-inbox-row{max-width:none}
#member-app .dm-inbox-item.actions-open .dm-inbox-more{visibility:hidden}
#member-app .dm-inbox-item .dm-inbox-actions button{min-height:60px;min-width:59px}
@media(max-width:760px){
  #member-app .group-dm-panel.is-conversation .dm-head{min-height:50px;padding:0 50px}
  #member-app .group-dm-panel.is-conversation .dm-peer-bar{min-height:38px;padding:0 12px}
}


/* V1.1.90 — private composer shares the group's actual DOM. Match the group's
   desktop toolbar/textarea rhythm; remove old private-field overrides which
   previously left a visible gap between the toolbar and editor. */
@media (min-width:761px){
  #member-app .group-dm-panel:not(.is-settings-overlay) .dm-compose.compose{
    display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;
    flex:0 0 auto;min-height:184px;height:184px;gap:0;
    padding:15px 16px 12px;
  }
  #member-app .group-dm-panel .dm-compose > .compose-tools{
    display:flex;flex:0 0 25px;height:25px;min-height:25px;align-items:center;margin:0;padding:0;
  }
  #member-app .group-dm-panel .dm-compose > .dm-compose-form.compose-form{
    display:flex;flex:1 1 auto;align-items:stretch;min-height:0;height:auto;
    margin:0;padding:5px 0 0;gap:12px;
  }
  #member-app .group-dm-panel .dm-compose #dm-text{
    height:100%;min-height:0;max-height:none;resize:none;
    padding:7px 2px 8px;border:0;border-radius:0;
    outline:none;box-shadow:none;background:transparent;
  }
  #member-app .group-dm-panel .dm-compose #dm-send{
    align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;
    min-width:78px;height:28px;min-height:28px;margin:0 0 1px;
    padding:0 12px;border:0;border-radius:5px;font-size:11px;
  }
}
@media (max-width:760px){
  #member-app .group-dm-panel:not(.is-settings-overlay) .dm-compose.compose{
    flex:0 0 auto;justify-content:center;min-height:64px!important;
    height:auto!important;padding:7px 10px calc(7px + env(safe-area-inset-bottom));
    gap:0;
  }
  #member-app .group-dm-panel .dm-compose > .dm-compose-form.compose-form{
    min-height:50px!important;height:auto!important;flex:0 0 auto;
    padding:0!important;margin:0;align-items:center!important;gap:8px!important;
  }
  #member-app .group-dm-panel .dm-compose #dm-text{
    min-height:40px;height:40px;max-height:90px;resize:none;
  }
}


/* V1.1.91 — one-hop private navigation with a neutral, non-leaking loading shell. */
body.dm-direct-active #chat-pane > :not(#group-dm-panel){visibility:hidden!important;}
#member-app .group-dm-panel.is-conversation{overscroll-behavior:contain;}
#member-app .group-dm-panel.is-conversation .dm-message-list{
  overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;overflow-anchor:none;
}
#member-app .group-dm-panel.is-conversation .dm-loading,
#member-app .group-dm-panel.is-conversation .dm-load-error{padding:28px 18px;text-align:center;}
@media(max-width:760px){
  body.dm-direct-active.in-chat #member-app .chat-pane{min-height:0!important;overflow:hidden!important;}
  body.dm-direct-active.in-chat #chat-pane .group-dm-panel.is-conversation{
    position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
    min-height:0!important;max-height:100%!important;padding:0!important;display:flex;flex-direction:column;
  }
  #member-app .group-dm-panel.is-conversation .dm-message-section{min-height:0;flex:1 1 0;overflow:hidden;}
  #member-app .group-dm-panel.is-conversation .dm-message-list{flex:1 1 0;min-height:0;overflow-y:auto;}
  #member-app .group-dm-panel.is-conversation .dm-compose{flex:0 0 auto!important;}
}

/* The main group is intentionally unselected during direct private navigation.
   Its empty-workspace CSS must NEVER hide the private composer. */
body.dm-direct-active #member-app #chat-pane.is-empty #group-dm-panel.is-conversation .dm-compose{
  display:flex!important;
}


/* V1.1.92: a direct private route has exactly one surface. Do not paint the legacy
   thread/contact/settings intermediary, even during slow responses or resize. */
#member-app #chat-pane .group-dm-panel.dm-direct-shell .dm-toolbar,
#member-app #chat-pane .group-dm-panel.dm-direct-shell .dm-thread-list,
#member-app #chat-pane .group-dm-panel.dm-direct-shell #dm-peer-details{display:none!important;}
#member-app #chat-pane .group-dm-panel.dm-direct-shell .dm-message-section{display:flex!important;min-height:0;flex:1 1 0;}
#member-app #chat-pane .group-dm-panel.dm-direct-shell .dm-head{flex-shrink:0;}

/* V1.1.93: DM and group list entries share the same persistent selection state.
   The wrapper has a transparent child row, so .group-row.chosen alone is not enough. */
#member-app .dm-inbox-item.chosen,
#member-app .dm-inbox-item.chosen.is-pinned{background:#edf3ff}
#member-app .dm-inbox-item.chosen .dm-inbox-row,
#member-app .dm-inbox-item.chosen .dm-inbox-more{background:#edf3ff}
#member-app .dm-inbox-item.chosen .dm-inbox-row::before{
  position:absolute;left:0;top:9px;bottom:9px;width:3px;
  border-radius:0 3px 3px 0;background:#4a83ed;content:"";
}
#member-app .dm-inbox-item.chosen .dm-inbox-more:hover{background:#e3ecfd}
@media(max-width:760px){
  #member-app .dm-inbox-item.chosen,
  #member-app .dm-inbox-item.chosen.is-pinned,
  #member-app .dm-inbox-item.chosen .dm-inbox-row,
  #member-app .dm-inbox-item.chosen .dm-inbox-more{background:#f5f7fe}
  #member-app .dm-inbox-item.chosen .dm-inbox-row::before{display:none}
}

/* V1.1.93 — private compose tray uses precisely the same tiled layout as the group tray. */
#member-app .group-dm-panel .dm-compose .compose-panel[data-kind="more"]{width:min(430px,calc(100% - 24px));max-height:230px;padding:16px 14px 12px}
#member-app .group-dm-panel .dm-compose .compose-panel[data-kind="voice"] .compose-voice-preview{min-height:185px;gap:13px}
#member-app .group-dm-panel .dm-record-button{flex:0 0 94px}
@media(max-width:760px){
  #member-app .group-dm-panel .dm-compose[data-panel-kind="more"]{flex-direction:column!important;align-items:stretch!important;gap:0!important}
  #member-app .group-dm-panel .dm-compose .compose-panel[data-kind="more"]{position:static!important;order:2;width:100%;max-width:none;max-height:min(240px,35dvh);margin:7px 0 0;padding:15px 9px calc(10px + env(safe-area-inset-bottom));border:0;border-top:1px solid #e7eaf1;border-radius:0;box-shadow:none}
}

/* V1.1.95 — private history uses the group history affordance, without extra cards/technical labels. */
#member-app .dm-message-list .dm-history-load{flex:0 0 auto;align-self:center;max-width:calc(100% - 20px);margin:0 auto 6px;color:#61748d;border-color:#e1e7f0;}
#member-app .dm-message-list .dm-history-load:focus-visible{outline:2px solid #347ff2;outline-offset:2px;}

/* V1.1.96: paging control uses the same restrained conversation-list visual grammar. */
#group-list > .dm-inbox-load {
  display:block;width:calc(100% - 28px);margin:8px 14px 12px;
  padding:10px 8px;border:1px solid var(--line, #dce4e9);border-radius:10px;
  background:transparent;color:var(--text-muted, #617181);font-size:13px;
  cursor:pointer;text-align:center;transition:background-color .16s ease;
}
#group-list > .dm-inbox-load:hover { background:rgba(29,65,90,.055); }
#group-list > .dm-inbox-load:disabled { cursor:default;opacity:.65; }

/* V1.1.132 / 消息输入：与实际群聊编辑区共用无内框结构。
   只影响私聊会话，不改变授权配置和其他表单的焦点可见性。 */
@media (min-width:761px){
  #member-app #chat-pane .group-dm-panel.is-conversation .dm-compose.compose{
    min-height:184px;height:184px;padding:15px 16px 12px;background:#fff;
    border-top:1px solid #e8e7ed;
  }
  #member-app #chat-pane .group-dm-panel.is-conversation .dm-compose > .dm-compose-form.compose-form{
    min-height:0;align-items:stretch;padding:5px 0 0;margin:0;gap:12px;
  }
}
#member-app #chat-pane .group-dm-panel.is-conversation .dm-compose #dm-text,
#member-app #chat-pane .group-dm-panel.is-conversation .dm-compose #dm-text:focus,
#member-app #chat-pane .group-dm-panel.is-conversation .dm-compose #dm-text:focus-visible{
  border:0!important;outline:0!important;outline-offset:0!important;
  box-shadow:none!important;background:transparent!important;
  -webkit-appearance:none;appearance:none;
}
#member-app #chat-pane .group-dm-panel.is-conversation .dm-compose > .dm-compose-form,
#member-app #chat-pane .group-dm-panel.is-conversation .dm-compose > .dm-compose-form:focus-within{
  outline:0;border:0;box-shadow:none;
}
@media (max-width:760px){
  /* 手机上的输入栏保留与群聊一致的独立浅色圆角输入槽。 */
  body.in-chat #member-app #chat-pane .group-dm-panel.is-conversation .dm-compose #dm-text{
    border:0!important;border-radius:8px!important;background:#fff!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 1px 3px rgba(45,62,99,.035)!important;
  }
  body.in-chat #member-app #chat-pane .group-dm-panel.is-conversation .dm-compose #dm-text:focus{
    border:0!important;outline:0!important;
  }
}
/* 焦点不以大面积方框表示，键盘可见焦点保留在工具按钮上。 */
#member-app #chat-pane .group-dm-panel.is-conversation .dm-compose :is(.compose-tool,.compose-mobile-tool,#dm-send):focus-visible{
  outline:2px solid #83aaf2;outline-offset:2px;
}

/* V1.1.192: surface failed private inbox reads without declaring conversations empty. */
#member-app .group-list > .dm-inbox-error{display:block;width:100%;padding:12px 14px;border:0;border-bottom:1px solid #e6eaf2;background:#fff7f3;color:#994b38;text-align:center;font-size:12px;cursor:pointer}
#member-app .group-list > .dm-inbox-error:focus-visible{outline:2px solid #7da6f8;outline-offset:-2px}
