/* ============================================================
   Space 在线文档 · 首页改版样式（模仿京东 JoySpace，20260922x）
   参照用户手绘线框：左栏 Space 品牌+搜索+三导航；主页=标题+新建banner
   +五文字页签+所有类型筛选+常驻列表（表头：发送人/接收时间…）
   配色：深蓝 + 中性灰，克制、零杂乱
   20260922w：行尾按钮收成「⋯」+ 右键菜单 + 选中/已剪切态 + 行内重命名输入框
   20260922x：分享弹窗逐人权限（只读/可编辑）+ 文档只读态样式
   ============================================================ */

/* 接管模式：隐藏原工具栏 / 页签 / 列表（「传统视图」可还原） */
#docsPage.dh-mode > .toolbar,
#docsPage.dh-mode > .doc-tabs,
#docsPage.dh-mode > .doc-list { display: none !important; }

#docsPage .dh-wrap { display: flex; gap: 22px; align-items: stretch; min-height: calc(100vh - 140px); }

/* ---------- 左侧栏 ---------- */
#docsPage .dh-side {
  flex: none; width: 210px; display: flex; flex-direction: column;
  background: #f7f9fc; border: 1px solid #e3e9f2; border-radius: 12px; padding: 14px 10px 10px;
}
#docsPage .dh-brand { font-size: 16px; font-weight: 700; color: #0f2540; padding: 2px 10px 12px; letter-spacing: .3px; }
#docsPage .dh-side-search { position: relative; margin-bottom: 12px; }
#docsPage .dh-side-search input {
  width: 100%; box-sizing: border-box; border: 1px solid #dbe3ee; border-radius: 8px;
  padding: 8px 26px 8px 10px; font-size: 13px; outline: none; background: #fff; color: #0f2540;
}
#docsPage .dh-side-search input:focus { border-color: #2f5fa8; }
#docsPage .dh-side-search span {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  font-size: 12px; opacity: .45; pointer-events: none;
}
#docsPage .dh-nav { display: flex; flex-direction: column; gap: 2px; }
#docsPage .dh-nav-item {
  display: flex; align-items: center; gap: 9px; padding: 10px 10px; border-radius: 8px;
  font-size: 14px; color: #33415c; cursor: pointer; user-select: none; transition: background .15s;
}
#docsPage .dh-nav-item:hover { background: rgba(47, 95, 168, .08); }
#docsPage .dh-nav-item.active { background: #2f5fa8; color: #fff; font-weight: 600; }
#docsPage .dh-nav-ic { width: 18px; text-align: center; font-style: normal; }
#docsPage .dh-nav-n {
  margin-left: auto; font-size: 11px; min-width: 18px; text-align: center;
  background: rgba(47, 95, 168, .12); color: #2f5fa8; border-radius: 9px; padding: 1px 5px;
}
#docsPage .dh-nav-item.active .dh-nav-n { background: rgba(255,255,255,.25); color: #fff; }
#docsPage .dh-side-tip { margin-top: auto; font-size: 11px; color: #97a3bd; padding: 8px 10px 2px; }

/* ---------- 主区 ---------- */
#docsPage .dh-main { flex: 1; min-width: 0; }
#docsPage .dh-home-head h2 { margin: 2px 0 14px; font-size: 21px; color: #0f2540; }

