.memory-nav-wrapper-pc {
  padding: 0;
}
.memory-nav-section-label-pc {
  padding: 0 var(--space-3);
  margin-bottom: var(--space-2);
  font-size: var(--fs-small);
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--text-tertiary);
}
.memory-nav-list-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding: 0 var(--space-2);
}
.memory-nav-item-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  height: 36px;
  padding: 0 var(--space-3);
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--text-secondary);
  font-size: var(--fs-body);
  font-weight: 500;
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
  width: 100%;
  text-align: left;
}
.memory-nav-item-pc:hover {
  background: var(--fill-secondary);
}
/* 激活态：白色 pill + 轻微阴影，呼应右侧 content 区颜色 */
.memory-nav-item-active-pc {
  background: var(--bg-default);
  color: var(--text-primary);
  box-shadow: var(--shadow-1);
}
.memory-nav-item-active-pc:hover {
  background: var(--bg-default);
  color: var(--text-primary);
}
.memory-nav-item-active-pc .memory-nav-item-icon-pc {
  color: var(--text-primary);
}
.memory-nav-item-icon-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: var(--text-primary);
  /* 统一内部 svg 尺寸 */
}
.memory-nav-item-icon-pc > svg {
  width: 20px;
  height: 20px;
}
.memory-nav-item-label-pc {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.service-busy-page-pc {
  flex: 1;
  width: 100%;
  height: 100%;
  min-height: 240px;
  padding: var(--space-3) var(--space-6);
  background-color: var(--bg-default);
}
.service-busy-page-media-pc {
  margin-bottom: var(--space-2);
}
.service-busy-page-image-pc {
  display: block;
  width: calc(var(--space-15) * 2);
  height: calc(var(--space-15) * 2);
  object-fit: contain;
  -webkit-user-select: none;
          user-select: none;
}
.service-busy-page-title-pc {
  margin-bottom: 0;
  color: var(--text-secondary);
  font-size: var(--fs-16);
  font-weight: 400;
  line-height: var(--lh-body);
}
.service-busy-page-action-pc {
  margin-top: var(--space-4);
}
.service-busy-page-loading-pc {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 240px;
  background-color: var(--bg-default);
  color: var(--text-tertiary);
  font-size: var(--fs-body);
}

/* App 路由初始化时尚无通知面板容器，需要独立铺满加载区域。 */
.notification-route-skeleton-mobile-app {
  flex: 1;
  min-height: 0;
  height: 100%;
  overflow: auto;
  /* 对齐 App 通知面板底色（页面级背景，随明暗主题自动切换）。 */
  background: var(--bg-page);
}
.notification-skeleton-mobile {
  flex-shrink: 0;
  padding: var(--wb-spacing-200) 0;
}
.notification-skeleton-row-mobile {
  display: flex;
  box-sizing: border-box;
  /* DESIGN_FALLBACK: Ardot 1396:1900 的通知行间距为 74px。 */
  height: 74px;
  padding: var(--wb-spacing-300) var(--wb-spacing-500);
  gap: var(--wb-spacing-300);
}
.notification-skeleton-avatar-mobile {
  flex-shrink: 0;
  margin-top: var(--wb-spacing-200);
}
.notification-skeleton-content-mobile {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  gap: var(--wb-spacing-200);
}
.notification-skeleton-line-mobile {
  max-width: 100%;
  border-radius: var(--wb-radius-200);
}
.notification-skeleton-avatar-mobile,
.notification-skeleton-line-mobile {
  background: var(--wb-color-bg-primary-default);
  /* DESIGN_FALLBACK: 90% 文本色按比例生成设计稿的 8% / 4% 渐变；
   * 跟随深色主题，旧浏览器不支持 color-mix 时保留基础骨架底色。 */
  background: linear-gradient(90deg, color-mix(in srgb, var(--wb-color-text-primary) 8.8889%, transparent) 0%, color-mix(in srgb, var(--wb-color-text-primary) 4.4444%, transparent) 79.9%, color-mix(in srgb, var(--wb-color-text-primary) 8.8889%, transparent) 100%);
}
@media (prefers-reduced-motion: reduce) {
  .notification-skeleton-avatar-mobile,
  .notification-skeleton-line-mobile {
    animation: none;
  }
}

.workspace-content-skeleton-pc {
  display: flex;
  flex: 1;
  width: 100%;
  height: 100%;
  min-height: 0;
  box-sizing: border-box;
  padding: 64px 56px var(--space-12);
  justify-content: center;
  background: var(--bg-default);
  pointer-events: auto;
}
.workspace-content-skeleton-pc__inner {
  width: min(760px, 100%);
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.workspace-content-skeleton-pc__header,
.workspace-content-skeleton-pc__section {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.workspace-content-skeleton-pc__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4) var(--space-5);
  padding-top: var(--space-1);
}
@media (max-width: 768px) {
  .workspace-content-skeleton-pc {
    padding: var(--space-8) var(--space-6);
  }
  .workspace-content-skeleton-pc__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ========== Wrapper / Section Label ========== */
.workspace-tree-wrapper-pc {
  padding: 0;
}
/* 顶部搜索按钮 */
.workspace-tree-search-bar-pc {
  padding: 0 var(--space-2);
  margin-bottom: var(--space-2);
}
.workspace-tree-search-btn-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  height: 28px;
  padding: 0 var(--space-2);
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.workspace-tree-search-btn-pc > svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.workspace-tree-search-btn-pc:hover {
  background: var(--fill-secondary);
  color: var(--text-secondary);
}
/* Section header：hover 本行时显示 chevron + actions，文字颜色加深 */
.workspace-tree-section-header-pc {
  /* mindx 单独：滚动时吸顶（父级 .knowledge-sidebar-scroll-pc 的 overflow-y:auto 提供
   * sticky 容器；多 section 时按文档流先后接力吸顶）。
   * 仅在当前生产侧栏启用。 */
  position: sticky;
  top: 0;
  /* DESIGN_FALLBACK: 项目暂无 z-index 层级 token，sticky 仅需高于普通 node（z-index 默认 auto）
   * 又低于浮层（弹窗/menu/tooltip 通常 ≥ 1000），裸数字 2 是当前最小冲突值。
   * 如未来引入 --z-index-sticky 之类 token，应替换为 token。 */
  z-index: 2;
  background-color: var(--sidebar);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--space-4) 0 var(--space-5);
  margin-bottom: var(--space-1);
  height: 24px;
  border-radius: var(--radius-md-val);
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  transition: color 150ms ease;
}
.workspace-tree-section-header-pc:hover .workspace-tree-section-label-pc,
.workspace-tree-section-header-pc.workspace-tree-section-header-active-pc .workspace-tree-section-label-pc {
  color: var(--text-secondary);
}
.workspace-tree-section-header-pc:hover .workspace-tree-section-chevron-pc,
.workspace-tree-section-header-pc.workspace-tree-section-header-active-pc .workspace-tree-section-chevron-pc {
  color: var(--text-secondary);
}
.workspace-tree-section-left-pc {
  display: flex;
  align-items: center;
  gap: var(--space-0-5);
  min-width: 0;
}
/* 折叠箭头：标题右侧，默认显示 */
.workspace-tree-section-chevron-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  opacity: 1;
  color: var(--text-quaternary);
  transition: opacity 150ms ease,
    color 150ms ease;
}
.workspace-tree-section-chevron-pc > svg {
  width: 12px;
  height: 12px;
  transition: transform 150ms ease;
}
.workspace-tree-section-chevron-expanded-pc > svg {
  transform: rotate(90deg);
}
.workspace-tree-section-label-pc {
  font-size: var(--fs-small);
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--text-tertiary);
  transition: color 150ms ease;
}
.workspace-tree-section-add-btn-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  border-radius: var(--radius-sm-val);
  background: transparent;
  color: var(--icon-secondary);
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.workspace-tree-section-add-btn-pc > svg {
  width: 16px;
  height: 16px;
}
.workspace-tree-section-add-btn-pc:hover {
  background: var(--wb-button-bg-grey-hover);
  color: var(--icon-primary);
}
/* actions 默认隐藏，hover 时显示 */
.workspace-tree-section-actions-pc {
  display: flex;
  align-items: center;
  gap: var(--space-0-5);
}
/* 空态（顶层无任何 page） */
.workspace-tree-empty-root-pc {
  padding: var(--space-3);
  margin: 0 var(--space-2);
  border-radius: var(--radius-md-val);
  background: transparent;
  font-size: var(--fs-small);
  color: var(--text-tertiary);
  line-height: 1.6;
  -webkit-user-select: none;
          user-select: none;
}
/*
 * 说明性空态（如 WorkBuddy：内容由 Agent 上传、前端无新建入口）。
 * 与默认空态相比：弱化文字 + 居中 + 柔和底色，呈现为"占位提示区"而非
 * 紧贴标题的一行小字，给标题与空态之间留出呼吸感。
 * 仅在传入 personalEmptyText 时附加，不影响「我的」「空间」区默认空态。
 */
