.orbit-ui .dm-layout { display:grid; grid-template-columns:minmax(260px, 32%) minmax(0, 1fr); gap:var(--sp-4); }
.orbit-ui.dm-page { max-width:none; }
.orbit-ui .dm-sidebar, .orbit-ui .dm-thread { min-width:0; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-sm); padding:var(--sp-4); }
.orbit-ui .dm-sidebar { display:grid; align-content:start; gap:var(--sp-3); }
/* 胶囊分段切换（与 platform.css 的 .my-perf-mode 同一套视觉）。 */
.orbit-ui .dm-tabs { display:inline-flex; gap:var(--sp-1); padding:var(--sp-1); border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--panel); justify-self:start; }
.orbit-ui .dm-tab { padding:var(--sp-1) var(--sp-3); border:0; border-radius:var(--radius-lg); background:transparent; color:var(--muted); font-size:var(--fs-sm); font-weight:600; line-height:1.4; cursor:pointer; transition:background .15s ease,color .15s ease; }
.orbit-ui .dm-tab.is-on { background:var(--accent); color:var(--on-accent); }
.orbit-ui .dm-pane { display:grid; align-content:start; gap:var(--sp-3); min-width:0; }
.orbit-ui .dm-pane[hidden] { display:none; }
.orbit-ui .dm-search, .orbit-ui .dm-search-results, .orbit-ui .dm-conversations, .orbit-ui .dm-compose, .orbit-ui .dm-pending { display:grid; gap:var(--sp-3); }
.orbit-ui .dm-conversation, .orbit-ui .dm-person { display:grid; text-align:start; white-space:normal; overflow-wrap:anywhere; width:100%; gap:var(--sp-1); }
.orbit-ui .dm-search-results { max-height:42vh; overflow:auto; align-content:start; }
.orbit-ui .dm-unit { margin:var(--sp-2) 0 0; font-size:var(--fs-md); }
/* 组织树：样式与控制台左树同口径（无边框行 + hover 底色 + 右侧三角 + 子级缩进竖线）。 */
.orbit-ui .dm-node-group { display:flex; flex-direction:column; gap:var(--sp-1); }
.orbit-ui .dm-node { display:flex; align-items:center; gap:var(--sp-2); width:100%; margin:0; padding:var(--sp-2) var(--sp-3); border:0; border-radius:var(--radius-xs); background:transparent; color:var(--text); font-size:var(--fs-base); font-weight:400; line-height:1.3; text-align:left; cursor:pointer; transition:background .15s ease,color .15s ease; }
.orbit-ui .dm-node:hover { background:var(--hover-bg); }
.orbit-ui .dm-node-name { flex:1 1 auto; min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.orbit-ui .dm-node-chevron { flex:none; display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; color:var(--muted); }
.orbit-ui .dm-node-chevron::before { content:''; display:block; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(-45deg); transition:transform .2s ease; }
.orbit-ui .dm-node-open .dm-node-chevron::before { transform:rotate(45deg); }
.orbit-ui .dm-node-body { position:relative; display:flex; flex-direction:column; gap:var(--sp-1); margin-left:var(--sp-4); padding-left:var(--sp-2); }
.orbit-ui .dm-node-body::before { content:''; position:absolute; left:0; top:4px; bottom:6px; width:1px; background:var(--line); pointer-events:none; }
.orbit-ui .dm-node-body[hidden] { display:none; }
.orbit-ui .dm-people { display:flex; flex-direction:column; gap:var(--sp-1); }
.orbit-ui .dm-person { padding:var(--sp-2) var(--sp-3); border:0; border-radius:var(--radius-xs); background:transparent; color:var(--text); font-size:var(--fs-base); line-height:1.3; text-align:left; cursor:pointer; transition:background .15s ease; }
.orbit-ui .dm-person:hover { background:var(--hover-bg); }
.orbit-ui .dm-selected { border-color:var(--accent); background:var(--hover-bg); }
.orbit-ui .dm-thread-heading, .orbit-ui .dm-file, .orbit-ui .dm-pending-file { display:flex; align-items:center; flex-wrap:wrap; gap:var(--sp-2); overflow-wrap:anywhere; }
.orbit-ui .dm-icon-btn { flex:none; display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; min-height:0; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--panel); color:var(--text); line-height:0; box-sizing:border-box; cursor:pointer; }
.orbit-ui .dm-icon-btn svg, .orbit-ui .dm-send svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.orbit-ui .dm-icon-btn:hover { background:var(--hover-bg); }
.orbit-ui .dm-icon-btn:disabled { opacity:.5; cursor:default; }
.orbit-ui .dm-thread-spacer { flex:1 1 auto; }
.orbit-ui .dm-thread { display:flex; flex-direction:column; gap:var(--sp-3); }
.orbit-ui .dm-feed { height:48vh; min-height:240px; overflow:auto; padding:var(--sp-3); display:flex; flex-direction:column; gap:var(--sp-3); border:0; }
.orbit-ui .dm-message { flex-shrink:0; display:flex; flex-direction:column; align-items:flex-start; gap:var(--sp-1); max-width:78%; overflow-wrap:anywhere; }
.orbit-ui .dm-own { align-self:flex-end; align-items:flex-end; }
.orbit-ui .dm-bubble { margin:0; padding:var(--sp-2) var(--sp-3); border:0; border-radius:var(--radius-md); background:var(--hover-bg); white-space:pre-wrap; }
.orbit-ui .dm-own .dm-bubble { background:var(--accent); color:var(--on-accent); }
.orbit-ui .dm-message-meta { margin:0; display:flex; align-items:center; gap:var(--sp-1); font-size:var(--fs-xs); color:var(--muted); }
.orbit-ui .dm-copy { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; padding:0; border:0; border-radius:var(--radius-xs); background:transparent; color:var(--muted); cursor:pointer; transition:background .15s ease,color .15s ease; }
.orbit-ui .dm-copy svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.orbit-ui .dm-copy:hover { background:var(--hover-bg); color:var(--text); }
.orbit-ui .dm-copy.is-done { color:var(--ok); }
.orbit-ui .dm-copy-shim { position:fixed; top:-1000px; left:-1000px; opacity:0; }
/* 平台只有 --shadow-soft（0 4px 14px），这里要一半扩散范围；颜色取主题变量，故用 drop-shadow。 */
.orbit-ui .dm-compose { border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--panel); padding:var(--sp-3); gap:var(--sp-2); filter:drop-shadow(0 2px 3px rgb(var(--overlay-rgb) / 0.06)); }
/* 外框始终保持原始描边色，不随焦点变色；输入行自身不画边框。 */
.orbit-ui .dm-compose textarea { width:100%; min-height:44px; padding:0; border:0; background:transparent; color:inherit; font:inherit; resize:none; overflow-y:hidden; }
.orbit-ui .dm-compose textarea.dm-input-scroll { overflow-y:auto; }
.orbit-ui .dm-compose textarea:focus,
.orbit-ui .dm-compose textarea:focus-visible { border:0; outline:1px solid var(--panel); outline-offset:2px; box-shadow:none; }
.orbit-ui .dm-compose-bar { display:flex; align-items:center; justify-content:space-between; gap:var(--sp-2); }
.orbit-ui .dm-attach { flex:none; width:32px; height:32px; padding:0; border:0; border-radius:var(--radius-lg); background:transparent; color:var(--text); font-size:var(--fs-xl); line-height:1; cursor:pointer; }
.orbit-ui .dm-attach:hover { background:var(--hover-bg); }
.orbit-ui .dm-send { flex:none; display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; padding:0; border:0; border-radius:50%; background:var(--accent); color:var(--on-accent); cursor:pointer; }
.orbit-ui .dm-send:hover { background:var(--accent-strong); }
.orbit-ui .dm-send:disabled { opacity:.5; cursor:default; }
.orbit-ui .dm-preview { display:block; max-width:100%; max-height:70vh; object-fit:contain; }
@media(min-width:769px) {
 /* 桌面左侧列表常驻，点另一个人即可切换，返回按钮是多余的；手机上侧栏被隐藏，必须保留。 */
 .orbit-ui .dm-back-btn { display:none; }
}
@media(max-width:768px) {
 .orbit-ui .dm-layout { grid-template-columns:minmax(0,1fr); }
 .orbit-ui.dm-page { padding:var(--sp-4); }
 .orbit-ui#directMessages .dm-page { padding-block-start:calc(var(--sp-4) + var(--sp-6)); }
 .orbit-ui .dm-feed { height:45vh; }
 .orbit-ui.dm-has-selection .dm-sidebar { display:none; }
 .orbit-ui.dm-page:not(.dm-has-selection) .dm-thread { display:none; }
}
/* 待发送图片：缩略图 + 右上角移除；点缩略图打开预览。 */
.orbit-ui .dm-pending { display:flex; flex-wrap:wrap; gap:var(--sp-2); }
.orbit-ui .dm-thumb-wrap { position:relative; display:inline-flex; }
.orbit-ui .dm-thumb { width:88px; height:88px; padding:0; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--panel); cursor:zoom-in; overflow:hidden; }
.orbit-ui .dm-thumb-img { display:block; width:100%; height:100%; object-fit:cover; }
.orbit-ui .dm-thumb-remove { position:absolute; top:-8px; right:-8px; display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--panel); color:var(--text); font-size:var(--fs-sm); line-height:1; cursor:pointer; }
.orbit-ui .dm-thumb-remove:hover { background:var(--hover-bg); }
.orbit-ui .dm-pending-remove { padding:var(--sp-1) var(--sp-2); border:1px solid var(--line); border-radius:var(--radius-xs); background:var(--panel); color:var(--text); font-size:var(--fs-sm); cursor:pointer; }
.orbit-ui .dm-pending-remove:hover { background:var(--hover-bg); }
/* 错误条：一行内说清 + 就地重试，不再占一大块版面。 */
.orbit-ui .dm-error-bar { display:flex; align-items:center; gap:var(--sp-2); padding:var(--sp-2) var(--sp-3); border-radius:var(--radius-xs); background:var(--accent-soft); color:var(--accent-strong); font-size:var(--fs-sm); }
.orbit-ui .dm-error-text { flex:1 1 auto; min-width:0; }
.orbit-ui .dm-error-retry { flex:none; padding:var(--sp-1) var(--sp-3); border:1px solid currentColor; border-radius:var(--radius-xs); background:transparent; color:inherit; font-size:var(--fs-sm); cursor:pointer; }