/* 2026-09-23：文档主页视图下隐藏顶栏页题「首页」（与页内「主页」标题重复，用户要求去掉） */
.main-content:has(#docsPage.active) #pageTitle { display: none; }

/* 新建入口（2026-09-23 按参考图改版）：蓝色文件图标+加号角标，右侧两行文字，弱边框卡片 */
#docsPage .dh-banner {
  position: relative; display: inline-flex; align-items: center; gap: 13px;
  border: 1px solid #eef2f8; border-radius: 12px; background: #fff;
  padding: 9px 18px 9px 10px; cursor: pointer; margin-bottom: 16px; transition: box-shadow .15s, border-color .15s;
}
#docsPage .dh-banner:hover { border-color: #d5deec; box-shadow: 0 4px 14px rgba(15, 37, 64, .10); }
#docsPage .dh-banner-icon { display: inline-flex; line-height: 0; }
#docsPage .dh-banner-col { display: flex; flex-direction: column; gap: 3px; }
#docsPage .dh-banner-t { font-size: 17px; font-weight: 700; color: #1f2937; line-height: 1.2; }
#docsPage .dh-banner-s { font-size: 12.5px; color: #97a3bd; }
#docsPage .dh-newmenu {
  position: absolute; left: 0; top: calc(100% + 6px); z-index: 60; min-width: 210px;
  background: #fff; border: 1px solid #dbe3ee; border-radius: 10px; padding: 6px;
  box-shadow: 0 8px 24px rgba(15, 37, 64, .16);
}
#docsPage .dh-nm-item {
  display: flex; align-items: center; gap: 9px; width: 100%; text-align: left;
  border: none; background: none; padding: 9px 10px; font-size: 13.5px; color: #33415c;
  border-radius: 7px; cursor: pointer;
}
#docsPage .dh-nm-item:hover { background: rgba(47, 95, 168, .08); color: #2f5fa8; }

/* 五个文字页签（线框：横排链接，下划线态） */
#docsPage .dh-tabs { display: flex; gap: 26px; flex-wrap: wrap; margin: 0 0 12px; }
#docsPage .dh-tab {
  font-size: 14px; color: #33415c; cursor: pointer; user-select: none;
  text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 5px;
  padding: 3px 1px; transition: color .15s;
}
#docsPage .dh-tab:hover { color: #2f5fa8; text-decoration-color: rgba(47, 95, 168, .4); }
#docsPage .dh-tab.active { color: #2f5fa8; font-weight: 700; text-decoration-color: #2f5fa8; }
#docsPage .dh-tab i {
  font-style: normal; font-size: 11px; color: #2f5fa8; background: rgba(47, 95, 168, .1);
  border-radius: 8px; padding: 0 6px; margin-left: 5px; vertical-align: 1px;
}
#docsPage .dh-tab.active i { background: rgba(47, 95, 168, .16); }

/* 筛选行：所有类型 + 计数 */
#docsPage .dh-filterrow { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
#docsPage .dh-typesel {
  border: 1px solid #dbe3ee; border-radius: 8px; padding: 6px 10px; font-size: 13px;
  color: #33415c; background: #fff; outline: none; cursor: pointer;
}
#docsPage .dh-typesel:focus { border-color: #2f5fa8; }
#docsPage .dh-filter-n { font-size: 12px; color: #97a3bd; }

/* ---------- 列表（表头行 + 数据行） ---------- */
#docsPage .dh-table { border: 1px solid #e3e9f2; border-radius: 12px; background: #fff; overflow: hidden; }
#docsPage .dh-row {
  display: flex; align-items: center; gap: 12px; padding: 11px 16px; cursor: pointer;
  border-bottom: 1px solid #eef2f8; transition: background .12s;
}
#docsPage .dh-row:last-child { border-bottom: none; }
#docsPage .dh-row:hover { background: #f7f9fd; }
#docsPage .dh-row.head { cursor: default; background: #fafbfd; }
#docsPage .dh-row.head:hover { background: #fafbfd; }
#docsPage .dh-row.dead { cursor: default; }
#docsPage .dh-star {
  border: none; background: none; font-size: 16px; color: #c3ccdd; cursor: pointer; padding: 2px 2px; flex: none;
}
#docsPage .dh-row.head .dh-star { visibility: hidden; }
#docsPage .dh-star.on { color: #e8a13a; }
#docsPage .dh-row-main { flex: 1; min-width: 0; }
#docsPage .dh-row-title {
  font-size: 14px; font-weight: 600; color: #0f2540; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  display: flex; align-items: center; gap: 8px;
}
#docsPage .dh-row.head .dh-row-title { font-weight: 600; color: #7c88a3; font-size: 12.5px; }
#docsPage .dh-row-sub {
  font-size: 12px; color: #97a3bd; margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 400;
}
#docsPage .dh-col {
  flex: none; width: 88px; text-align: right; font-size: 12.5px; color: #7c88a3; white-space: nowrap;
}
#docsPage .dh-col-h { font-size: 12.5px; color: #7c88a3; }
#docsPage .dh-row:not(.head) .dh-col { color: #55627e; }
#docsPage .dh-type-badge {
  flex: none; font-size: 10px; font-weight: 700; letter-spacing: .5px; color: #2f5fa8;
  border: 1px solid rgba(47, 95, 168, .4); border-radius: 4px; padding: 1px 5px;
}
#docsPage .dh-type-badge.xls { color: #1e7a4f; border-color: rgba(30, 122, 79, .4); }