.workspace-tree-empty-root-hint-pc {
  margin: var(--space-1) var(--space-2) var(--space-2);
  /*
   * 左缩进对齐「我的」区一级文档的图标列：
   * 节点 padding-left 8 + 箭头占位 22 + node gap 1 = 31，
   * 减去本块 margin-left（--space-2 = 8）得 padding-left 23，
   * 使空态文字与下方文档图标在同一垂直线，而非居中漂浮。
   */
  padding: var(--space-3) var(--space-3) var(--space-3) 23px;
  color: var(--text-quaternary);
  background: var(--bg-weak);
}
.workspace-tree-empty-guide-btn-pc {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  width: calc(100% - var(--space-6));
  padding-left: var(--space-2);
  padding-right: var(--space-2);
  margin-left: var(--space-4);
  margin-bottom: var(--space-2);
  height: 28px;
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--wb-color-text-tertiary);
  font-size: var(--fs-small);
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.workspace-tree-empty-guide-btn-pc > svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}
.workspace-tree-empty-guide-btn-pc:hover {
  background: var(--fill-tertiary);
  color: var(--text-secondary);
}
/* "个人"区段空态 drop zone：文档拖入时高亮提示 */
.workspace-tree-drop-zone-active-pc {
  background-color: var(--brand-subtle);
  border-radius: var(--radius-md-val);
  outline: 1px dashed var(--brand-tint);
  outline-offset: -2px;
}
.workspace-tree-list-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
  padding: 0 var(--space-2);
}
/* ========== 节点容器 ========== */
/* 节点外层容器：相对定位，便于内部绝对元素布局 */
.workspace-tree-node-wrapper-pc {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.workspace-tree-node-pc {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1px;
  height: 32px;
  padding-right: var(--space-2);
  margin: 0;
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--text-secondary);
  font-size: var(--fs-body);
  font-weight: 500;
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
  width: 100%;
  text-align: left;
  white-space: nowrap;
  box-sizing: border-box;
  -webkit-user-select: none;
          user-select: none;
}
.workspace-tree-node-pc:hover {
  background: var(--wb-color-bg-primary-hover);
  /* hover 时显示右侧操作按钮 */
}
.workspace-tree-node-pc:hover .workspace-tree-actions-pc {
  display: flex;
}
/* 激活态：白色 pill + 轻微阴影，呼应右侧 content 区颜色 */
.workspace-tree-node-active-pc {
  background: var(--bg-default);
  color: var(--text-primary);
  box-shadow: var(--shadow-1);
}
.workspace-tree-node-active-pc:hover {
  background: var(--bg-default);
  color: var(--text-primary);
}
/* ========== 拖拽反馈 ========== */
.workspace-tree-node-dragging-pc {
  opacity: 0.35;
  background: transparent !important;
  box-shadow: none !important;
}
/* 空间节点拖拽时：降子元素透明度 */
.workspace-tree-space-node-pc.workspace-tree-node-dragging-pc {
  opacity: 1;
}
.workspace-tree-space-node-pc.workspace-tree-node-dragging-pc .workspace-tree-space-title-pc,
.workspace-tree-space-node-pc.workspace-tree-node-dragging-pc .workspace-tree-space-actions-pc,
.workspace-tree-space-node-pc.workspace-tree-node-dragging-pc .workspace-tree-space-name-input-pc {
  opacity: 0.4;
}
/* before: 节点上边缘出现细线 */
.workspace-tree-node-drop-before-pc::before {
  content: "";
  position: absolute;
  left: var(--space-2);
  right: var(--space-2);
  top: -1px;
  height: 2px;
  border-radius: var(--radius-sm-val);
  background: var(--brand);
  pointer-events: none;
}
/* after: 节点下边缘出现细线 */
.workspace-tree-node-drop-after-pc::after {
  content: "";
  position: absolute;
  left: var(--space-2);
  right: var(--space-2);
  bottom: -1px;
  height: 2px;
  border-radius: var(--radius-sm-val);
  background: var(--brand);
  pointer-events: none;
}
/* inside: 整行底色高亮（表示成为该节点的子项） */
.workspace-tree-node-drop-inside-pc {
  background: var(--brand-subtle) !important;
  outline: 1px solid var(--brand-tint);
  outline-offset: -1px;
}
/* ========== 折叠/展开箭头（小三角，有子节点时常驻显示） ========== */
.workspace-tree-chevron-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 18px;
  height: 22px;
  border-radius: var(--radius-sm-val);
  color: var(--icon-tertiary);
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.workspace-tree-chevron-pc > svg {
  width: 10px;
  height: 10px;
  transition: transform 150ms ease;
}
.workspace-tree-chevron-pc:hover {
  background: var(--fill-secondary);
  color: var(--icon-secondary);
}
.workspace-tree-chevron-expanded-pc > svg {
  transform: rotate(90deg);
}
/* 占位符：保持无子节点时的对齐 */
.workspace-tree-chevron-placeholder-pc {
  flex-shrink: 0;
  width: 18px;
  height: 22px;
}
/* Chevron spinner：展开后子节点加载中时替代箭头图标，尺寸与原 chevron 对齐 */
.workspace-tree-chevron-spinner-pc {
  display: inline-block;
  width: 13px;
  height: 13px;
  border: 2px solid var(--border-strong);
  border-top-color: var(--brand);
  border-radius: 50%;
  animation: workspace-tree-chevron-spin 650ms linear infinite;
}
@keyframes workspace-tree-chevron-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .workspace-tree-chevron-spinner-pc {
    animation: none;
  }
}
/* ========== 品类图标 ========== */
/* loading 节点的 spinner 图标：与 chevron spinner 同款设计，尺寸对齐品类图标 */
.workspace-tree-node-loading-spinner-pc {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid var(--border-strong);
  border-top-color: var(--brand);
  border-radius: 50%;
  animation: workspace-tree-chevron-spin 650ms linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .workspace-tree-node-loading-spinner-pc {
    animation: none;
  }
}
.workspace-tree-icon-slot-pc {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-right: var(--space-1);
}
.workspace-tree-icon-default-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  color: var(--icon-secondary);
}
.workspace-tree-icon-default-pc > svg {
  width: 20px;
  height: 20px;
}
.workspace-tree-emoji-pc {
  font-size: var(--fs-body);
  line-height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
}
/* link 节点 favicon：填满图标槽（20px），圆角与类型图标观感一致 */
.workspace-tree-link-favicon-pc {
  width: 16px;
  height: 16px;
  border-radius: var(--radius-sm);
  object-fit: contain;
}
.workspace-tree-title-pc {
  flex: 1;
  min-width: 0;
  margin-left: var(--space-1);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  /* dir=rtl 让 ellipsis 出现在文本头部（左侧），保留尾部（包含后缀） */
  text-align: left;
  unicode-bidi: plaintext;
}
/* 内联重命名输入框 */
.workspace-tree-node-rename-input-pc {
  flex: 1;
  min-width: 0;
  height: 24px;
  padding: 0 var(--space-2);
  border: 1px solid var(--border-focus);
  border-radius: var(--radius-sm-val);
  background: var(--bg-default);
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 500;
  outline: none;
  box-sizing: border-box;
}
/* ========== Hover Actions ========== */
.workspace-tree-actions-pc {
  display: none;
  align-items: center;
  gap: var(--space-0-5);
  flex-shrink: 0;
}
/* 菜单打开时保持 actions 可见 */
.workspace-tree-actions-open-pc {
  display: flex !important;
}
.workspace-tree-action-btn-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: none;
  border-radius: var(--wb-radius-150);
  background: transparent;
  color: var(--icon-secondary);
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
  /* 节点行 + / ⋯ 统一按 16×16 渲染，与 section header 的 + 视觉一致。
     即使 Icon 默认走 catalog md（20px），这里也强制收敛为 16×16。 */
}
.workspace-tree-action-btn-pc > svg {
  width: 16px;
  height: 16px;
}
.workspace-tree-action-btn-pc:hover {
  background: var(--wb-color-bg-primary-hover);
  color: var(--icon-primary);
}
.workspace-tree-children-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
/* ========== 空间节点 ========== */
.workspace-tree-space-wrapper-pc {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.workspace-tree-space-node-pc {
  position: relative;
  display: flex;
  align-items: center;
  gap: 4px;
  height: 32px;
  padding-left: var(--space-2);
  padding-right: var(--space-2);
  margin: 0;
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--text-secondary);
  font-size: var(--fs-body);
  cursor: default;
  transition: background-color 150ms ease, color 150ms ease;
  width: 100%;
  box-sizing: border-box;
  -webkit-user-select: none;
          user-select: none;
}
.workspace-tree-space-node-pc:hover {
  background: var(--fill-secondary);
}
.workspace-tree-space-node-pc:hover .workspace-tree-space-actions-pc {
  display: flex;
}
/* 菜单打开时保持空间节点高亮 */
.workspace-tree-space-node-menu-open-pc {
  background: var(--fill-secondary);
}
/* 空间图标外层容器 */
.workspace-tree-space-icon-content-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
/* 空间图标 */
.workspace-tree-space-icon-slot-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}
/* 空间折叠 toggle 按钮：标题右侧 */
.workspace-tree-space-toggle-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border-radius: var(--radius-sm-val);
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.workspace-tree-space-toggle-pc > svg {
  width: 12px;
  height: 12px;
  transition: transform 150ms ease;
}
.workspace-tree-space-toggle-pc:hover {
  background: var(--fill-secondary);
}
.workspace-tree-space-toggle-expanded-pc > svg {
  transform: rotate(90deg);
}
/* 拖拽进行中：禁止所有节点 hover 背景和 actions（保留 drop 指示器） */
.workspace-tree-dragging-active-pc .workspace-tree-space-node-pc:not(.workspace-tree-node-drop-before-pc):not(
    .workspace-tree-node-drop-after-pc
  ):not(.workspace-tree-node-drop-inside-pc),
.workspace-tree-dragging-active-pc .workspace-tree-node-pc:not(.workspace-tree-node-drop-before-pc):not(
    .workspace-tree-node-drop-after-pc
  ):not(.workspace-tree-node-drop-inside-pc):not(
    .workspace-tree-node-dragging-pc
  ):not(.workspace-tree-node-active-pc) {
  background: transparent !important;
  box-shadow: none !important;
}
.workspace-tree-dragging-active-pc .workspace-tree-space-actions-pc,
.workspace-tree-dragging-active-pc .workspace-tree-actions-pc {
  display: none !important;
}
/* 空间图标（纯色色块） */
.workspace-tree-space-title-pc {
  flex: 0 1 auto;
  min-width: 0;
  margin-left: var(--space-1);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
}
.workspace-tree-space-actions-pc {
  display: none;
  align-items: center;
  gap: var(--space-0-5);
  flex-shrink: 0;
  margin-left: auto;
}
.workspace-tree-space-children-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  /*
   * 空态按钮在空间下时，左缩进对齐子节点（chevron 22px + space-icon-slot + gap），
   * 同时把按钮自身的宽度收窄到与子文档行齐平，体现"在这个空间内"的层级感。
   * Issue #93: 让用户清楚"创建第一篇文档"是作用在父空间下，而非全局。
   */
}
.workspace-tree-space-children-pc .workspace-tree-empty-guide-btn-pc {
  width: auto;
  margin: 0 var(--space-2) 0 var(--space-3);
  padding-left: var(--space-2);
}
.workspace-tree-space-empty-pc {
  height: 28px;
  display: flex;
  align-items: center;
  padding-left: 36px;
  font-size: var(--fs-small);
  color: var(--text-tertiary);
}
.workspace-tree-space-empty-hint-pc {
  display: block;
  padding: var(--space-2) var(--space-4);
  font-size: var(--fs-small);
  color: var(--text-quaternary);
}
.workspace-tree-space-add-btn-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  height: 32px;
  padding: 0 var(--space-3) 0 36px;
  border: none;
  background: transparent;
  color: var(--text-tertiary);
  font-size: var(--fs-body);
  cursor: pointer;
  transition: color 150ms ease, background-color 150ms ease;
  width: 100%;
  text-align: left;
  border-radius: var(--radius-md-val);
}
.workspace-tree-space-add-btn-pc > svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.workspace-tree-space-add-btn-pc:hover {
  color: var(--text-secondary);
  background: var(--fill-secondary);
}
/* ========== 悬浮菜单（Federation 内渲染到主题边界，独立页面渲染到 body） ========== */
/* ====== + 号添加菜单 ====== */
.floating-menu-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
  min-width: 160px;
  padding: var(--space-2);
  border: 0.5px solid var(--wb-color-border-primary);
  border-radius: var(--wb-radius-300);
  background: var(--wb-color-bg-tertiary-default);
  box-shadow: var(--wb-shadow-popup-medium);
  color: var(--text-primary);
  font-family: var(--font-family-body);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 1.5;
  box-sizing: border-box;
  -webkit-user-select: none;
          user-select: none;
}
.floating-menu-item-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  min-height: 32px;
  padding: var(--space-1) var(--space-2);
  border: none;
  border-radius: var(--radius-lg-val);
  background: transparent;
  color: var(--text-primary);
  font-family: var(--font-family-body);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.floating-menu-item-pc:hover {
  background: var(--bg-primary-hover);
  color: var(--text-primary);
}
.workspace-tree-add-menu-pc .floating-menu-item-pc,
.workspace-tree-menu-pc .floating-menu-item-pc {
  font-size: var(--fs-caption);
}
/* ====== ⋯ 更多菜单（workspace-tree-menu-pc） ====== */
.workspace-tree-menu-pc {
  min-width: 160px;
  padding: var(--space-2);
  border-radius: var(--wb-radius-300);
  background: var(--wb-color-bg-tertiary-default);
  box-shadow: var(--shadow-3);
  color: var(--text-primary);
  font-size: var(--fs-caption);
  -webkit-user-select: none;
          user-select: none;
  border: 0.5px solid var(--wb-color-border-primary);
}
.workspace-tree-menu-item-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  min-height: 32px;
  padding: var(--space-2);
  border: none;
  border-radius: var(--wb-radius-200);
  background: transparent;
  color: var(--text-primary);
  font-family: var(--font-family-body);
  font-size: var(--fs-caption);
  line-height: 1.5;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 120ms ease;
}
.workspace-tree-menu-item-pc:hover {
  background: var(--wb-color-bg-primary-hover);
}
/* + 号添加菜单图标（16px + text-secondary，参考 memory-nav-item-icon-pc 暗色引用方式） */
.floating-menu-item-icon-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: var(--text-secondary);
}
.floating-menu-item-icon-pc > svg {
  width: 16px;
  height: 16px;
}
.floating-menu-item-icon-pc > img {
  width: 16px;
  height: 16px;
  display: block;
}
.workspace-tree-menu-item-danger-pc,
.floating-menu-item-danger-pc {
  /* DESIGN_FALLBACK: 设计稿导出的删除图标使用 #F64041，文案需与图标保持完全同色。 */
  --workspace-tree-menu-danger-color: #f64041;
  color: var(--workspace-tree-menu-danger-color);
}
.workspace-tree-menu-item-danger-pc > span,
.floating-menu-item-danger-pc > span {
  color: var(--workspace-tree-menu-danger-color);
}
.workspace-tree-menu-item-danger-pc:hover,
.floating-menu-item-danger-pc:hover {
  color: var(--workspace-tree-menu-danger-color);
  background-color: var(--error-bg);
}
/* 菜单图标：16×16 */
.workspace-tree-menu-item-icon-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: var(--wb-color-text-primary);
}
.workspace-tree-menu-item-icon-pc > svg {
  width: 16px;
  height: 16px;
}
.workspace-tree-menu-item-icon-pc > img {
  width: 16px;
  height: 16px;
  display: block;
}
/* 菜单分隔线 */
.floating-menu-divider-pc {
  height: 1px;
  margin: var(--space-1) var(--space-2);
  background: var(--divider, var(--border-default));
}
/* ====== 更多菜单 · 一级子菜单（TreeNodeMoreMenu） ====== */
/* 主项 hover 到有子菜单时保持 active 高亮（子菜单展开期间不因为鼠标离开主项而失去高亮） */
.workspace-tree-menu-item-active-pc {
  background: var(--fill-secondary);
}
/* 主项 label：撑开容器，让 chevron 靠右；单行尾省略，配合 JS 只在真截断时挂 title */
.workspace-tree-menu-item-label-pc {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
/* 主项右侧箭头（表示存在子菜单） */
.workspace-tree-menu-item-chevron-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-left: var(--space-1);
  color: var(--icon-tertiary);
}
.workspace-tree-menu-item-chevron-pc > svg {
  width: 16px;
  height: 16px;
}
/*
 * 子菜单容器：目标空间列表专用。
 * - 固定宽度 160px（需求约束），padding=8px 与设计规范一致；
 * - 长空间名不再撑开浮层，交由 label 尾省略 + hover tooltip 处理；
 * - 与主菜单其它子菜单场景解耦，避免影响未来扩展。
 */