/* 类型图标（2026-09-23 按参考图，替代文字徽章）：WORD=蓝色 W 文档，EXCEL=绿色网格表格 */
#docsPage .dh-ficon, .dh-nm-item .dh-ficon {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 6px;
  font-size: 12px; font-weight: 800; font-style: normal; color: #fff; line-height: 1;
  font-family: 'Segoe UI', 'Microsoft YaHei', sans-serif;
}
#docsPage .dh-ficon.word { background: linear-gradient(180deg, #4a83f2, #3567d6); box-shadow: inset 0 -1.5px 0 rgba(0,0,0,.12); }
#docsPage .dh-ficon.excel { background: linear-gradient(180deg, #27ae6d, #1d8f58); box-shadow: inset 0 -1.5px 0 rgba(0,0,0,.12); }
#docsPage .dh-ficon.excel::before {
  content: ''; width: 12px; height: 10px; border: 1.6px solid #fff; border-radius: 1.5px;
  background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
  background-size: 1.6px 100%, 100% 1.6px;
  background-position: center, center; background-repeat: no-repeat;
}
#docsPage .dh-row-acts { display: flex; gap: 6px; flex: none; }
#docsPage .dh-row.head .dh-row-acts { visibility: hidden; }
#docsPage .dh-act {
  border: 1px solid #dbe3ee; background: #fff; color: #33415c; font-size: 12px;
  border-radius: 7px; padding: 5px 10px; cursor: pointer;
}
#docsPage .dh-act:hover { border-color: #2f5fa8; color: #2f5fa8; }
#docsPage .dh-act.pri { background: #2f5fa8; border-color: #2f5fa8; color: #fff; }
#docsPage .dh-act.pri:hover { background: #264c8d; }
/* 别人的评论：不给「解决 / 重开」入口（2026-09-24j），置灰但保留占位让行跟别的一致 */
#docsPage .dh-act:disabled { color: #b6c0d0; border-color: #e6ebf3; background: #f7f9fc; cursor: not-allowed; }
#docsPage .dh-act:disabled:hover { border-color: #e6ebf3; color: #b6c0d0; }

/* 「⋯」更多操作已下线（2026-10-08，与右键菜单重复）。
   表头/无操作列仍需占位，否则整排被数据行推歪 —— 但**不能给固定宽度**：
   .dh-row-acts 是 flex:none 且宽度由内容决定，数据行操作列为空时宽 0，
   表头若写死 33px 反而把表头撑得比数据行宽，整排错位（_e2e_docs_home 6c/9 断言会红）。
   正确做法：占位元素宽度 0（inline-block 空 span），表头与数据行自然同宽。 */
#docsPage .dh-act-ph {
  display: inline-block; width: 0; height: 1px; visibility: hidden;
}

/* 当前操作行（供 Ctrl+C / Ctrl+X / Delete / F2 / Enter 使用） */
#docsPage .dh-row.sel { background: #eef3fc; box-shadow: inset 3px 0 0 #2f5fa8; }
#docsPage .dh-row.sel:hover { background: #e8f0fa; }

/* 已剪切待粘贴：整行淡出 + 标题划掉，暗示「它马上要挪位置」 */
#docsPage .dh-row.cut { opacity: .48; }
#docsPage .dh-row.cut .dh-row-title { text-decoration: line-through; text-decoration-color: #97a3bd; }

/* 行内重命名输入框（回车提交 / Esc 取消） */
#docsPage .dh-rename {
  flex: 1; min-width: 120px; font: inherit; font-size: 14px; font-weight: 600; color: #0f2540;
  background: #fff; border: 1px solid #2f5fa8; border-radius: 6px; padding: 2px 8px; outline: none;
}

/* 右键菜单分隔线（.ctx-menu / .ctx-item 样式来自 app-new.css） */
.ctx-menu .ctx-sep { height: 1px; background: rgba(128, 148, 180, .22); margin: 4px 2px; }

/* 2026-09-23 修：app-new.css 的 .ctx-menu 背景写的是 var(--panel)，但 --panel 从未定义
   → 菜单背景全透明，列表行从菜单里透出来，看起来一片混乱。这里补实底白卡。 */
.ctx-menu {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 12px 32px rgba(15, 37, 64, 0.18);
}
.ctx-item { color: #0f2540; }
.ctx-item.disabled { color: #97a3bd; }

#docsPage .dh-empty { padding: 48px 0; text-align: center; color: #97a3bd; font-size: 13.5px; }
#docsPage .dh-note {
  font-size: 12px; color: #7c88a3; background: #f7f9fc; border: 1px dashed #dbe3ee;
  border-radius: 8px; padding: 8px 12px; margin-top: 12px; line-height: 1.6;
}
#docsPage .dh-table + .dh-note { margin-top: 12px; }
#docsPage .dh-note + .dh-table, #docsPage .dh-home-head + .dh-note + .dh-table { margin-top: 12px; }

/* ---------- 全局侧栏合并项（标签和收藏 / 回收站，20260922o） ---------- */
#navMenu li.dh2 { cursor: pointer; }
#navMenu li.dh2 .dh2-badge {
  margin-left: auto; font-size: 11px; min-width: 18px; text-align: center;
  background: rgba(47, 95, 168, .12); color: #2f5fa8; border-radius: 9px; padding: 1px 6px;
}
#navMenu li.dh2.active .dh2-badge { background: rgba(255, 255, 255, .25); color: #fff; }

/* ---------- 分享弹窗：逐人权限（20260922x） ---------- */
#docShareModal .dh-share-row {
  display: flex; align-items: center; gap: 10px;
  padding: 7px 10px; border: 1px solid #e3e9f2; border-radius: 8px; margin-bottom: 6px;
  background: #fff; transition: border-color .15s, background .15s;
}
#docShareModal .dh-share-row.is-shared { border-color: #bcd0ee; background: #f4f8ff; }
#docShareModal .dh-share-chkwrap { display: flex; align-items: center; margin: 0; }
#docShareModal .dh-share-chkwrap input { width: 15px; height: 15px; cursor: pointer; }
#docShareModal .dh-share-name { flex: 1; font-size: 13.5px; color: #0f2540; font-weight: 600; }
#docShareModal .dh-share-name i { font-style: normal; font-weight: 400; color: #97a3bd; font-size: 12px; margin-left: 6px; }
#docShareModal .dh-share-perm {
  font: inherit; font-size: 13px; color: #0f2540; background: #fff;
  border: 1px solid #cfd9e8; border-radius: 6px; padding: 3px 6px; outline: none; cursor: pointer;
}
#docShareModal .dh-share-perm:disabled { color: #b3bccd; background: #f6f8fb; cursor: not-allowed; }
#docShareModal .dh-share-perm:focus { border-color: #2f5fa8; }

/* ---------- 只读态（分享权限=只读时） ---------- */
#docEditorPage .dh-ro-tip {
  margin: 0 0 10px; padding: 8px 12px; font-size: 12.5px; color: #8a5a00;
  background: #fff8e6; border: 1px solid #f2ddb0; border-radius: 8px; line-height: 1.5;
}
#docEditorPage.dh-ro #docTitle { background: #f6f8fb; color: #5b6b85; cursor: not-allowed; }
#docEditorPage.dh-ro .dh-ro-lock { opacity: .45; pointer-events: none; filter: grayscale(.35); }

/* ---------- 评论互动 / 个人标签（2026-09-23） ---------- */