.workspace-tree-submenu-pc {
  box-sizing: border-box;
  width: 160px;
  padding: var(--space-2);
  border-radius: var(--wb-radius-300);
  background: var(--wb-color-bg-tertiary-default);
  box-shadow: var(--shadow-3);
  color: var(--text-primary);
  font-size: var(--fs-caption);
  -webkit-user-select: none;
          user-select: none;
  border: 0.5px solid var(--popover-border-color);
}
/* 菜单项 disabled 态：目标空间存在但当前用户无 DragNodeIn 权限时置灰 */
.workspace-tree-menu-item-disabled-pc {
  cursor: not-allowed;
  color: var(--text-disabled, var(--text-tertiary));
}
.workspace-tree-menu-item-disabled-pc:hover {
  background: transparent;
}
.workspace-tree-menu-item-disabled-pc .workspace-tree-menu-item-icon-pc,
.workspace-tree-menu-item-disabled-pc .workspace-tree-menu-item-label-pc {
  color: var(--text-disabled, var(--text-tertiary));
  opacity: 0.6;
}
/* 子菜单空态提示 */
.workspace-tree-submenu-empty-pc {
  padding: var(--space-2);
  color: var(--text-tertiary);
  font-family: var(--font-family-body);
  font-size: var(--fs-caption);
  line-height: 1.5;
  white-space: nowrap;
}
/* ========== 新建空间弹窗（页面居中模态） ========== */
.workspace-tree-modal-overlay-pc {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--overlay-default);
}
.workspace-tree-create-space-dialog-pc {
  position: relative;
  width: 280px;
  padding: var(--space-4);
  border-radius: var(--wb-radius-300);
  background: var(--wb-color-bg-tertiary-default);
  box-shadow: var(--wb-shadow-popup-large);
  display: flex;
  flex-direction: column;
  gap: 0;
}
.workspace-tree-create-space-close-pc {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  margin-top: var(--space-0-5);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--icon-secondary);
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.workspace-tree-create-space-close-pc > svg {
  width: 20px;
  height: 20px;
}
.workspace-tree-create-space-close-pc:hover {
  background: var(--fill-secondary);
  color: var(--icon-primary);
}
.workspace-tree-create-space-title-pc {
  font-size: var(--fs-16);
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: var(--space-5);
}
.workspace-tree-create-space-icon-section-pc {
  margin-bottom: var(--space-5);
}
.workspace-tree-create-space-icon-label-pc {
  font-size: var(--fs-small);
  font-weight: 600;
  color: var(--wb-color-text-disable);
  margin-bottom: var(--space-2);
}
/* 行：设计稿上下 4 内边距（行高 32 = 4 + 24 + 4），子项间距 8 */
.workspace-tree-create-space-icon-grid-pc {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  row-gap: var(--space-2);
}
.workspace-tree-create-space-icon-grid-pc > * {
  flex: 0 0 24px;
}
.workspace-tree-create-space-icon-item-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  font-size: calc(18px * var(--font-scale));
  cursor: pointer;
  transition: background-color 150ms ease;
  /* 产品图标图片统一尺寸 */
}
.workspace-tree-create-space-icon-item-pc:hover {
  background: var(--fill-secondary);
}
.workspace-tree-create-space-icon-item-pc img {
  width: 22px;
  height: 22px;
  object-fit: contain;
  border-radius: var(--radius-md-val);
}
.workspace-tree-create-space-icon-item-active-pc {
  background: var(--brand-subtle);
  box-shadow: var(--shadow-2);
}
.workspace-tree-create-space-icon-item-active-pc:hover {
  background: var(--brand-subtle);
}
.workspace-tree-create-space-color-item-pc {
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.workspace-tree-create-space-color-item-pc:hover {
  background: var(--wb-color-bg-primary-active);
  border-radius: var(--wb-radius-150);
}
/* 16×16 颜色区域（实色与选中环由 inline style 控制） */
.workspace-tree-create-space-color-swatch-pc {
  width: 16px;
  height: 16px;
  border-radius: var(--wb-radius-50);
  transition: box-shadow 150ms ease, transform 150ms ease;
}
.workspace-tree-create-space-style-grid-pc {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--border-default);
}
/* 高亮背景 24×24，内部图标 16×16 */
.workspace-tree-create-space-style-item-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  border-radius: var(--wb-radius-150);
  background: transparent;
  cursor: pointer;
  transition: background-color 150ms ease;
}
.workspace-tree-create-space-style-item-pc:hover {
  background: var(--wb-color-bg-primary-active);
}
/* 注：选中项（-active-pc）底色由 inline style 控制（色板浅色），
   inline 优先级高于 :hover 规则，故 hover 不会覆盖选中底色。 */
.workspace-tree-create-space-input-pc {
  width: 100%;
  height: 32px;
  padding: 0 var(--space-2);
  margin-bottom: var(--space-4);
  border: 1px solid var(--wb-color-border-primary);
  border-radius: var(--wb-radius-200);
  background: var(--wb-color-bg-primary-default);
  color: var(--text-primary);
  font-size: var(--fs-body);
  outline: none;
  box-sizing: border-box;
  transition: border-color 150ms ease;
}
.workspace-tree-create-space-input-pc::-webkit-input-placeholder {
  color: var(--text-quaternary);
}
.workspace-tree-create-space-input-pc::placeholder {
  color: var(--text-quaternary);
}
.workspace-tree-create-space-pin-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-5);
  font-size: var(--fs-body);
  color: var(--text-secondary);
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
}
.workspace-tree-create-space-pin-pc > input[type="checkbox"] {
  width: 14px;
  height: 14px;
  accent-color: var(--brand);
  cursor: pointer;
}
.workspace-tree-create-space-btns-pc {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
}
.workspace-tree-create-space-cancel-pc {
  height: 32px;
  padding: 0 12px;
  border-radius: var(--wb-radius-200);
  background: transparent;
  color: var(--text-primary);
  min-width: 66px;
  font-size: var(--fs-body);
  cursor: pointer;
  border: 1px solid var(--wb-color-border-primary);
  transition: background-color 150ms ease, color 150ms ease;
}
.workspace-tree-create-space-cancel-pc:hover,
.workspace-tree-create-space-cancel-pc:active {
  background: var(--wb-color-bg-secondary-hover-active);
}
.workspace-tree-create-space-confirm-pc {
  height: 32px;
  padding: 0 12px;
  border: none;
  border-radius: var(--wb-radius-200);
  background: var(--button-primary-bg);
  color: var(--text-allwhite);
  min-width: 66px;
  font-size: var(--fs-body);
  cursor: pointer;
  transition: background-color 150ms ease, opacity 150ms ease;
}
.workspace-tree-create-space-confirm-pc:hover:not(:disabled),
.workspace-tree-create-space-confirm-pc:active:not(:disabled) {
  background: var(--wb-button-bg-primary-hover);
}
.workspace-tree-create-space-confirm-pc:disabled {
  background: var(--button-primary-bg-disabled);
  cursor: not-allowed;
}
.workspace-tree-space-name-input-pc {
  flex: 1;
  min-width: 0;
  height: 24px;
  padding: 0 var(--space-2);
  border: 1px solid var(--border-focus);
  border-radius: var(--radius-md-val);
  background: var(--bg-default);
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 600;
  outline: none;
  box-sizing: border-box;
}
.workspace-tree-space-name-input-pc::-webkit-input-placeholder {
  color: var(--text-quaternary);
  font-weight: 400;
}
.workspace-tree-space-name-input-pc::placeholder {
  color: var(--text-quaternary);
  font-weight: 400;
}
/* "我的文档"与"空间"之间的留白 */
.workspace-tree-section-gap-pc {
  height: var(--space-3);
}
/* "更多"按钮 — 与文档节点 icon 左对齐 */
.workspace-tree-show-more-btn-pc {
  display: flex;
  align-items: center;
  gap: var(--space-0-5);
  height: 32px;
  /* 节点行 paddingLeft = indentBase(默认 8) + depth*16；depth=0 时 = 8px
     chevron 区域宽 = 22px
     文档 icon 左边缘 = 8 + 22 = 30px */
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- 像素对齐，4px 网格让步 */
  padding-left: 30px;
  padding-right: var(--space-2);
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--text-tertiary);
  font-size: var(--fs-body);
  font-weight: 500;
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
  width: 100%;
  text-align: left;
}
.workspace-tree-show-more-btn-pc > svg {
  width: 20px;
  height: 18px;
  flex-shrink: 0;
  color: var(--icon-tertiary);
}
.workspace-tree-show-more-btn-pc:hover {
  background: var(--fill-secondary);
  color: var(--text-secondary);
}
/* ========== 全部空间下拉列表 ========== */
.workspace-tree-space-list-dropdown-pc {
  min-width: 200px;
  max-width: 260px;
  max-height: 320px;
  padding: var(--space-2);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  box-shadow: var(--shadow-3);
  border: 1px solid var(--border-default);
  overflow-y: auto;
  -webkit-user-select: none;
          user-select: none;
}
.workspace-tree-space-list-title-pc {
  font-size: var(--fs-small);
  font-weight: 600;
  color: var(--text-tertiary);
  padding: var(--space-1) var(--space-2);
  margin-bottom: var(--space-1);
}
.workspace-tree-space-list-empty-pc {
  font-size: var(--fs-body);
  color: var(--text-quaternary);
  padding: var(--space-2) var(--space-2);
}
.workspace-tree-space-list-items-pc {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.workspace-tree-space-list-item-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  height: 32px;
  padding: 0 var(--space-2);
  border-radius: var(--radius-md-val);
  cursor: pointer;
  transition: background-color 150ms ease;
}
.workspace-tree-space-list-item-pc:hover {
  background: var(--fill-secondary);
}
.workspace-tree-space-list-item-pc:hover .workspace-tree-space-list-pin-btn-pc {
  opacity: 1;
}
.workspace-tree-space-list-item-icon-pc {
  flex-shrink: 0;
  font-size: var(--fs-body);
  line-height: 1;
}
.workspace-tree-space-list-item-title-pc {
  flex: 1;
  min-width: 0;
  font-size: var(--fs-body);
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.workspace-tree-space-list-item-actions-pc {
  display: flex;
  align-items: center;
  gap: var(--space-0-5);
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 150ms ease;
}
.workspace-tree-space-list-item-pc:hover .workspace-tree-space-list-item-actions-pc,
.workspace-tree-space-list-item-active-pc .workspace-tree-space-list-item-actions-pc {
  opacity: 1;
}
.workspace-tree-space-list-item-active-pc {
  background: var(--fill-secondary);
}
.workspace-tree-space-list-more-btn-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  border: none;
  border-radius: var(--radius-sm-val);
  background: transparent;
  color: var(--icon-tertiary);
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.workspace-tree-space-list-more-btn-pc:hover {
  background: var(--fill-primary);
  color: var(--icon-primary);
}
.workspace-tree-space-list-pin-btn-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  border: none;
  border-radius: var(--radius-sm-val);
  background: transparent;
  color: var(--icon-tertiary);
  cursor: pointer;
  opacity: 0;
  transition: opacity 150ms ease, background-color 150ms ease, color 150ms ease;
}
.workspace-tree-space-list-pin-btn-pc:hover {
  background: var(--fill-primary);
  color: var(--icon-primary);
}
.workspace-tree-space-list-pin-active-pc {
  opacity: 1;
  color: var(--brand);
}
/* ----------------------------------------------------------------
 * @region skeleton-row — 节点骨架屏（数据未返回时）
 *
 *   当 NodeBlock 数据尚未从 /api/view/query/records 返回时，
 *   TreeNode 渲染骨架屏行（圆形图标 + 矩形文本），替代真实节点行。
 *   数据到达后 MobX observer 自动重渲染，骨架屏消失。
 * ---------------------------------------------------------------- */