/* 页签上的「有新评论」小红点 */
#docsPage .dh-tabnew {
  display: inline-block; width: 7px; height: 7px; border-radius: 50%;
  background: #e5484d; margin-left: 5px; vertical-align: 3px;
}
/* 文档标题前的「有新评论」红点 */
#docsPage .dh-newdot {
  flex: none; width: 7px; height: 7px; border-radius: 50%; background: #e5484d;
  box-shadow: 0 0 0 2px rgba(229, 72, 77, .16);
}
/* 「N 未解决」用红色点出来，一眼看到还有几条没收尾 */
#docsPage .dh-cmt-open { color: #c0392b; font-weight: 600; }

/* 个人标签小胶囊（只在标签非空的行多渲染一行） */
#docsPage .dh-row-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; }
#docsPage .dh-chip {
  font-size: 11px; line-height: 1.5; color: #2f5fa8; background: rgba(47, 95, 168, .1);
  border-radius: 999px; padding: 0 8px; white-space: nowrap;
}

/* 「标签和收藏」页的分组小标题 */
#docsPage .dh-sechead {
  display: flex; align-items: center; gap: 8px; margin: 18px 0 8px;
}
#docsPage .dh-sechead:first-of-type { margin-top: 4px; }
#docsPage .dh-sect { font-size: 14px; font-weight: 700; color: #0f2540; }
#docsPage .dh-secn { font-size: 12px; color: #97a3bd; }
#docsPage .dh-sechead .dh-act { margin-left: auto; }

/* 行右键 →「标签…」弹窗 */
.dh-tagpop {
  position: fixed; z-index: 10003; width: 252px; background: #fff;
  border: 1px solid #e2e9f3; border-radius: 10px; box-shadow: 0 12px 32px rgba(23, 43, 77, .18);
  padding: 10px; font-family: -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif;
  font-size: 12.5px; color: #24354f;
}
.dh-tagpop .dh-tp-title {
  font-weight: 700; font-size: 13px; color: #0f2540; margin-bottom: 8px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dh-tagpop .dh-tp-list { max-height: 168px; overflow: auto; }
.dh-tagpop .dh-tp-item {
  display: flex; align-items: center; gap: 8px; padding: 5px 6px; border-radius: 6px; cursor: pointer;
}
.dh-tagpop .dh-tp-item:hover { background: #f4f8ff; }
.dh-tagpop .dh-tp-item input { width: 14px; height: 14px; cursor: pointer; flex: none; margin: 0; }
.dh-tagpop .dh-tp-none { color: #97a3bd; padding: 4px 6px; font-size: 12px; }
.dh-tagpop .dh-tp-new { display: flex; gap: 6px; margin-top: 8px; }
.dh-tagpop .dh-tp-input {
  flex: 1; min-width: 0; border: 1px solid #dfe7f2; border-radius: 7px; padding: 5px 8px;
  font-size: 12.5px; font-family: inherit; color: #24354f; outline: none;
}
.dh-tagpop .dh-tp-input:focus { border-color: #2f5fa8; }
.dh-tagpop .dh-tp-add {
  flex: none; height: 27px; padding: 0 12px; border-radius: 7px; border: 1px solid #2f5fa8;
  background: #2f5fa8; color: #fff; cursor: pointer; font-size: 12.5px;
}
.dh-tagpop .dh-tp-add:hover { background: #264c8d; }
.dh-tagpop .dh-tp-ft { display: flex; justify-content: flex-end; margin-top: 8px; }
.dh-tagpop .dh-tp-close {
  height: 26px; padding: 0 12px; border-radius: 6px; border: 1px solid #dfe7f2;
  background: #fff; color: #3d557a; cursor: pointer; font-size: 12.5px;
}

/* 窄屏：页签可换行、侧栏折叠为横向 */
@media (max-width: 900px) {
  #docsPage .dh-wrap { flex-direction: column; }
  #docsPage .dh-side { width: 100%; flex-direction: row; align-items: center; }
  #docsPage .dh-brand { padding: 0 10px 0 4px; }
  #docsPage .dh-nav { flex-direction: row; margin-left: 8px; }
  #docsPage .dh-side-tip { display: none; }
  #docsPage .dh-tabs { gap: 16px; }
  #docsPage .dh-col { width: 70px; }
}


/* ---------- 评论中心（2026-09-23） ---------- */
#docsPage .dh-cmttools { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 10px; }
#docsPage .dh-cmtscopes { display: inline-flex; gap: 6px; flex: none; }
#docsPage .dh-cmtscope {
  border: 1px solid #dbe3ee; background: #fff; color: #33415c; border-radius: 14px;
  padding: 4px 11px; font-size: 12.5px; cursor: pointer; font-family: inherit; line-height: 1.5;
}
#docsPage .dh-cmtscope:hover { border-color: #b9cdf0; color: #2f5fa8; }
#docsPage .dh-cmtscope.active { background: rgba(47, 95, 168, .09); border-color: #9dbcf0; color: #2f5fa8; font-weight: 700; }
#docsPage .dh-cmtscope i { font-style: normal; font-size: 11px; opacity: .72; margin-left: 5px; }
#docsPage .dh-cmtq {
  flex: 1 1 150px; min-width: 130px; max-width: 290px; border: 1px solid #dbe3ee; border-radius: 8px;
  padding: 6px 10px; font-size: 13px; color: #33415c; outline: none; font-family: inherit; background: #fff;
}
#docsPage .dh-cmtq:focus { border-color: #2f5fa8; }
#docsPage .dh-cmtacts { display: inline-flex; align-items: center; gap: 8px; flex: none; margin-left: auto; }
#docsPage .dh-cmtsel { font-size: 12px; color: #97a3bd; }
#docsPage .dh-cmtchk { flex: none; width: 15px; height: 15px; margin: 0; cursor: pointer; accent-color: #2f5fa8; }
#docsPage .dh-cmtquote { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
#docsPage .dh-cmttag {
  flex: none; font-size: 10.5px; font-weight: 700; border-radius: 4px; padding: 1px 6px; border: 1px solid transparent;
}
#docsPage .dh-cmttag.open { color: #b3552a; background: rgba(214, 120, 52, .1); border-color: rgba(214, 120, 52, .3); }
#docsPage .dh-cmttag.done { color: #6b7688; background: rgba(120, 132, 153, .12); border-color: rgba(120, 132, 153, .3); }
#docsPage .dh-cmttag.mine { color: #2f5fa8; background: rgba(47, 95, 168, .1); border-color: rgba(47, 95, 168, .32); }
#docsPage .dh-cmtwhere { flex: none; font-size: 11px; color: #a3adc2; }
#docsPage .dh-col.dh-cmtcol-doc { width: 150px; text-align: left; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
#docsPage .dh-col.dh-cmtcol-doc:hover { color: #2f5fa8; text-decoration: underline; }
#docsPage .dh-col.dh-cmtcol-by { width: 138px; }
#docsPage .dh-col.dh-cmtcol-st { width: 104px; }
/* 评论中心：操作列必须与「操作」表头等宽。
   数据行右侧是两个按钮，宽度随文案（定位/解决 ↔ 重开）浮动（实测 98px），
   而表头按 .dh-cmtcol-st 固定 104px → 中间那列的可伸缩宽度被挤差 6px、整表错位
   （2026-09-23 被 _e2e_docs_home 的 ≤1px 对齐断言抓到）。这里把两侧都钉死 104px。
   另：共用规则 #docsPage .dh-row.head .dh-row-acts{visibility:hidden} 会把表头
   「操作」二字一起藏掉，评论中心的表头要显式放出来。 */
#docsPage .dh-cmttable .dh-row-acts { width: 104px; flex: none; justify-content: flex-end; }
#docsPage .dh-cmttable .dh-row.head .dh-row-acts { visibility: visible; }
#docsPage .dh-cmtrow.done .dh-cmtquote { color: #8d97a9; }
#docsPage .dh-cmtrow.done .dh-row-sub { color: #a8b0c0; }
#docsPage .dh-cmtrow .dh-row-main { min-width: 0; }
/* 评论中心的回复展开块（2026-09-24 优化2）：💬 N 可点开，就地看回复内容 */
#docsPage button.dh-cmttag.reply {
  cursor: pointer; font: inherit; font-size: 10.5px; font-weight: 700; line-height: 1.5;
  color: #2f5fa8; background: rgba(47, 95, 168, .08); border: 1px solid rgba(47, 95, 168, .28);
  border-radius: 4px; padding: 1px 6px;
}
#docsPage button.dh-cmttag.reply:hover { background: rgba(47, 95, 168, .16); }
#docsPage .dh-cmt-replies {
  margin: 6px 0 2px; padding: 6px 8px; border-left: 2px solid #d9e4f3; background: #f7fafd; border-radius: 0 6px 6px 0;
}
#docsPage .dh-cmt-reply { margin-bottom: 6px; }
#docsPage .dh-cmt-reply:last-child { margin-bottom: 0; }
#docsPage .dh-cmt-reply-by { font-size: 11px; font-weight: 700; color: #3d557a; margin-right: 6px; }
#docsPage .dh-cmt-reply-at { font-size: 10.5px; color: #a3adc2; }
#docsPage .dh-cmt-reply-tx { font-size: 12px; color: #4a5a75; white-space: pre-wrap; word-break: break-word; margin-top: 1px; }
/* 「定位」跳过去后，原文里那条批注短暂高亮 */
.ec-comment.dh-cmthl { outline: 2px solid #f0a742 !important; outline-offset: 1px; border-radius: 2px; }

/* ============================================================
   移动端导航加固（2026-09-23 审计项：窄屏侧栏宽 0）
   style.css 在 <=900px 把侧栏压成 62px 图标栏（隐藏文字/子项）；
   现行 mobile.css 已用抽屉规则覆盖，但为防止任何残留或回归导致
   「点开汉堡后侧栏仍是 0 宽/看不见」，这里用 !important 在
   body.sidebar-open 态强制真实宽度 + 显示遮罩。
   仅作用于 <=900px，桌面端完全不受影响；!important 保证优先级
   高于加载在后的 mobile.css（兜底而非覆盖其设计）。
   ============================================================ */
@media (max-width: 900px) {
  body.sidebar-open .sidebar {
    width: 86vw !important;
    max-width: 320px !important;
    min-width: 260px !important;
    transform: translateX(0) !important;
  }
  body.sidebar-open .sidebar-overlay { display: block !important; }
}

/* ===== 待办：@ 提及聚合（MT_TODO_20261008）===== */
#docsPage .dh-cmt-toolbar {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 4px 2px 12px;
}
#docsPage .dh-mtbtn {
  border: 1px solid #dbe3ee; background: #fff; color: #33415c;
  font-size: 12.5px; border-radius: 999px; padding: 5px 13px; cursor: pointer;
}
#docsPage .dh-mtbtn:hover { border-color: #2f5fa8; color: #2f5fa8; }
#docsPage .dh-mtbtn.on { background: #2f5fa8; border-color: #2f5fa8; color: #fff; font-weight: 600; }
#docsPage .dh-cmtq {
  flex: 1 1 220px; min-width: 0; height: 32px; padding: 0 11px;
  border: 1px solid #dbe3ee; border-radius: 8px; font-size: 13px; color: #24354f; outline: none;
}
#docsPage .dh-cmtq:focus { border-color: #2f5fa8; }