.workspace-tree-node-skeleton-pc {
  cursor: default;
}
.workspace-tree-node-skeleton-icon-pc {
  display: inline-block;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--bg-medium);
  flex-shrink: 0;
  animation: workspace-tree-skeleton-pulse 1.5s ease-in-out infinite;
}
.workspace-tree-node-skeleton-text-pc {
  display: inline-block;
  height: 14px;
  width: 55%;
  border-radius: var(--radius-md-val);
  background: var(--bg-medium);
  animation: workspace-tree-skeleton-pulse 1.5s ease-in-out infinite;
}
@keyframes workspace-tree-skeleton-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
@media (prefers-reduced-motion: reduce) {
  .workspace-tree-node-skeleton-icon-pc,
  .workspace-tree-node-skeleton-text-pc {
    animation: none;
  }
}

.space-icon-letter-pc {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-strong);
  box-sizing: border-box;
  /* stylelint-disable-next-line font-token */
  font-size: 9px;
  color: var(--text-primary);
}
.space-icon-block-pc {
  display: inline-block;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-default);
  box-sizing: border-box;
}
/* 新样式：无底线性图标容器（与色块图标同尺寸槽位，居中对齐） */
.space-icon-styled-pc {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  box-sizing: border-box;
}
/* SpaceLineIcon 内层：消除行高干扰，保证 svg 居中 */
.space-line-icon-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}
/*
 * SpaceLineIcon mask 层：以 SVG 的 alpha 通道作蒙版，颜色由
 * backgroundColor 注入（inline 动态值：mask-image / size / color），
 */
.space-line-icon-mask-pc {
  display: inline-block;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 100% 100%;
}

.link-icon-asset-pc {
  display: block;
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  object-fit: contain;
}
.link-icon-asset-pc[data-link-source] {
  width: 16px;
  height: 16px;
}

/* ============================================================
 *  Profile Switcher 样式（mindx 版）
 *  - icon 按钮：复用 .knowledge-sidebar-toggle-btn-pc 32×32 圆形容器
 *    展示固定的 ProfileSwitcherIcon
 *  - 弹层：白底 + level-2 阴影 + radius-lg；item hover fill-secondary
 * ============================================================ */
.profile-switcher-btn-pc {
  /* 容器从 knowledge-sidebar-toggle-btn-pc 继承，这里仅作选择器锚点 */
}
/* ============ 空态提示 ============ */
.profile-switcher-empty-hint-pc {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 var(--space-2);
  font-size: var(--fs-caption);
  color: var(--text-tertiary);
  white-space: nowrap;
  -webkit-user-select: none;
          user-select: none;
}
/* ============ Popover ============ */
.profile-switcher-popover-pc {
  min-width: 220px;
  max-width: 280px;
  padding: var(--space-1);
  background: var(--bg-popover);
  border: thin solid var(--border-default);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-level-2);
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
}
/* ============ 列表项 ============ */
.profile-switcher-item-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  height: 30px;
  padding: 0 var(--space-2);
  background: transparent;
  border: 0;
  border-radius: var(--radius-md);
  font-size: var(--fs-caption);
  font-weight: 400;
  color: var(--text-secondary);
  cursor: pointer;
  text-align: left;
  transition: background-color 150ms ease, color 150ms ease;
  position: relative;
}
.profile-switcher-item-pc:hover {
  background: var(--fill-secondary);
  color: var(--text-primary);
}
.profile-switcher-item-current-pc {
  color: var(--text-primary);
  font-weight: 500;
}
/* ============ 勾选图标 ============ */
.profile-switcher-item-check-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--space-3);
  height: var(--space-3);
  font-size: var(--fs-small);
  color: var(--text-primary);
}
/* ============ Emoji ============ */
.profile-switcher-item-emoji-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--space-5);
  height: var(--space-5);
  font-size: var(--space-4);
  line-height: 1;
}
/* ============ 名称 ============ */
.profile-switcher-item-name-pc {
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* ============ 三点更多按钮（仅 actionable item hover 显示） ============ */
.profile-switcher-item-more-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--space-5);
  height: var(--space-5);
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: var(--radius-md);
  color: var(--text-tertiary);
  cursor: pointer;
  opacity: 0;
  transition: opacity 120ms ease, background-color 150ms ease, color 150ms ease;
}
.profile-switcher-item-pc:hover .profile-switcher-item-more-pc {
  opacity: 1;
}
.profile-switcher-item-more-pc:hover {
  background: var(--fill-tertiary);
  color: var(--text-primary);
}
/* ============ 重命名 input ============ */
.profile-switcher-item-rename-input-pc {
  flex: 1 1 auto;
  min-width: 0;
  height: var(--space-6);
  padding: 0 var(--space-1);
  font-size: var(--fs-caption);
  font-weight: 400;
  color: var(--text-primary);
  background: var(--bg-default);
  border: thin solid var(--border-default);
  border-radius: var(--radius-md);
  outline: none;
}
.profile-switcher-item-rename-input-pc:focus {
  border-color: var(--border-focus, var(--text-primary));
}
/* ============ 删除确认提示文案 ============ */
.profile-switcher-delete-hint-pc {
  margin: 0;
  padding: 0;
  font-size: var(--fs-caption);
  line-height: 20px;
  color: var(--text-secondary);
}

/**
 * knowledge-sidebar — 视觉对照存量「资料库」侧栏（memory-sidebar）
 *
 * 实现方式：复用 ui-components 中的 MemoryNavPC / SidebarToggleButtonPC / Icon，
 * 以及 mindx 业务层的 WorkspaceTreePC；
 * 这些原子组件自带 1:1 对齐资料库的样式；本 less 仅负责拼装层的容器、顶部条、
 * 滚动条与 section header 文案。
 *
 * ⚠️ 不绑定 .knowledge-sidebar-pc 自身的宽度/折叠/overlay 样式 ——
 * 这些由 main-layout-page/pc.less 通过 .memory-sidebar-wrapper-pc 控制。
 */
.knowledge-sidebar-pc {
  display: flex;
  flex-direction: column;
  height: var(--mindx-layout-height, 100vh);
  background: var(--sidebar);
  color: var(--sidebar-foreground);
  overflow: hidden;
  -webkit-user-select: none;
          user-select: none;
}
/* ----------------------------------------------------------------
 * @region top — 标题 + 折叠按钮
 *   严格对齐 memory-sidebar-top-pc / memory-sidebar-top-row-pc
 * ---------------------------------------------------------------- */
.knowledge-sidebar-top-pc {
  flex-shrink: 0;
}
.knowledge-sidebar-top-row-pc {
  display: flex;
  align-items: center;
  /* 顶部行：height 56px, padding 0 16px 0 24px */
  height: 56px;
  padding: 0 var(--space-4) 0 var(--space-6);
  gap: var(--space-2);
}
/* WorkBuddy 品牌标识：置于「资料库」文案左侧。
 * 素材已是裁到内容边界的圆角方形 PNG，不再叠加 border-radius。 */
.knowledge-sidebar-brand-logo-pc {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  object-fit: contain;
}
/* 标题文字：body 字族 / 20px / 600 / line-height 28px */
.knowledge-sidebar-title-pc {
  flex: 1;
  font-family: var(--font-family-body);
  font-size: calc(20px * var(--font-scale));
  font-weight: 600;
  line-height: 28px;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.knowledge-sidebar-toggle-pc {
  flex-shrink: 0;
}
.knowledge-sidebar-top-actions-pc {
  display: flex;
  align-items: center;
  /* 顶部操作间距 4px */
  gap: var(--space-1);
  flex-shrink: 0;
}
/* 顶部 icon 按钮通用样式
 *   设计稿: icon btn 32×32, icon 16×16, 圆角 pill (radius-full)
 *   颜色 text-secondary, hover fill-tertiary / text-primary
 */
.knowledge-sidebar-toggle-btn-pc,
.knowledge-sidebar-notify-btn-pc {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: var(--radius-2xl-val);
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
  /* 设计稿：icon frame 16×16 */
}
.knowledge-sidebar-toggle-btn-pc > svg,
.knowledge-sidebar-notify-btn-pc > svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.knowledge-sidebar-toggle-btn-pc:hover,
.knowledge-sidebar-notify-btn-pc:hover {
  background: var(--bg-primary-active);
  color: var(--text-primary);
}
.knowledge-sidebar-toggle-btn-pc:active,
.knowledge-sidebar-notify-btn-pc:active {
  background: var(--bg-primary-active);
  color: var(--text-primary);
}
.knowledge-sidebar-toggle-btn-pc:focus-visible,
.knowledge-sidebar-notify-btn-pc:focus-visible {
  outline: 2px solid var(--bg-primary-active);
  outline-offset: 2px;
}
/* 通知铃铛激活态（当前处于 /notification 路由）：常驻 hover 视觉。 */
.knowledge-sidebar-notify-btn-active-pc {
  background: var(--bg-primary-active);
  color: var(--text-primary);
}
.knowledge-sidebar-notify-btn-active-pc:hover {
  background: var(--bg-primary-active);
  color: var(--text-primary);
}
/* 通知小铃铛未读红点 */
.knowledge-sidebar-notify-dot-pc {
  position: absolute;
  top: var(--space-1);
  right: var(--space-1);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand-primary);
  pointer-events: none;
}
/* 折叠按钮独立微调 */
.knowledge-sidebar-toggle-btn-pc {
  flex-shrink: 0;
}
/* ----------------------------------------------------------------
 * @region scroll — 中间可滚动区
 *   由外层 SimpleBar 提供侧边栏唯一滚动条
 * ---------------------------------------------------------------- */
.knowledge-sidebar-scroll-pc {
  flex: 1;
  min-height: 0;
  /* SimpleBar 在 [data-simplebar] 上设了 flex-wrap: wrap，内部
   * .simplebar-height-auto-observer-wrapper 为 float: left，会换行
   * 撑高容器并向下溢出，遮住底部「存储空间」按钮的点击区域。
   * 用 overflow: hidden 裁掉溢出，保证 bottom-tools 可点。 */
  overflow: hidden;
}
/* 频道上下文（plan-1829 T4b）：顶部标题行 / 搜索 / 一级菜单全部隐藏，
 * 「团队资料库」段直接贴到侧栏顶边，补一点呼吸空间对齐原型图。 */
.knowledge-sidebar-channel-pc {
  height: 100%;
}
.knowledge-sidebar-channel-pc .knowledge-sidebar-scroll-pc {
  padding-top: var(--space-2);
}
.knowledge-sidebar-scroll-pc > .simplebar-wrapper > .simplebar-mask > .simplebar-offset > .simplebar-content-wrapper > .simplebar-content {
  display: flex;
  flex-direction: column;
  /* 滚动到底部时给最后一项（含「团队空间」段）留出缓冲空白，
   * 避免内容贴底视窗边缘 */
  padding-bottom: var(--space-8) !important;
}
.knowledge-sidebar-scroll-pc > .simplebar-wrapper > .simplebar-mask > .simplebar-offset > .simplebar-content-wrapper > .simplebar-content::before,
.knowledge-sidebar-scroll-pc > .simplebar-wrapper > .simplebar-mask > .simplebar-offset > .simplebar-content-wrapper > .simplebar-content::after {
  display: none;
}
/* track 加宽到 12px 作为鼠标拖拽的命中热区，视觉细条由 ::before 呈现 */
.knowledge-sidebar-scroll-pc > .simplebar-track.simplebar-vertical {
  width: 12px !important;
}
/* scrollbar 滑块撑满 track 宽度，扩大可按住拖动的热区（拖拽事件绑在此元素上） */
.knowledge-sidebar-scroll-pc > .simplebar-track.simplebar-vertical .simplebar-scrollbar {
  left: 0 !important;
  right: 0 !important;
  width: 12px !important;
}
/* 视觉上仍保持 4px 细条，在 12px 热区内水平居中（(12 - 4) / 2 = 4） */
.knowledge-sidebar-scroll-pc > .simplebar-track .simplebar-scrollbar::before {
  left: var(--space-1) !important;
  right: var(--space-1) !important;
  width: 4px !important;
  background-color: var(--fill-primary);
  border-radius: var(--radius-full);
  opacity: 0.75;
}
.knowledge-sidebar-scroll-pc > .simplebar-track .simplebar-scrollbar.simplebar-visible::before,
.knowledge-sidebar-scroll-pc:hover > .simplebar-track .simplebar-scrollbar::before {
  opacity: 0.9;
}
/* 鼠标直接悬停到滑块 / 拖拽中时，用更深的色值并拉满不透明度，颜色明显加重 */
.knowledge-sidebar-scroll-pc > .simplebar-track .simplebar-scrollbar:hover::before,
.knowledge-sidebar-scroll-pc > .simplebar-track .simplebar-scrollbar.simplebar-dragging::before {
  background-color: var(--border-strong);
  opacity: 1;
}
/* ----------------------------------------------------------------
 * @region fixed-top — 一级菜单（最近 / 本地）
 *   搜索已移出滚动容器常驻吸顶；本容器留在滚动区内，随目录一起滚动。
 * ---------------------------------------------------------------- */
.knowledge-sidebar-fixed-top-pc {
  flex-shrink: 0;
}
/* ----------------------------------------------------------------
 * @region section — 分组区域（WorkBuddy / 我的 / 团队空间）
 *   不限制高度，由内容自然撑满
 * ---------------------------------------------------------------- */
.knowledge-sidebar-section-pc {
  display: flex;
  flex-direction: column;
  /* 相邻 section 之间留出呼吸感（用 margin-block 而非 padding，避免与
   * section 内部首尾元素自带 padding 叠加，且让 sticky section-header 在
   * section 边界处的吸顶切换更干净。） */
  margin-block: var(--space-1);
}
/* ----------------------------------------------------------------
 * @region scroll-detail — space-detail 模式滚动
 * ---------------------------------------------------------------- */
.knowledge-sidebar-scroll-detail-pc {
  flex: 1;
}
/* ----------------------------------------------------------------
 * @region search — 搜索按钮（pill 样式）
 *   - 与一级菜单项视觉一致：30px 高 / 13px 字号 / 4px 12px padding
 *   - 不再用 36px 的 button 样式，更紧凑
 * ---------------------------------------------------------------- */
.knowledge-sidebar-search-pc {
  /* 作为 aside 直接子节点（滚动容器之外）常驻吸顶，不被压缩、不随目录滚动 */
  flex-shrink: 0;
  padding: 0 var(--space-3);
  margin-bottom: var(--space-0-5);
}
.knowledge-sidebar-search-btn-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  height: 30px;
  padding: var(--space-1) var(--space-3);
  border: none;
  border-radius: var(--wb-radius-200);
  background: transparent;
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 22px;
  cursor: pointer;
  text-align: left;
  transition: background-color 150ms ease, color 150ms ease;
}
.knowledge-sidebar-search-btn-pc:hover {
  background: var(--fill-secondary);
}
.knowledge-sidebar-search-btn-pc > svg,
.knowledge-sidebar-search-btn-pc > img {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: var(--text-secondary);
  object-fit: contain;
}
/* ----------------------------------------------------------------
 * @region nav-overrides — 覆盖 MemoryNavPC 的紧凑样式
 *   原子组件 memory-nav 在 frozen 名单内不可改，仅通过后代选择器在业务层覆盖
 *   list padding 0 12px / item 30px 高 / 13px 字号 / 4px 12px padding
 * ---------------------------------------------------------------- */
.knowledge-sidebar-pc {
  /* 激活态：灰底圆角无 shadow + 加粗 */
}
.knowledge-sidebar-pc .memory-nav-list-pc {
  gap: var(--space-0-5);
  padding: 0 var(--space-3);
}
.knowledge-sidebar-pc .memory-nav-item-pc {
  height: 30px;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-lg-val);
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 22px;
  gap: var(--space-2);
}
.knowledge-sidebar-pc .memory-nav-item-active-pc {
  background: var(--wb-color-bg-primary-active);
  border-radius: var(--wb-radius-200);
  box-shadow: none;
  font-weight: 600;
}
.knowledge-sidebar-pc .memory-nav-item-active-pc:hover {
  background: var(--wb-color-bg-primary-active);
}
.knowledge-sidebar-pc .memory-nav-item-active-pc .memory-nav-item-icon-pc {
  color: var(--text-primary);
}
.knowledge-sidebar-pc .memory-nav-item-active-pc .memory-nav-item-icon-pc .knowledge-sidebar-nav-icon-img-pc {
  color: var(--text-primary);
}
.knowledge-sidebar-pc .memory-nav-item-icon-pc {
  width: 16px;
  height: 16px;
  /* 设计稿 SVG 素材：16×16、不缩放 */
}
.knowledge-sidebar-pc .memory-nav-item-icon-pc > svg {
  width: 16px;
  height: 16px;
}
.knowledge-sidebar-pc .memory-nav-item-icon-pc > img.knowledge-sidebar-nav-icon-img-pc,
.knowledge-sidebar-pc .memory-nav-item-icon-pc > svg.knowledge-sidebar-nav-icon-img-pc {
  display: block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  object-fit: contain;
  color: var(--text-secondary);
}
/* ----------------------------------------------------------------
 * @region divider — 分割线（对齐 memory-sidebar-divider-pc）
 * ---------------------------------------------------------------- */
/* 不展示 divider，靠间距分隔 */
.knowledge-sidebar-divider-pc {
  display: none;
}
/* ----------------------------------------------------------------
 * @region tree-skeleton — 首屏加载骨架屏
 *   行高 32px 对齐真实 TreeNode；padding/margin 复用设计 token。
 *   圆形图标占位（16px）+ 文本条占位（14px 高度、错落宽度）。
 * ---------------------------------------------------------------- */
.knowledge-sidebar-tree-skeleton-pc {
  padding: 0 var(--space-2);
}
.knowledge-sidebar-skeleton-row-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  height: 32px;
  padding-right: var(--space-2);
  margin: 0 var(--space-2);
  border-radius: var(--radius-md-val);
}
/* ----------------------------------------------------------------
 * @region spaces — 「团队空间」段 wrapper
 *   与上方「个人空间」段用空白间距分隔（不画分隔线）。
 *   段间距：16px
 * ---------------------------------------------------------------- */
.knowledge-sidebar-spaces-pc {
  margin-top: var(--space-4);
}
/* 一级菜单（最近 / 本地）和文档树之间保留 10px 间距。 */
.knowledge-sidebar-pc .memory-nav-wrapper-pc {
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- 像素对齐，4px 网格让步 */
  padding-bottom: 10px;
}
/* ----------------------------------------------------------------
 * @region tree-overrides — 覆盖 WorkspaceTreePC 内部样式
 *   - section header label：11px / 600 / line-height 20px / text-quaternary
 *   - section header 高度：28px
 *   - 节点高度 30px / 字号 13px Regular / 行高 22px / text-primary
 *   - 节点间 gap 2px / list padding 12px / 选中态背景
 *   - 层级缩进由 WorkspaceTreePC 内联通用公式控制（节点 8 + depth * 16，支持任意深度）
 * ---------------------------------------------------------------- */
.knowledge-sidebar-pc .workspace-tree-section-header-pc {
  height: 28px;
  /* + 号右边缘对齐通知按钮（sidebar x=224=距右16px）：paddingRight=16px */
  padding: 0 var(--space-4) 0 var(--space-6);
  margin-bottom: var(--space-0-5);
}
.knowledge-sidebar-pc .workspace-tree-section-label-pc {
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 20px;
  color: var(--wb-color-text-tertiary);
  letter-spacing: 0;
  font-family: var(--font-family-body);
}
/* 仅最后一个 section（团队空间）的 header 取消吸顶，
 * 让下方的空间子节点接力吸顶 */
.knowledge-sidebar-section-pc:last-of-type .workspace-tree-section-header-pc {
  position: relative;
  top: auto;
  z-index: auto;
}
/* 设计稿 icon 16×16（2:2801）；默认 icon-slot/icon-default 均为 20×20，此处缩至 16。
 * icon→title 间距由 slot 内侧留白 1px + title margin-left 4px 提供。 */
.knowledge-sidebar-pc .workspace-tree-icon-slot-pc {
  /* slot 24×24 给图标视觉呼吸空间，内部 SpaceIcon 为 20×20 容器 + 16×16 图标 */
  width: 24px;
  height: 24px;
  margin-right: 0;
  transform: translateX(-1px);
}
.knowledge-sidebar-pc .workspace-tree-icon-default-pc {
  width: 18px;
  height: 18px;
}
.knowledge-sidebar-pc .workspace-tree-icon-default-pc > svg {
  width: 16px;
  height: 16px;
}
/* 目录树节点 — 1:1 对齐设计稿：
 * ① 节点高度 30px / 字号 14px / font-weight 400 / line-height 22px
 * ② 节点间 gap 2px（设计稿 itemSpacing=2）
 * ③ 文字颜色 text-primary（设计稿 rgba(0,0,0,0.9)）
 * ④ 圆角 radius-xl（选中态圆角更大）
 */
.knowledge-sidebar-pc .workspace-tree-node-pc {
  height: 30px;
  /* 按钮右边缘对齐通知按钮右边缘（sidebar x=224=距右16px），选中底色右边缘在228px，留出4px呼吸。
   * node 宽216px, paddingRight=4px → 按钮右边缘=12+216-4=224px ✓ */
  padding-right: var(--space-1);
  gap: 0;
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 22px;
  color: var(--text-primary);
  border-radius: var(--radius-xl-val);
}
/* 节点选中态：border-default 灰底，无 shadow */
.knowledge-sidebar-pc .workspace-tree-node-active-pc {
  background: var(--wb-color-bg-primary-active);
  border-radius: var(--radius-xl-val);
  box-shadow: none;
}
/* 节点 wrapper gap */
.knowledge-sidebar-pc .workspace-tree-node-wrapper-pc {
  gap: var(--space-0-5);
}
/* 空间节点 wrapper gap：与文档节点行间距保持一致，避免空间节点与其下文档节点间距偏大 */
.knowledge-sidebar-pc .workspace-tree-space-wrapper-pc {
  gap: var(--space-0-5);
}
/* 子节点列表 gap：文档下子文档、空间下子文档，统一与同级文档行间距一致，不区分层级 */
.knowledge-sidebar-pc .workspace-tree-children-pc,
.knowledge-sidebar-pc .workspace-tree-space-children-pc {
  gap: var(--space-0-5);
}
/* list padding 对齐设计稿：左右统一 12px，确保文档选中/hover 底色与侧栏两侧等距。 */
.knowledge-sidebar-pc .workspace-tree-list-pc {
  padding: 0 var(--space-3);
}
/* 所有目录列表都向下平铺；侧边栏只允许外层 SimpleBar 提供唯一滚动条。 */
.knowledge-sidebar-pc .workspace-tree-list-pc {
  gap: var(--space-0-5);
}
/* 「更多」按钮采用紧凑形态。WorkspaceTreePC 默认 show-more 是
 * 32px / 14px / 500 / 20×18 icon；这里覆盖为
 * 30px / 14px / 400 / 16×16 icon，并让左侧 icon 与一级文档 icon 垂直左对齐。
 * 一级文档 icon 相对 list 起点为 26px。 */