/* 列宽：表头与数据行共用同一个类，保证像素级对齐 */
#docsPage .dh-col.dh-mtcol-doc { width: 168px; text-align: left; overflow: hidden; text-overflow: ellipsis; }
#docsPage .dh-col.dh-mtcol-by { width: 146px; text-align: left; overflow: hidden; text-overflow: ellipsis; }
#docsPage .dh-col.dh-mtcol-st { width: 176px; }

#docsPage .dh-mt-sec {
  padding: 12px 10px 6px; font-size: 12px; color: #2f5fa8; font-weight: 700; letter-spacing: .4px;
  display: flex; align-items: center; gap: 7px;
}
#docsPage .dh-mt-sec::before {
  content: ''; width: 3px; height: 12px; border-radius: 2px;
  background: linear-gradient(180deg, #4a7df0, #2f5fa8); flex: none;
}
#docsPage .dh-mt-sec i {
  font-style: normal; font-size: 11px; color: #6b7688; font-weight: 400;
  background: #f1f4f9; border-radius: 999px; padding: 1px 8px;
}

/* 行内元素 */
#docsPage .mt-dir {
  flex: none; font-size: 10.5px; font-weight: 700; border-radius: 4px;
  padding: 2px 7px; margin-right: 7px; border: 1px solid transparent;
}
#docsPage .mt-dir.mt-in { color: #b3552a; background: rgba(214, 120, 52, .1); border-color: rgba(214, 120, 52, .32); }
#docsPage .mt-dir.mt-out { color: #2f5fa8; background: rgba(47, 95, 168, .1); border-color: rgba(47, 95, 168, .3); }
#docsPage .mt-who { color: #24354f; font-weight: 600; }
#docsPage .mt-arrow { color: #a3adc2; margin: 0 5px; }
#docsPage .mt-target { color: #b3552a; font-weight: 600; }
#docsPage .mt-new {
  flex: none; margin-left: 8px; font-size: 10px; font-weight: 700;
  color: #fff; background: #e5484d; border-radius: 999px; padding: 1px 7px;
}
#docsPage .mt-ctx {
  color: #6b7688; font-size: 12px; line-height: 1.5; margin-top: 4px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