.knowledge-sidebar-pc .workspace-tree-list-pc > .workspace-tree-show-more-btn-pc {
  height: 30px;
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- 像素对齐，4px 网格让步 */
  padding-left: 26px;
  padding-right: var(--space-2);
  border-radius: var(--radius-lg-val);
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  font-weight: 400;
  line-height: 22px;
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- 文案与一级文档名称左边缘精确对齐 */
  gap: var(--space-1-5);
}
.knowledge-sidebar-pc .workspace-tree-list-pc > .workspace-tree-show-more-btn-pc > svg {
  width: 16px;
  height: 16px;
  color: currentColor;
}
.knowledge-sidebar-pc .workspace-tree-list-pc > .workspace-tree-show-more-btn-pc:hover {
  background: var(--fill-tertiary);
  color: var(--text-secondary);
}
/* 空间节点下的「更多」按钮：depth 由 spaceChildBaseDepth 控制，icon 起点左移。 */
.knowledge-sidebar-pc .workspace-tree-space-children-pc > .workspace-tree-show-more-btn-pc {
  height: 30px;
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- 像素对齐，4px 网格让步 */
  padding-left: 26px;
  padding-right: var(--space-2);
  border-radius: var(--radius-lg-val);
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  font-weight: 400;
  line-height: 22px;
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- 文案与文档名称左边缘精确对齐 */
  gap: var(--space-1-5);
}
.knowledge-sidebar-pc .workspace-tree-space-children-pc > .workspace-tree-show-more-btn-pc > svg {
  width: 16px;
  height: 16px;
  color: currentColor;
}
.knowledge-sidebar-pc .workspace-tree-space-children-pc > .workspace-tree-show-more-btn-pc:hover {
  background: var(--fill-tertiary);
  color: var(--text-secondary);
}
/* 空间节点对齐设计稿 + 滚动时吸顶（多空间按文档流接力吸顶） */
.knowledge-sidebar-pc .workspace-tree-space-node-pc {
  position: sticky;
  top: 0;
  z-index: 1;
  background-color: var(--sidebar);
  height: 30px;
  padding-left: var(--space-3);
  /* 同文档节点：右侧留 4px，按钮右边缘对齐通知按钮（sidebar x=224）*/
  padding-right: var(--space-1);
  font-size: var(--fs-body);
  color: var(--text-primary);
  cursor: pointer;
  /* toggle 按钮默认隐藏，hover 时显示 */
}
.knowledge-sidebar-pc .workspace-tree-space-node-pc .workspace-tree-space-toggle-pc {
  opacity: 0;
  transition: opacity 150ms ease, background-color 150ms ease;
}
.knowledge-sidebar-pc .workspace-tree-space-node-pc:hover .workspace-tree-space-toggle-pc,
.knowledge-sidebar-pc .workspace-tree-space-node-pc.workspace-tree-space-node-menu-open-pc .workspace-tree-space-toggle-pc {
  opacity: 1;
}
.knowledge-sidebar-pc .workspace-tree-space-title-pc {
  font-size: var(--fs-body);
  font-weight: 400;
  margin-left: var(--space-1);
}
/* icon-slot 固定 20×20 给图标视觉呼吸空间，内部 SpaceIcon 色块为 16×16 */
.knowledge-sidebar-pc .workspace-tree-space-icon-slot-pc {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  /* 内部 SpaceIcon 色块保持 16×16，仅覆盖 border-radius / border 视觉在资料库侧栏更清晰 */
}
.knowledge-sidebar-pc .workspace-tree-space-icon-slot-pc > * {
  width: 16px;
  height: 16px;
  min-width: 16px;
  min-height: 16px;
  border-radius: var(--radius-sm-val);
  box-sizing: border-box;
}
/* section add 按钮 icon-tertiary（知识侧栏标题层统一使用更弱颜色） */
.knowledge-sidebar-pc .workspace-tree-section-add-btn-pc {
  color: var(--wb-color-text-tertiary);
}
/* action button icon 16×16 */
.knowledge-sidebar-pc .workspace-tree-action-btn-pc > svg {
  width: 16px;
  height: 16px;
}
/* ----------------------------------------------------------------
 * @region tree-indent — 层级缩进：
 * 由 WorkspaceTreePC 内联公式统一控制：节点 padding-left = 8 + depth * 16。
 * 通用公式按深度线性递增，支持任意层级（含 5 级以上），
 * 不再按固定 depth 枚举覆盖，避免深层节点与父级视觉平齐。
 * ---------------------------------------------------------------- */
/* ----------------------------------------------------------------
 * @region space-detail — 「与我共享」简洁模式
 *   头部：显示「返回首页」按钮
 *   交互：点返回回到首页
 *   样式继承自老 memory-sidebar-space-detail-* 一组规则（迁移自 v0.x）
 * ---------------------------------------------------------------- */
.knowledge-sidebar-space-detail-header-pc {
  display: flex;
  align-items: center;
  padding: var(--space-1) var(--space-3) 0;
  margin-bottom: var(--space-4);
}
.knowledge-sidebar-space-detail-back-btn-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  flex-shrink: 0;
  min-width: 96px;
  min-height: 30px;
  padding: var(--space-1) var(--space-2);
  border: none;
  border-radius: var(--radius-sm-val);
  background: transparent;
  color: var(--text-primary);
  font-family: var(--font-family-body);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 22px;
  cursor: pointer;
  transition: background-color 150ms ease;
}
.knowledge-sidebar-space-detail-back-btn-pc > svg {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
}
.knowledge-sidebar-space-detail-back-btn-pc > span {
  white-space: nowrap;
}
.knowledge-sidebar-space-detail-back-btn-pc:hover {
  background: var(--button-grey-bg);
}
.knowledge-sidebar-space-detail-section-title-pc {
  height: 28px;
  padding: var(--space-1) var(--space-6);
  color: var(--text-tertiary);
  font-family: var(--font-family-body);
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 20px;
}
/* ----------------------------------------------------------------
 * @region section-header — 「个人空间」标题
 *   对齐 workspace-tree-section-header-pc 视觉，但简化（无 +/折叠）
 * ---------------------------------------------------------------- */
.knowledge-sidebar-section-header-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 32px;
  padding: 0 var(--space-3);
  margin: 0 var(--space-2) 4px;
}
.knowledge-sidebar-section-label-pc {
  font-size: var(--fs-small);
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--text-tertiary);
  text-transform: none;
  -webkit-user-select: none;
          user-select: none;
}
/* ============================================================
 * @region bottom-tools — 底部常驻工具入口（存储空间摘要）
 *   固定在侧栏底部，不随内容滚动
 * ============================================================ */
.knowledge-sidebar-bottom-tools-pc {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: var(--space-0-5);
  padding: var(--space-2) var(--space-3) var(--space-4);
  border-top: 1px solid var(--divider);
  border-bottom: 1px solid transparent;
}
.knowledge-sidebar-collapsed-pc .knowledge-sidebar-bottom-tools-pc {
  display: none;
}
/* 存储摘要：已使用 X/Y + 升级按钮 + 进度条 */
.knowledge-sidebar-storage-summary-pc {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-1);
  margin: 0 var(--space-1);
}
.knowledge-sidebar-storage-top-row-pc {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: var(--space-2);
}
.knowledge-sidebar-storage-details-pc {
  display: flex;
  min-width: 0;
  flex: 1;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-2);
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm-val);
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
}
.knowledge-sidebar-storage-details-pc::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  border-radius: var(--radius-sm-val);
  content: "";
}
.knowledge-sidebar-storage-details-pc:focus-visible {
  outline: none;
}
.knowledge-sidebar-storage-details-pc:focus-visible::after {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}
.knowledge-sidebar-storage-amount-pc {
  overflow: hidden;
  /* 对齐设计稿 79:1125：整行 12px、text-primary、常规字重、行高 20px */
  color: var(--text-primary);
  font-size: var(--fs-small);
  font-variant-numeric: tabular-nums;
  line-height: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.knowledge-sidebar-storage-label-pc {
  font-weight: 400;
}
/* 已用量：设计稿 79:979 主文本色、字重 500 */
.knowledge-sidebar-storage-value-pc {
  color: var(--text-primary);
  font-weight: 500;
}
/* 总量「/ X GB」：设计稿 79:979 次要文本色、字重 500 */
.knowledge-sidebar-storage-total-pc {
  color: var(--text-tertiary);
  font-weight: 500;
}
.knowledge-sidebar-storage-progress-pc {
  width: 100%;
  /* 进度条容器：对齐设计稿 8434:194 / 79:1125 —— 高度 4px、灰底、圆角 */
  /* 进度填充块圆角与容器一致 */
}
.knowledge-sidebar-storage-progress-pc > div:first-child {
  height: 4px;
  border-radius: 9999px;
  background: var(--bg-strong);
}
.knowledge-sidebar-storage-progress-pc > div:first-child > div {
  border-radius: 9999px;
}
.knowledge-sidebar-storage-view-pc.btn-sm-pc {
  position: relative;
  z-index: 2;
  height: var(--space-5);
  gap: var(--space-0-5);
  padding: 0 0 0 var(--space-1);
  border-radius: var(--radius-lg-val);
  background: transparent;
  color: var(--text-secondary);
  font-size: var(--fs-small);
  font-weight: 400;
  flex-shrink: 0;
}
.knowledge-sidebar-storage-view-pc.btn-sm-pc:hover:not(:disabled) {
  background: var(--fill-secondary);
  color: var(--text-secondary);
}
.knowledge-sidebar-storage-view-pc.btn-sm-pc:active:not(:disabled) {
  background: var(--fill-primary);
  color: var(--text-secondary);
}
.knowledge-sidebar-storage-view-arrow-pc {
  flex-shrink: 0;
}
/* ============================================================
 * @region storage-dialog — 存储空间弹窗
 * ============================================================ */
.knowledge-sidebar-storage-dialog-overlay-pc {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--overlay-default);
  animation: ks-storage-fade 120ms ease-out;
}
.knowledge-sidebar-storage-dialog-pc {
  display: flex;
  flex-direction: column;
  width: 460px;
  max-width: calc(100vw - var(--space-12));
  border-radius: var(--radius-xl-val);
  background: var(--bg-default);
  box-shadow: var(--shadow-3);
  overflow: hidden;
  animation: ks-storage-scale 140ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes ks-storage-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes ks-storage-scale {
  from {
    opacity: 0;
    transform: scale(0.96);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.knowledge-sidebar-storage-dialog-header-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-3) var(--space-5);
}
.knowledge-sidebar-storage-dialog-header-pc h3 {
  margin: 0;
  color: var(--text-primary);
  font-size: calc(15px * var(--font-scale));
  font-weight: 600;
  line-height: 22px;
}
.knowledge-sidebar-storage-dialog-close-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--icon-secondary);
  cursor: pointer;
  transition: background-color 150ms ease;
}
.knowledge-sidebar-storage-dialog-close-pc:hover {
  background: var(--fill-secondary);
}
/* ===== 存储弹窗内部：设置模块结构 ===== */
.wb-settings-module-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-5) var(--space-4);
}
.wb-settings-module-card-pc {
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-lg-val);
  overflow: hidden;
  gap: var(--space-3);
}
/* ===== 容量条区域 ===== */
.wb-storage-bar-block-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-4) var(--space-4) var(--space-3);
  border-radius: var(--radius-xl-val);
}
/* 容量概览标题行：已使用 X GB，共 Y GB + 升级 CTA */
.wb-storage-capacity-heading-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.wb-storage-capacity-usage-pc {
  display: inline-flex;
  min-width: 0;
  align-items: baseline;
  white-space: nowrap;
}
.wb-storage-capacity-usage-label-pc,
.wb-storage-capacity-usage-suffix-pc {
  color: var(--text-secondary);
  font-size: var(--fs-caption);
  line-height: var(--lh-body);
}
.wb-storage-capacity-usage-label-pc {
  margin-right: var(--space-2);
}
.wb-storage-capacity-usage-value-pc {
  color: var(--text-primary);
  /* DESIGN_FALLBACK: 存储容量指标需要介于区块标题与页面标题之间的紧凑展示字号 */
  /* stylelint-disable-next-line font-token */
  font-size: 20px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: var(--lh-page-title);
}
.wb-storage-capacity-actions-pc {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-shrink: 0;
}
.wb-storage-upgrade-cta-pc.btn-sm-pc {
  height: 24px;
  gap: 0;
  padding: 0 var(--space-3);
  border-radius: var(--radius-md-val);
  font-size: var(--fs-small);
  flex-shrink: 0;
}
.wb-storage-capacity-bar-pc {
  position: relative;
  display: flex;
  width: 100%;
  height: 10px;
  border-radius: var(--radius-sm-val);
  background: var(--bg-primary-active);
  overflow: hidden;
}
.wb-storage-capacity-bar-segment-pc {
  display: block;
  height: 100%;
  min-width: 3px;
  transition: width 200ms ease;
}
.wb-storage-bar-files-pc {
  background: var(--success);
}
.wb-storage-bar-config-pc {
  background: var(--info);
}
.wb-storage-bar-footer-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.wb-storage-capacity-legend-pc {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}
.wb-storage-legend-item-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-size: calc(11px * var(--font-scale));
  color: var(--text-tertiary);
}
.wb-storage-legend-dot-pc {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.wb-storage-legend-dot-files-pc {
  background: var(--success);
}
.wb-storage-legend-dot-config-pc {
  background: var(--info);
}
.wb-storage-summary-compact-pc {
  flex-shrink: 0;
  font-size: calc(11px * var(--font-scale));
  font-weight: 400;
  color: var(--text-tertiary);
  line-height: 18px;
  white-space: nowrap;
}
.wb-storage-summary-compact-pc strong {
  font-size: calc(11px * var(--font-scale));
  font-weight: 600;
  color: var(--text-secondary);
}
/* ===== 存储明细列表 ===== */
.wb-storage-detail-list-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.wb-storage-detail-item-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-xl-val);
  background: var(--fill-secondary);
}
.wb-storage-detail-row-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.wb-storage-detail-name-pc {
  font-size: var(--fs-body);
  font-weight: 600;
  color: var(--text-primary);
  line-height: 22px;
}
.wb-storage-detail-size-inline-pc {
  font-size: var(--fs-body);
  font-weight: 600;
  color: var(--text-primary);
  line-height: 22x;
  flex-shrink: 0;
}
.wb-storage-detail-desc-pc {
  font-size: var(--fs-body);
  font-weight: 400;
  color: var(--text-tertiary);
  line-height: 22px;
  word-break: break-word;
  white-space: normal;
}
.wb-storage-detail-clear-link-pc {
  padding: 0;
  border: none;
  background: transparent;
  color: var(--text-tertiary);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 22px;
  text-align: left;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: var(--border-default);
  transition: color 150ms ease, text-decoration-color 150ms ease;
}
.wb-storage-detail-clear-link-pc:hover {
  color: var(--text-secondary);
  text-decoration-color: var(--text-secondary);
}
/* 升级 CTA */
.wb-storage-upgrade-row-pc {
  padding: var(--space-1) var(--space-4) var(--space-2);
  border-top: 1px solid var(--divider);
}
.wb-storage-upgrade-cta-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-0-5);
  border: none;
  cursor: pointer;
}
/* 底部注记 */
.wb-storage-footer-note-pc {
  display: block;
  font-size: calc(12px * var(--font-scale));
  font-weight: 400;
  color: var(--text-disable);
  line-height: 20px;
  text-align: center;
}
/* ----------------------------------------------------------------
 * @region wbshell-collapsed — WB Desktop 外壳侧栏折叠后的避让
 *
 * WB Desktop 客户端自带左侧导航栏，折叠后收为图标条（约 56~80px），
 * 资料库侧栏标题会与图标重叠。本段规则：
 *   1. top-row 加 padding-left 让位
 *   2. 浮一个展开按钮在标题左侧
 * ---------------------------------------------------------------- */
.knowledge-sidebar-wbshell-collapsed-pc .knowledge-sidebar-top-row-pc {
  /* 避让 WB 外壳侧栏折叠后的图标条（红绿灯 ~72px + 间距） */
  padding-left: 92px;
}
/* WB 外壳侧栏展开入口
 * 绝对定位浮在 top-row 内左侧，不占用 flex 流 */
.knowledge-sidebar-wbshell-expand-btn-pc {
  top: var(--space-3);
  left: var(--space-3);
  z-index: 200;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: var(--radius-full);
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 150ms ease, color 150ms ease;
}
.knowledge-sidebar-wbshell-expand-btn-pc > img,
.knowledge-sidebar-wbshell-expand-btn-pc > svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.knowledge-sidebar-wbshell-expand-btn-pc:hover {
  background: var(--fill-tertiary);
  color: var(--text-primary);
}
.knowledge-sidebar-wbshell-expand-btn-pc:active {
  background: var(--feedback-active);
}
.knowledge-sidebar-wbshell-expand-btn-pc:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

/**
 * channel-bind-space-panel.less
 *
 * 频道「绑定已有资料库」弹窗样式（设计稿 node 10594:1 / 权限下拉 node 12170:23）。
 * 表格布局：表头 + 数据行（复选框 / 名称 / 所有者 / 权限）。
 * overlay 复用 confirm-modal-overlay-pc 基础样式；其余为差异化样式。
 * 禁止硬编码色值 / 间距 / 圆角，统一走设计系统 Token。
 */