/* 未读行：左侧一条竖线 + 底色，和评论中心的未解决口径一致 */
#docsPage .dh-row.mt-unread { background: #fbfcff; box-shadow: inset 3px 0 0 #e5484d; }
#docsPage .dh-row.mt-unread:hover { background: #f5f8ff; }

/* 定位命中的正文段落高亮 */
#docsPage .dh-mthl, .doc-editor .dh-mthl {
  background: #fff8e1 !important; outline: 2px solid #f5c04a; outline-offset: 2px;
  border-radius: 4px; transition: background .3s;
}

/* 空状态 */
#docsPage .dh-mt-empty { padding: 46px 20px; text-align: center; color: #6b7688; font-size: 13px; line-height: 1.8; }
#docsPage .dh-mt-empty-icon {
  width: 46px; height: 46px; margin: 0 auto 12px; border-radius: 50%;
  background: #eef3fb; color: #9db0c8; font-size: 22px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
#docsPage .dh-todo-loading { padding: 34px 10px; text-align: center; color: #8a97ad; font-size: 13px; }

/* ============================================================
   20261012：分享弹窗搜索框 + 评论互动页签可点定位
   ============================================================ */
/* 分享弹窗：接收人搜索（只隐藏不删行，保存时仍是全量） */
#docShareModal .dh-share-search { padding: 0 0 8px; }
#docShareModal #dhShareQ {
  width: 100%; box-sizing: border-box; height: 32px; padding: 0 11px;
  border: 1px solid #dbe3ee; border-radius: 8px; font-size: 13px; color: #24354f;
  outline: none; font-family: inherit; background: #fff;
}
#docShareModal #dhShareQ:focus { border-color: #2f5fa8; box-shadow: 0 0 0 2px rgba(47,95,168,.10); }
#docShareModal .dh-share-empty { padding: 10px 2px; color: #8a97ad; font-size: 12.5px; }
#docShareModal .dh-share-empty b { color: #4a5a75; }
/* 评论互动页签：评论数 / 最近评论两格可点 → 定位到原文 */
#docsPage .dh-cmtgo { cursor: pointer; border-bottom: 1px dashed transparent; }
#docsPage .dh-cmtgo:hover { color: #2f5fa8; border-bottom-color: #2f5fa8; }

/* ===== 20261019d ⑤ 分享未生效的行高亮 ===== */
#docShareModal .dh-share-row.is-failed { border-color: #f0a7a7; background: #fff5f5; }
#docShareModal .dh-share-row.is-failed .dh-share-name { color: #b42318; }
#docShareModal .dh-share-row.is-failed::after { content: '未生效'; margin-left: auto; font-size: 11px; color: #b42318;
  background: #fee4e2; border-radius: 4px; padding: 1px 5px; }