/* ─── 遮罩：继承 confirm-modal-overlay-pc 基础样式 ─── */
.channel-bind-space-overlay-pc {
  /* 覆盖 confirm-modal-overlay-pc 的 z-index（比确认弹窗高一级） */
  z-index: 10000;
}
/* ─── 弹窗面板（设计稿宽 640，圆角 24，内边距 24） ─── */
.channel-bind-space-panel-pc {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10001;
  width: min(640px, 92vw);
  max-height: 80vh;
  padding: var(--space-6);
  background: var(--wb-color-bg-secondary-default);
  border-radius: var(--wb-radius-600);
  box-shadow: var(--shadow-3);
  border: 0.5px solid var(--border-primary);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  animation: channel-bind-panel-scale-in-pc 140ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes channel-bind-panel-scale-in-pc {
  from {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}
/* ─── Header：标题 + 关闭按钮 ─── */
.channel-bind-space-header-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.channel-bind-space-title-pc {
  margin: 0;
  font-size: var(--fs-section-title);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  line-height: var(--lh-section-title);
}
/* 关闭按钮（右上角 X，24×24 命中区） */
.channel-bind-space-close-pc {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: transparent;
  border-radius: var(--wb-radius-150);
  color: var(--icon-secondary);
  cursor: pointer;
  transition: background 120ms ease;
}
.channel-bind-space-close-pc:hover:not(:disabled) {
  background: var(--fill-secondary);
}
.channel-bind-space-close-pc:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
/* ─── 表格容器 ─── */
.channel-bind-space-table-pc {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  /* 设计稿 node 10594:12：表头与表体相邻（gap 0），以底部分隔线区隔 */
}
/* 行栅格：复选框(20) / 名称(弹性) / 所有者(弹性) / 权限(弹性) —— 表头与行共用 */
.channel-bind-space-thead-pc,
.channel-bind-space-row-pc {
  display: grid;
  grid-template-columns: 20px 1fr 1fr 1fr;
  align-items: center;
  gap: var(--space-3);
  /* 表头与数据行同一水平内边距，保证各列严格对齐 */
  padding: 0 var(--space-1);
}
/* 表头（浅灰底、顶部圆角、底部分隔线、高 42，设计稿 node 10594:66） */
.channel-bind-space-thead-pc {
  height: 42px;
  flex-shrink: 0;
  background: var(--wb-color-bg-secondary-hover-active);
  border-radius: var(--wb-radius-150);
  font-size: var(--fs-body);
  color: var(--text-tertiary);
}
.channel-bind-space-col-checkbox-pc {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
}
.channel-bind-space-col-name-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.channel-bind-space-col-owner-pc {
  display: flex;
  align-items: center;
  min-width: 0;
}
.channel-bind-space-col-role-pc {
  display: flex;
  align-items: center;
}
/* ─── 表体（可滚动） ─── */
.channel-bind-space-tbody-pc {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}
.channel-bind-space-tbody-pc::-webkit-scrollbar {
  width: 4px;
}
.channel-bind-space-tbody-pc::-webkit-scrollbar-track {
  background: transparent;
}
.channel-bind-space-tbody-pc::-webkit-scrollbar-thumb {
  background: var(--fill-primary);
  border-radius: var(--wb-radius-100);
}
/* ─── 空列表提示 ─── */
.channel-bind-space-empty-pc {
  font-size: var(--fs-caption);
  color: var(--text-tertiary);
  text-align: center;
  padding: var(--space-8) 0;
}
/* ─── 数据行 ─── */
.channel-bind-space-row-pc {
  height: 42px;
  border-radius: var(--wb-radius-150);
  transition: background 120ms ease;
  cursor: pointer;
}
.channel-bind-space-row-pc:hover {
  background: var(--wb-color-bg-secondary-hover-active);
}
/* 自绘方形描边 checkbox（ui-components 无 Checkbox 组件）。
   设计稿 node 10594:70/42：未选=描边空框；选中=品牌色实底 + 白色对勾。
   ⚠️ appearance:none 会使原生 accent-color 失效，选中态必须自绘（背景 + ::after 对勾）。 */
.channel-bind-space-checkbox-pc {
  flex-shrink: 0;
  position: relative;
  width: 16px;
  height: 16px;
  margin: 0;
  border: 1.5px solid var(--wb-radio-color-border);
  border-radius: var(--wb-radius-100);
  cursor: pointer;
  -webkit-appearance: none;
          appearance: none;
  transition: background 120ms ease, border-color 120ms ease;
  /* 白色对勾：两条边框拼成的 √，随框居中 */
}
.channel-bind-space-checkbox-pc:checked {
  background: var(--brand);
  border-color: var(--brand);
}
.channel-bind-space-checkbox-pc:checked::after {
  content: "";
  position: absolute;
  top: 44%;
  left: 50%;
  width: 5px;
  height: 8.5px;
  border: solid var(--text-allwhite);
  border-width: 0 1.5px 1.5px 0;
  transform: translate(-50%, -50%) rotate(45deg);
}
.channel-bind-space-checkbox-pc:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
/* ─── 空间图标（24px 居中槽位，内部由公共 SpaceIcon 组件渲染） ─── */
.channel-bind-space-icon-pc {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* 空间名称 */
.channel-bind-space-name-text-pc {
  font-size: var(--fs-body);
  color: var(--text-primary);
}
/* 所有者列文字 */
.channel-bind-space-col-owner-pc {
  font-size: var(--fs-body);
  color: var(--text-tertiary);
}
/* ─── AC-3 权限下拉（仅勾选行渲染，设计稿 node 12170:23） ─── */
.channel-bind-space-role-pc {
  position: relative;
  display: inline-flex;
}
/* 展开态提升层级：容器已定位，加 z-index 建立更高堆叠上下文，
   使下拉菜单盖过后绘制的后续行与 Footer（否则会被遮挡）。 */
.channel-bind-space-role-open-pc {
  z-index: var(--z-dropdown);
}
/* 触发器：secondary small 按钮「可编辑 ⌄」 */
.channel-bind-space-role-trigger-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  height: 24px;
  padding: 0 var(--space-2);
  border: 1px solid var(--border-default);
  border-radius: var(--wb-radius-200);
  background: var(--wb-color-bg-secondary-default);
  font-size: var(--fs-small);
  color: var(--text-primary);
  cursor: pointer;
  white-space: nowrap;
  transition: background 120ms ease, border-color 120ms ease;
}
.channel-bind-space-role-trigger-pc:hover:not(:disabled) {
  background: var(--wb-color-bg-secondary-hover-active);
}
.channel-bind-space-role-trigger-pc:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.channel-bind-space-role-caret-pc {
  flex-shrink: 0;
  color: var(--icon-tertiary);
  transition: transform 120ms ease;
}
.channel-bind-space-role-caret-open-pc {
  transform: rotate(180deg);
}
/* 下拉菜单：白底、圆角 16、边框、阴影、内边距 8。
   portal 到 body，用 fixed + 内联 top/right 定位（top/right 由 JS 注入）。
   z-index 需高于弹窗面板（10001），否则被面板自身盖住。 */
.channel-bind-space-role-menu-pc {
  position: fixed;
  z-index: 10002;
  min-width: 112px;
  padding: var(--space-2);
  background: var(--wb-color-bg-secondary-default);
  border: 1px solid var(--border-default);
  border-radius: var(--wb-radius-400);
  box-shadow: var(--shadow-2);
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
  animation: channel-bind-role-menu-in-pc 120ms ease;
}
@keyframes channel-bind-role-menu-in-pc {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* 菜单选项：行高 32，选中项浅灰底 + 右侧绿勾 */
.channel-bind-space-role-option-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  height: 32px;
  padding: 0 var(--space-2);
  border: none;
  background: transparent;
  border-radius: var(--wb-radius-150);
  font-size: var(--fs-body);
  color: var(--text-primary);
  cursor: pointer;
  white-space: nowrap;
  transition: background 120ms ease;
}
.channel-bind-space-role-option-pc:hover {
  background: var(--wb-color-bg-secondary-hover-active);
}
.channel-bind-space-role-option-active-pc {
  background: var(--wb-color-bg-secondary-hover-active);
}
.channel-bind-space-role-option-label-pc {
  flex: 1;
  text-align: left;
}
/* 选中勾（wb-check.svg，绿色勾图标固定设计色 #00C19A） */
.channel-bind-space-role-check-pc {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
}
/* ─── Footer：左「已选择 (N)」 + 右 取消/确定 ─── */
.channel-bind-space-footer-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  flex-shrink: 0;
}
.channel-bind-space-selected-count-pc {
  font-size: var(--fs-body);
  color: var(--text-tertiary);
}
.channel-bind-space-footer-actions-pc {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

/**
 * Main Layout — 双面板布局
 *
 * Sidebar 融入外壳 bg-medium 底色（无独立边框），
 * Content 区浮于其上：bg-default 白色 + 圆角 + 外边距，
 * 形成 "sidebar 背板 + content 浮岛" 的视觉语言。
 *
 * 容器宽度自适应：当容器 < 768px（如 WB 嵌入版侧栏宿主），
 * 自动切换到折叠态（main-layout-wrapper-collapsed-pc）—— 侧栏宽度收为 0，
 * 主内容区独占可用宽度，左上角保留切换按钮供手动展开。
 */
.main-layout-wrapper-pc {
  --main-layout-sidebar-width: 280px;
  --main-layout-overlay-sidebar-width: min(var(--main-layout-sidebar-width), calc(100% - var(--space-6)));
  display: flex;
  flex-direction: row;
  position: relative;
  height: var(--mindx-layout-height, 100vh);
  width: 100%;
  overflow: hidden;
  background: var(--bg-secondary-default);
  /* 侧栏宽度消费 CSS 变量（由 useSidebarResize hook 注入 inline style） */
}
.main-layout-wrapper-pc > .memory-sidebar-wrapper-pc {
  width: var(--main-layout-sidebar-width, 280px);
  min-width: var(--main-layout-sidebar-width, 280px);
  transition: none;
}
/* 频道上下文（federation 嵌入宿主）：容器随宿主高度撑满，
 * 覆写默认的 100vh —— 嵌入场景下 100vh 会超出宿主可视区导致内容被裁切。 */
.main-layout-wrapper-channel-pc {
  height: 100%;
}
/* 折叠态：侧栏隐藏（保留 DOM/state，仅视觉收起） */
.main-layout-wrapper-collapsed-pc {
  /* 折叠后主内容区贴左 */
}
.main-layout-wrapper-collapsed-pc > .memory-sidebar-wrapper-pc {
  width: 0;
  min-width: 0;
  opacity: 0;
  pointer-events: none;
}
.main-layout-wrapper-collapsed-pc > .main-layout-content-pc {
  margin-left: 0;
}
/* preview 文档详情页：侧栏不渲染 + 无过渡动画。
 * titlebar 左 padding 沿用统一样式（--wb-spacing-600 = 24px）：
 * preview 页不渲染任何 toggle 按钮（leftExtra 含 !isPreviewDocPage 条件），
 * 不要像旧交互那样清零 padding —— 曾导致外部 Genie preview 打开文档时贴边。 */
.main-layout-wrapper-preview-doc-pc > .memory-sidebar-wrapper-pc,
.main-layout-wrapper-preview-doc-pc > .main-layout-content-pc,
.main-layout-wrapper-preview-doc-pc > .main-layout-sidebar-resizer-pc,
.main-layout-wrapper-preview-doc-pc > .main-layout-sidebar-toggle-pc {
  transition: none !important;
}
.main-layout-wrapper-workspace-fullscreen-pc {
  background: var(--bg-default);
}
/* 窄容器手动收起态：浮层模式下只隐藏目录，避免正文区出现拉伸动画。 */
.main-layout-wrapper-narrow-collapsed-pc > .memory-sidebar-wrapper-pc,
.main-layout-wrapper-narrow-collapsed-pc > .main-layout-content-pc,
.main-layout-wrapper-narrow-collapsed-pc > .main-layout-sidebar-toggle-pc {
  transition: none;
}
/* 窄容器手动展开态：侧栏浮在编辑区上方，宽度与常规侧栏保持一致。 */
.main-layout-wrapper-overlay-sidebar-pc > .memory-sidebar-wrapper-pc {
  position: absolute;
  top: var(--space-3);
  bottom: var(--space-3);
  left: var(--space-3);
  z-index: 180;
  width: var(--main-layout-overlay-sidebar-width);
  min-width: var(--main-layout-overlay-sidebar-width);
  height: auto;
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg-val);
  box-shadow: var(--shadow-4);
  opacity: 1;
  pointer-events: auto;
  transition: none;
}
.main-layout-wrapper-overlay-sidebar-pc > .main-layout-content-pc {
  margin-left: 0;
  transition: none;
}
.main-layout-content-pc {
  flex: 1;
  position: relative;
  overflow-y: auto;
  overflow-x: hidden;
  /* 主内容区不使用浮岛效果 */
  background: var(--bg-secondary-default);
  border-radius: 0;
  margin: 0;
  box-shadow: none;
  transition: none;
}
/* 侧边栏切换按钮：仅折叠态 + 非 DocTitlebar 页面渲染。
   详情页（/d/ /s/）的展开按钮由 DocTitlebarPC leftExtra 承载。 */
.main-layout-sidebar-toggle-pc {
  position: absolute;
  top: calc(var(--space-3) + 12px);
  left: var(--space-3);
  z-index: 200;
  background: var(--bg-default);
  /* 内层按钮复用侧栏切换按钮尺寸 */
}
.main-layout-sidebar-toggle-pc > .sidebar-toggle-btn-pc {
  border-radius: var(--radius-full);
  background: transparent;
}
.main-layout-sidebar-toggle-pc > .sidebar-toggle-btn-pc:hover {
  background: var(--fill-tertiary);
}
.main-layout-sidebar-toggle-pc > .sidebar-toggle-btn-pc:active {
  background: var(--feedback-active);
}
.main-layout-sidebar-toggle-pc > .sidebar-toggle-btn-pc:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}
.main-layout-wrapper-overlay-sidebar-pc .main-layout-sidebar-toggle-pc {
  /* overlay 态：sidebar 浮层盖在主内容区上方（z-index 180）。
     按钮位置不变（被 overlay 自然遮盖），用户能看到完整 sidebar 时不需切换按钮，
     onPointerLeave / 点击外部即可触发 collapse 收回。 */
  z-index: 100;
  transition: none;
}
/* WB Desktop 外壳侧栏折叠态：
 *   - 资料库侧栏标题行避让（见 knowledge-sidebar.less .knowledge-sidebar-wbshell-collapsed-pc）
 *   - 详情页 titlebar 同样需要避让（红绿灯 + 展开按钮区域 ~90px） */
.main-layout-wbshell-collapsed-pc .doc-titlebar-wrapper-pc {
  padding-left: 92px !important;
}
/* 错误边界 fallback（对应 LayoutErrorBoundary 捕获异常后的提示） */
.layout-error-boundary-fallback-pc {
  padding: var(--space-12);
  color: var(--text-tertiary);
  font-size: var(--fs-body);
}
/* =========================================================================
 * 侧栏宽度拖拽手柄
 * - 紧贴 sidebar 右边缘的 8px 透明热区，向左 -8px margin 让出主内容流宽
 * - hover / focus / 拖拽中：右边缘显示 1px 高亮线（上下端头 20% 渐隐）
 * - 拖拽中：全局 col-resize 光标 + 禁止文本选中 + 关闭 sidebar 过渡
 * ========================================================================= */
.main-layout-sidebar-resizer-pc {
  position: relative;
  z-index: 150;
  flex: 0 0 auto;
  align-self: stretch;
  width: 4px;
  /* 视觉贴边：负 margin 让 resizer 向左回退到 sidebar 右边缘，不占流宽 */
  margin: 0 0 0 -8px;
  border: 0;
  background: transparent;
  cursor: col-resize;
  outline: 0;
  /* 分隔条本身不参与折叠过渡 */
  transition: none;
}
/* hover/focus 时显示高亮线（贴右边缘，即 sidebar 宽度终止处） */
.main-layout-sidebar-resizer-pc::after {
  content: "";
  position: absolute;
  top: var(--space-3);
  bottom: var(--space-3);
  right: 0;
  width: 1px;
  border-radius: var(--radius-full);
  background: transparent;
  transition: background-color 150ms ease;
  /* 上下端头 20% 位置开始渐隐 */
  mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);
}
.main-layout-sidebar-resizer-pc:hover::after,
.main-layout-sidebar-resizer-pc:focus-visible::after {
  background: var(--border-strong);
}
/* 拖拽中：全局 col-resize 光标 + 禁止选中文本 */
.main-layout-wrapper-resizing-pc,
.main-layout-wrapper-resizing-pc * {
  cursor: col-resize !important;
  -webkit-user-select: none;
          user-select: none;
}
/* 拖拽中关闭 sidebar 过渡，让拖拽跟手 */
.main-layout-wrapper-resizing-pc > .memory-sidebar-wrapper-pc {
  transition: none;
}
/* 拖拽中高亮分隔条 */
.main-layout-wrapper-resizing-pc .main-layout-sidebar-resizer-pc::after {
  background: var(--border-strong);
}

.host-unauth-page-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 400px;
  background-color: var(--bg-default);
}
.host-unauth-page-content-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  text-align: center;
  padding: var(--space-6);
}
.host-unauth-page-icon-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  background-color: var(--bg-medium);
  border-radius: 50%;
  color: var(--text-tertiary);
}
.host-unauth-page-title-pc {
  margin: 0;
  font-size: calc(20px * var(--font-scale));
  font-weight: 600;
  color: var(--text-primary);
}
.host-unauth-page-subtitle-pc {
  margin: 0;
  font-size: var(--fs-body);
  color: var(--text-secondary);
  max-width: 320px;
  line-height: 1.6;
}

