/* ====== Overlay ====== */
.workspace-import-modal-overlay-pc {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--overlay-default);
}
/* ====== Panel ====== */
.workspace-import-modal-panel-pc {
  width: 90vw;
  max-width: 580px;
  background: var(--bg-default);
  border-radius: var(--radius-lg-val);
  border: 0.5px solid var(--border-default);
  box-shadow: var(--shadow-3);
  padding: var(--space-5);
  animation: workspace-import-modal-panel-in-pc 120ms ease-out;
}
@keyframes workspace-import-modal-panel-in-pc {
  from {
    opacity: 0;
    transform: scale(0.97);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
/* ====== Header ====== */
.workspace-import-modal-header-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0;
}
.workspace-import-modal-title-pc {
  margin: 0;
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: 1.4;
  color: var(--text-primary);
}
/* ====== 轮播价值主张 ====== */
.workspace-import-modal-carousel-pc {
  text-align: center;
  margin-top: var(--space-4);
}
.workspace-import-modal-carousel-track-pc {
  position: relative;
  height: 28px;
  overflow: hidden;
}
.workspace-import-modal-carousel-slide-pc {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-0-5);
  font-size: calc(20px * var(--font-scale));
  font-weight: 500;
  font-family: var(--font-family-heading);
  line-height: 28px;
  pointer-events: none;
}
.workspace-import-modal-carousel-main-pc {
  color: var(--text-primary);
}
.workspace-import-modal-carousel-dot-pc {
  color: var(--text-tertiary);
  margin: 0 var(--space-1);
}
.workspace-import-modal-carousel-accent-pc {
  color: var(--brand-light);
}
/* ====== 大虚线拖拽区 ====== */
.workspace-import-modal-dropzone-pc {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: var(--space-4);
  padding: var(--space-6) var(--space-5);
  border: 1.5px dashed var(--border-strong);
  border-radius: var(--radius-lg-val);
  background: transparent;
  cursor: pointer;
  transition: border-color 150ms ease, background-color 150ms ease;
}
.workspace-import-modal-dropzone-pc:hover {
  border-color: var(--brand);
}
/* 拖拽激活态 */
.workspace-import-modal-dropzone-active-pc {
  border-color: var(--brand);
  border-style: solid;
  background: var(--brand-subtle);
}
.workspace-import-modal-dropzone-active-pc:hover {
  border-color: var(--brand);
}
/* 云上传图标容器 */
.workspace-import-modal-dropzone-icon-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--brand);
  color: var(--text-allwhite);
  margin-bottom: var(--space-3);
}
.workspace-import-modal-dropzone-title-pc {
  font-size: var(--fs-caption);
  font-weight: 500;
  color: var(--text-primary);
  line-height: 1.4;
}
.workspace-import-modal-dropzone-subtitle-pc {
  margin-top: var(--space-1);
  font-size: var(--fs-small);
  color: var(--text-link);
}
.workspace-import-modal-dropzone-formats-pc {
  margin-top: var(--space-2);
  font-size: calc(11px * var(--font-scale));
  color: var(--text-tertiary);
  pointer-events: none;
}
/* ====== 其他导入方式 —— 3 列网格 ====== */
.workspace-import-modal-methods-pc {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-2);
  margin-top: var(--space-4);
}
.workspace-import-modal-method-card-pc {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-2);
  border: 0.5px solid var(--border-default);
  border-radius: var(--radius-md-val);
  background: transparent;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease;
}
.workspace-import-modal-method-card-pc svg {
  color: var(--icon-tertiary);
  flex-shrink: 0;
}
.workspace-import-modal-method-card-pc:hover {
  border-color: var(--border-strong);
  background: var(--bg-weak);
}
.workspace-import-modal-method-icon-pc {
  color: var(--icon-tertiary);
}
.workspace-import-modal-method-label-pc {
  font-size: var(--fs-small);
  color: var(--text-secondary);
  white-space: nowrap;
}
/* ====== Header 左侧（返回 + 标题） ====== */
.workspace-import-modal-header-left-pc {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}
/* ====== 链接剪藏二级页面 ====== */
.workspace-import-modal-clip-body-pc {
  margin-top: var(--space-5);
  padding: 0;
}
.workspace-import-modal-clip-desc-pc {
  margin: 0 0 var(--space-3);
  font-size: var(--fs-caption);
  color: var(--text-secondary);
  line-height: 1.6;
}
.workspace-import-modal-clip-input-pc {
  display: block;
  width: 100%;
  height: 100px;
  padding: var(--space-3);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md-val);
  background: var(--bg-weak);
  font-size: var(--fs-caption);
  color: var(--text-primary);
  outline: none;
  resize: none;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}
.workspace-import-modal-clip-input-pc::-webkit-input-placeholder {
  color: var(--text-quaternary);
}
.workspace-import-modal-clip-input-pc::placeholder {
  color: var(--text-quaternary);
}
.workspace-import-modal-clip-input-pc:focus {
  border-color: var(--border-focus);
  box-shadow: var(--shadow-1);
  background: var(--bg-default);
}
.workspace-import-modal-clip-hint-pc {
  margin: var(--space-2) 0 0;
  font-size: calc(11px * var(--font-scale));
  color: var(--text-tertiary);
  line-height: 1.5;
}
.workspace-import-modal-clip-footer-pc {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
  margin-top: var(--space-4);
}
/* ====== 表单字段（得到直播/腾讯会议） ====== */
.workspace-import-modal-field-pc {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-top: var(--space-2);
}
.workspace-import-modal-field-label-pc {
  font-size: var(--fs-caption);
  font-weight: 500;
  color: var(--text-primary);
  flex-shrink: 0;
}
.workspace-import-modal-field-input-pc {
  flex: 1;
  height: 36px;
  padding: 0 var(--space-3);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md-val);
  background: var(--bg-default);
  font-size: var(--fs-caption);
  color: var(--text-primary);
  outline: none;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}
.workspace-import-modal-field-input-pc::-webkit-input-placeholder {
  color: var(--text-quaternary);
}
.workspace-import-modal-field-input-pc::placeholder {
  color: var(--text-quaternary);
}
.workspace-import-modal-field-input-pc:focus {
  border-color: var(--border-focus);
  box-shadow: var(--shadow-1);
}
/* ====== 腾讯会议说明区 ====== */
.workspace-import-modal-meeting-desc-pc {
  padding: var(--space-3);
  margin-bottom: var(--space-4);
  background: var(--bg-weak);
  border-radius: var(--radius-md-val);
}
.workspace-import-modal-meeting-desc-pc p {
  margin: 0 0 var(--space-2);
  font-size: var(--fs-caption);
  color: var(--text-secondary);
  line-height: 1.6;
}
.workspace-import-modal-meeting-link-pc {
  font-size: var(--fs-caption);
  color: var(--text-link);
  text-decoration: none;
  font-weight: 500;
}
.workspace-import-modal-meeting-link-pc:hover {
  text-decoration: underline;
}
/* ====== 废弃但保留兼容（导入路径已移到标题） ====== */
.workspace-import-modal-target-pc,
.workspace-import-modal-target-text-pc,
.workspace-import-modal-target-segment-pc,
.workspace-import-modal-target-sep-pc,
.workspace-import-modal-target-emoji-pc,
.workspace-import-modal-target-label-pc {
  display: none;
}
/* ====== 响应式 ====== */
@media (max-width: 640px) {
  .workspace-import-modal-panel-pc {
    padding: var(--space-4);
  }
  .workspace-import-modal-methods-pc {
    grid-template-columns: 1fr;
  }
}

.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%;
}

/* SharePanel · PC styles
 * 全量使用设计系统 token，stylelint design-system/* 规则必须 0 错。
 */
.share-panel-overlay-pc {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: var(--overlay-default);
}
/* 垂直居中定位（空间成员管理等场景） */
.share-panel-universal-pc.share-panel-centered-pc {
  top: 50%;
  right: auto;
  left: 50%;
  transform: translate(-50%, -50%);
}
.share-panel-universal-pc {
  --share-panel-ardot-border: var(--border-default);
  --share-panel-ardot-panel-radius: 24px;
  --share-panel-ardot-row-radius: 12px;
  --share-panel-ardot-control-radius: 8px;
  --share-panel-ardot-tab-radius: 6px;
  --share-panel-ardot-close-radius: 2px;
  --share-panel-ardot-badge-radius: 3px;
  --share-panel-ardot-select-radius: 4px;
  --share-panel-ardot-select-width: 64px;
  --share-panel-ardot-select-pad-left: 6px;
  --share-panel-ardot-select-pad-right: 22px;
  --share-panel-ardot-select-chevron-top: 7px;
  --share-panel-ardot-select-chevron-right: 9px;
  --share-panel-ardot-shadow: 0 24px 48px 2px rgba(0, 0, 0, 0.08), 0 5px 12px 4px rgba(0, 0, 0, 0.08);
  --share-panel-ardot-tab-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
  --share-panel-ardot-spinner-track: var(--border-default);
  position: fixed;
  top: 72px;
  right: 56px;
  z-index: 1201;
  width: min(480px, calc(100vw - 32px));
  max-height: calc(100vh - 112px);
  overflow-y: auto;
  overscroll-behavior: contain;
  box-sizing: border-box;
  padding: 0;
  border: var(--border-width-thin) solid var(--share-panel-ardot-border);
  border-radius: var(--share-panel-ardot-panel-radius);
  background: var(--wb-color-bg-secondary-default);
  /* stylelint-disable-next-line design-system/no-hardcoded-box-shadow -- ArDot 分享面板为双层精确投影，现有 shadow token 无等价值 */
  box-shadow: var(--share-panel-ardot-shadow);
  color: var(--text-primary);
}
.share-panel-header-pc,
.share-panel-public-row-pc,
.share-panel-public-link-row-pc,
.share-panel-link-card-pc,
.share-panel-collaborator-pc {
  display: flex;
  align-items: center;
}
.share-panel-header-pc {
  height: 56px;
  box-sizing: border-box;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: 0;
  padding: 0 var(--space-6);
  border-bottom: 0;
}
.share-panel-header-pc h2 {
  margin: 0;
  font-size: var(--fs-16);
  font-weight: 600;
  line-height: 22px;
}
.share-panel-heading-row-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.share-panel-public-pill-pc {
  padding: var(--space-0-5) var(--space-2);
  border: var(--border-width-thin) solid var(--warning);
  border-radius: var(--radius-full);
  background: var(--warning-bg);
  color: var(--warning-text);
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 18px;
}
.share-panel-close-pc,
.share-panel-channel-pc,
.share-panel-tabs-pc button,
.share-panel-collaborator-entry-pc,
.share-panel-back-pc,
.share-panel-link-mode-pc,
.share-panel-qr-action-pc,
.share-panel-custom-domain-link-pc,
.share-panel-public-copy-btn-pc,
.share-panel-local-sync-action-pc,
.share-panel-invite-copy-btn-pc,
.share-panel-round-action-pc,
.share-panel-public-action-pc {
  border: 0;
  font: inherit;
  cursor: pointer;
}
.share-panel-close-pc {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: var(--wb-radius-150);
  background: transparent;
  color: var(--text-primary);
}
.share-panel-close-pc:hover {
  background: var(--wb-color-bg-primary-hover);
}
.share-panel-universal-pc button:focus-visible,
.share-panel-universal-pc select:focus-visible,
.share-panel-universal-pc input:focus-visible {
  outline: 2px solid var(--brand-tint);
  outline-offset: 0;
}
/* —— Tabs —————————— */
.share-panel-tabs-pc {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  height: 34px;
  margin: 0 var(--space-6) var(--space-4);
  padding: var(--space-0-5);
  border: 0;
  border-radius: var(--share-panel-ardot-control-radius);
  background: var(--wb-color-bg-primary-default);
  box-shadow: none;
}
.share-panel-tabs-pc button {
  min-width: 0;
  height: 30px;
  padding: 0 var(--space-4);
  border-radius: var(--share-panel-ardot-tab-radius);
  background: transparent;
  color: var(--text-secondary);
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: 22px;
}
.share-panel-tabs-pc button.is-active {
  background: var(--wb-color-message-bg);
  color: var(--text-primary);
  /* stylelint-disable-next-line design-system/no-hardcoded-box-shadow -- ArDot tab 选中态为 0 1px 4px / 5% 的精确投影 */
  box-shadow: var(--share-panel-ardot-tab-shadow);
}
.share-panel-tabs-pc button:hover:not(.is-active) {
  background: var(--fill-secondary);
}
.share-panel-section-pc {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
}
.share-panel-content-pc {
  padding: 0 var(--space-6) var(--space-6);
  overflow: hidden;
}
.share-panel-public-stack-pc {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  overflow: hidden;
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--share-panel-ardot-row-radius);
  background: var(--wb-color-bg-primary-default);
}
.share-panel-access-actions-pc {
  display: grid;
  gap: var(--space-4);
  min-width: 0;
}
.share-panel-access-leading-icon-pc {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  color: var(--icon-primary);
  flex: 0 0 24px;
}
.share-panel-access-leading-icon-pc svg {
  width: 20px;
  height: 20px;
}
.share-panel-access-leading-icon-pc.is-icon-eye svg,
.share-panel-access-leading-icon-pc.is-icon-user svg {
  width: 24px;
  height: 24px;
}
.share-panel-section-detail-pc {
  gap: var(--space-3);
}
.share-panel-access-actions-pc {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
}
.share-panel-action-card-pc {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
  padding: var(--space-4);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  transition: border-color 140ms ease, background 140ms ease;
}
.share-panel-action-card-pc.is-active {
  border-color: var(--brand-tint);
  background: var(--bg-default);
}
.share-panel-action-icon-pc {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-lg-val);
}
.share-panel-action-icon-invite-pc {
  background: var(--info-bg);
  color: var(--info-text);
}
.share-panel-action-icon-public-pc {
  background: var(--brand-subtle);
  color: var(--brand);
}
.share-panel-action-main-pc {
  display: grid;
  gap: var(--space-1);
  min-width: 0;
}
.share-panel-action-title-pc {
  color: var(--text-primary);
  font-size: var(--fs-16);
  font-weight: 650;
  line-height: 22px;
}
.share-panel-action-desc-pc {
  color: var(--text-tertiary);
  font-size: var(--fs-caption);
  line-height: 18px;
}
.share-panel-action-permission-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  width: 100%;
  max-width: 100%;
  margin-top: var(--space-1);
  overflow: hidden;
  color: var(--text-secondary);
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 20px;
  white-space: nowrap;
}
.share-panel-action-permission-select-pc {
  display: inline-flex;
  position: relative;
  width: var(--share-panel-ardot-select-width);
  height: 22px;
  flex: 0 0 var(--share-panel-ardot-select-width);
}
.share-panel-action-permission-select-pc::after {
  content: "";
  position: absolute;
  top: var(--share-panel-ardot-select-chevron-top, var(--space-2));
  right: var(--share-panel-ardot-select-chevron-right, var(--space-2));
  width: 6px;
  height: 6px;
  border-right: 1.5px solid var(--icon-primary);
  border-bottom: 1.5px solid var(--icon-primary);
  pointer-events: none;
  transform: rotate(45deg);
}
.share-panel-action-permission-pc select {
  width: 100%;
  max-width: var(--share-panel-ardot-select-width);
  height: 22px;
  padding: 0 var(--share-panel-ardot-select-pad-right) 0 var(--share-panel-ardot-select-pad-left);
  border: 0;
  border-radius: var(--share-panel-ardot-select-radius);
  -webkit-appearance: none;
          appearance: none;
  background: var(--fill-secondary);
  color: var(--text-primary);
  font: inherit;
  font-weight: 600;
}
.share-panel-action-buttons-pc {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-2);
  flex: 0 0 auto;
  flex-wrap: nowrap;
}
.share-panel-round-action-pc {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background: var(--fill-secondary);
  color: var(--icon-secondary);
  transition: background 120ms ease,
    color 120ms ease,
    transform 120ms ease;
}
.share-panel-round-action-pc:hover:not(:disabled) {
  background: var(--brand-subtle);
  color: var(--brand);
  transform: translateY(-1px);
}
.share-panel-round-action-pc:disabled {
  cursor: not-allowed;
  color: var(--text-quaternary);
  background: var(--fill-primary);
}
.share-panel-public-action-pc {
  height: 40px;
  padding: 0 var(--space-4);
  border: var(--border-width-thin) solid transparent;
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 650;
  white-space: nowrap;
}
.share-panel-public-action-pc:hover:not(:disabled) {
  border-color: var(--brand-tint);
  background: var(--fill-secondary);
  color: var(--brand);
}
.share-panel-public-action-pc.is-active {
  border-color: var(--brand-tint);
  background: var(--brand-subtle);
  color: var(--brand);
}
.share-panel-public-action-pc:disabled {
  cursor: not-allowed;
  background: var(--fill-primary);
  color: var(--text-quaternary);
}
/* —— 本地产物条件式提示 —————————— */
.share-panel-local-note-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border: var(--border-width-thin) solid var(--info);
  border-radius: var(--radius-2xl-val);
  background: var(--info-bg);
  color: var(--info-text);
  font-size: var(--fs-caption);
}
.share-panel-invite-copy-btn-pc {
  height: 32px;
  padding: 0 var(--space-3);
  border-radius: var(--radius-xl-val);
  font-weight: 600;
  background: var(--brand);
  color: var(--text-allwhite);
}
.share-panel-invite-copy-btn-pc:disabled,
.share-panel-custom-domain-link-pc:disabled,
.share-panel-public-copy-btn-pc:disabled {
  cursor: not-allowed;
  background: var(--fill-primary);
  color: var(--text-quaternary);
}
/* —— 接收者仅转发面板 —————————— */
.share-panel-recipient-only-pc {
  width: min(480px, calc(100vw - 32px));
}
.share-panel-recipient-only-pc .share-panel-header-pc {
  margin-bottom: 0;
}
.share-panel-recipient-artifact-pc {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  align-items: center;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
  padding: var(--space-4);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-xl-val);
  background: var(--bg-default);
  margin: 0 var(--space-6) var(--space-6);
}
.share-panel-recipient-icon-pc {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: var(--radius-lg-val);
  background: var(--fill-secondary);
  color: var(--brand);
}
.share-panel-recipient-icon-pc.type-pdf {
  color: var(--warning-text);
}
.share-panel-recipient-icon-pc.type-web,
.share-panel-recipient-icon-pc.type-html {
  color: var(--success-emphasis);
}
.share-panel-recipient-main-pc {
  display: grid;
  gap: var(--space-2);
  min-width: 0;
}
.share-panel-recipient-title-row-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.share-panel-recipient-title-pc {
  min-width: 0;
  overflow: hidden;
  color: var(--text-primary);
  font-size: var(--fs-16);
  font-weight: 650;
  line-height: 22px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.share-panel-recipient-badge-pc {
  flex: 0 0 auto;
  padding: var(--space-0-5) var(--space-2);
  border-radius: var(--radius-full);
  background: var(--success-bg);
  color: var(--success-emphasis);
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 18px;
}
.share-panel-recipient-desc-pc {
  color: var(--text-secondary);
  font-size: var(--fs-caption);
  line-height: 19px;
}
/* ─── DocumentInfoCard（管理者视角文档信息卡） ─── */
.share-panel-doc-info-pc {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: var(--space-3);
  margin: 0 var(--space-6) var(--space-4);
}
.share-panel-doc-info-icon-pc {
  display: grid;
  place-items: center;
  color: var(--text-primary);
}
.share-panel-doc-info-icon-pc.type-web,
.share-panel-doc-info-icon-pc.type-html {
  color: var(--text-primary);
}
.share-panel-doc-info-main-pc {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}
.share-panel-doc-info-title-pc {
  min-width: 0;
  overflow: hidden;
  color: var(--text-primary);
  font-size: calc(15px * var(--font-scale));
  font-weight: 650;
  line-height: 22px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.share-panel-doc-info-breadcrumb-pc {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  color: var(--text-tertiary);
  font-size: var(--fs-caption);
  line-height: 18px;
}
.share-panel-doc-info-breadcrumb-icon-pc {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 12px;
  height: 12px;
  color: var(--icon-tertiary);
}
.share-panel-doc-info-breadcrumb-icon-pc svg {
  width: 100%;
  height: 100%;
}
.share-panel-doc-info-breadcrumb-path-pc {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.share-panel-subtitle-pc {
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 650;
}
.share-panel-collaborators-pc {
  display: grid;
  gap: var(--space-2);
  max-height: min(312px, 34vh);
  overflow-y: auto;
  padding-right: var(--space-1);
  overscroll-behavior: contain;
}
.share-panel-collaborator-entry-pc {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
  min-height: 56px;
  padding: var(--space-3) 0;
  border-bottom: var(--border-width-thin) solid var(--divider);
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.share-panel-collaborator-entry-pc:hover {
  color: var(--brand);
}
.share-panel-avatar-stack-pc {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}
.share-panel-avatar-stack-item-pc {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  margin-left: -8px;
  border: var(--border-width-thin) solid var(--bg-default);
  border-radius: var(--radius-2xl-val);
  color: var(--text-allwhite);
  font-size: var(--fs-caption);
  font-weight: 700;
}
.share-panel-avatar-stack-item-pc:first-child {
  margin-left: 0;
}
.share-panel-collaborator-entry-main-pc {
  display: grid;
  gap: var(--space-0-5);
  flex: 1;
  min-width: 0;
}
.share-panel-collaborator-entry-title-pc {
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 650;
}
.share-panel-collaborator-entry-meta-pc,
.share-panel-detail-meta-pc {
  color: var(--text-tertiary);
  font-size: var(--fs-small);
}
.share-panel-entry-chevron-pc {
  color: var(--text-tertiary);
  font-size: calc(18px * var(--font-scale));
}
.share-panel-detail-header-pc {
  display: grid;
  grid-template-columns: minmax(72px, 96px) minmax(0, 1fr) 32px;
  align-items: center;
  gap: var(--space-3);
  min-height: 56px;
  margin: -4px -24px var(--space-1);
  padding: 0 var(--space-6) var(--space-4);
  border-bottom: var(--border-width-thin) solid var(--divider);
}
.share-panel-back-pc {
  justify-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  height: 32px;
  padding: 0 var(--space-2);
  border-radius: var(--radius-lg-val);
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
}
.share-panel-back-pc:hover {
  background: var(--fill-secondary);
  color: var(--brand);
}
.share-panel-detail-title-pc {
  display: grid;
  justify-items: center;
  gap: var(--space-0-5);
  min-width: 0;
  text-align: center;
}
.share-panel-section-detail-pc .share-panel-subtitle-pc {
  font-size: var(--fs-16);
}
.share-panel-section-detail-pc .share-panel-collaborators-pc {
  max-height: min(520px, calc(100vh - 220px));
}
.share-panel-online-doc-pc {
  display: grid;
  gap: var(--space-4);
  min-width: 0;
}
/* —— 访问权限（获得链接的人） —————————— */
.share-panel-online-doc-access-pc {
  display: grid;
  gap: 0;
  min-width: 0;
}
.share-panel-online-doc-access-row-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-width: 0;
  min-height: 36px;
  width: 100%;
  padding: var(--space-1) var(--space-3);
  border: 0;
  border-radius: var(--share-panel-ardot-control-radius);
  background: var(--wb-color-bg-primary-default);
  color: var(--text-secondary);
  font: inherit;
  font-size: var(--fs-body);
  text-align: left;
  cursor: pointer;
}
.share-panel-online-doc-access-row-pc:disabled {
  cursor: not-allowed;
}
.share-panel-online-doc-access-row-pc:hover {
  background: var(--wb-color-bg-primary-hover);
}
.share-panel-online-doc-access-label-pc {
  min-width: 0;
  overflow: hidden;
  color: var(--text-secondary);
  font-size: var(--fs-body);
  line-height: 22px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.share-panel-online-doc-access-value-trigger-pc {
  display: inline-flex;
  align-items: center;
  flex-shrink: 1;
  min-width: 0;
  max-width: 65%;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}
.share-panel-online-doc-access-value-trigger-pc:disabled {
  cursor: not-allowed;
}
.share-panel-online-doc-access-value-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  color: var(--text-secondary);
  font-size: var(--fs-body);
  line-height: calc(22px * var(--font-scale));
}
.share-panel-online-doc-access-value-pc .icon {
  color: var(--icon-primary);
}
.share-panel-online-doc-access-value-text-pc {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.share-panel-online-doc-access-dropdown-pc {
  /* 同上：底座默认把宽度锁成触发器宽度，这里改为按内容自适应 */
  width: auto;
  min-width: 110px;
  max-width: 260px;
  padding: var(--space-1);
  border: 0.5px solid var(--popover-border-color);
  border-radius: var(--radius-lg-val);
  background: var(--bg-popover);
  box-shadow: var(--shadow-3);
}
.share-panel-online-doc-access-dropdown-pc [data-slot="dropdown-menu-item"] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  white-space: nowrap;
  padding: var(--space-2);
  border-radius: var(--radius-md-val);
  color: var(--text-primary);
  font-size: var(--fs-small);
  font-weight: 500;
  line-height: 18px;
  transition: background-color 120ms ease;
}
.share-panel-online-doc-access-dropdown-pc [data-slot="dropdown-menu-item"]:hover,
.share-panel-online-doc-access-dropdown-pc [data-slot="dropdown-menu-item"]:focus {
  background: var(--wb-color-bg-primary-hover);
  outline: none;
}
.share-panel-online-doc-access-dropdown-pc [data-slot="dropdown-menu-item"][data-selected] {
  color: var(--text-primary);
}
.share-panel-online-doc-access-dropdown-pc [data-slot="dropdown-menu-item"] .icon {
  color: var(--icon-primary);
}
/* —— 访问范围（组织内 / 公开）切换器 —————————— */
.share-panel-online-doc-access-scope-trigger-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  min-width: 0;
  max-width: 60%;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-secondary);
  font: inherit;
  font-size: var(--fs-body);
  line-height: 22px;
  text-align: left;
  cursor: pointer;
}
.share-panel-online-doc-access-scope-trigger-pc:disabled {
  cursor: not-allowed;
}
.share-panel-online-doc-access-scope-trigger-pc .share-panel-online-doc-access-label-pc {
  color: inherit;
}
.share-panel-online-doc-access-scope-trigger-pc .icon {
  color: var(--icon-secondary);
}
.share-panel-online-doc-access-scope-dropdown-pc {
  /* 底座 DropdownMenuContent 默认把宽度锁成触发器宽度
     （w-(--radix-dropdown-menu-trigger-width)），而触发器本身很窄
     （max-width:60% + 图标），会把长文案选项挤到折行，这里改为按内容自适应 */
  width: auto;
  min-width: 200px;
  max-width: 320px;
  padding: var(--space-1);
  border: 0.5px solid var(--popover-border-color);
  border-radius: var(--radius-lg-val);
  background: var(--bg-popover);
  box-shadow: var(--shadow-3);
}
.share-panel-online-doc-access-scope-dropdown-pc [data-slot="dropdown-menu-item"] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: var(--space-2);
  border-radius: var(--radius-md-val);
  color: var(--text-primary);
  font-size: var(--fs-small);
  font-weight: 500;
  line-height: 18px;
  transition: background-color 120ms ease;
}
.share-panel-online-doc-access-scope-dropdown-pc [data-slot="dropdown-menu-item"] > span {
  white-space: nowrap;
}
.share-panel-online-doc-access-scope-dropdown-pc [data-slot="dropdown-menu-item"]:hover,
.share-panel-online-doc-access-scope-dropdown-pc [data-slot="dropdown-menu-item"]:focus {
  background: var(--fill-secondary);
  outline: none;
}
.share-panel-online-doc-access-scope-dropdown-pc [data-slot="dropdown-menu-item"][data-selected] {
  color: var(--text-primary);
}
.share-panel-online-doc-access-scope-dropdown-pc [data-slot="dropdown-menu-item"] .icon {
  color: var(--icon-primary);
}
/* —— 协作成员摘要行（一级视图入口） —————————— */
.share-panel-collaborators-summary-wrap-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.share-panel-collaborators-summary-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 1 1 auto;
  min-width: 0;
  gap: var(--space-3);
  /* stylelint-disable-next-line design-system/spacing-4px-multiple */
  padding: var(--space-1-5) var(--space-3);
  height: 36px;
  border-radius: var(--share-panel-ardot-control-radius);
  background: var(--wb-color-bg-primary-default);
  color: var(--text-primary);
  font-size: var(--fs-body);
  cursor: pointer;
}
.share-panel-collaborators-summary-pc:hover {
  background: var(--wb-color-bg-primary-hover);
}
.share-panel-collaborators-summary-pc:focus-visible {
  outline: 2px solid var(--brand-tint);
  outline-offset: 0;
}
.share-panel-collaborators-summary-avatars-pc {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}
.share-panel-collaborators-summary-avatar-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: -8px;
  border-radius: var(--radius-full);
  background: var(--bg-default);
}
.share-panel-collaborators-summary-avatar-pc:first-child {
  margin-left: 0;
}
.share-panel-collaborators-summary-meta-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--text-secondary);
  font-size: var(--fs-caption);
  line-height: 20px;
}
.share-panel-collaborators-summary-count-pc {
  font-weight: 500;
}
.share-panel-collaborators-summary-chevron-pc {
  color: var(--text-tertiary);
}
/* —— 协作成员二级页 —————————— */
.share-panel-collaborators-page-pc {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
}
/* —— 返回按钮：仅图标，方形 hover 态 —————————— */
.share-panel-back-btn-icon-only-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  margin-left: -8px;
  border: 0;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--icon-primary);
  cursor: pointer;
  transition: background 140ms ease;
  flex-shrink: 0;
}
.share-panel-back-btn-icon-only-pc:hover {
  background: var(--fill-secondary);
}
.share-panel-back-btn-icon-only-pc:focus-visible {
  outline: 2px solid var(--brand-tint);
  outline-offset: 0;
}
/* —— 协作成员标题：纯展示文字 —————————— */
.share-panel-collaborators-title-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1-5);
  font-size: var(--fs-16);
  font-weight: 600;
  line-height: 22px;
  color: var(--text-primary);
}
.share-panel-collaborators-page-meta-pc {
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  line-height: 20px;
}
.share-panel-collaborators-page-pc .share-panel-online-doc-collab-list-pc {
  max-height: min(520px, calc(100vh - 240px));
}
.share-panel-online-doc-collab-pc,
.share-panel-online-doc-link-pc,
.share-panel-online-doc-public-pc {
  min-width: 0;
  min-height: 64px;
  padding: var(--space-3) var(--space-4);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--share-panel-ardot-row-radius);
  box-sizing: border-box;
}
.share-panel-online-doc-collab-pc {
  display: grid;
  gap: 0;
  max-height: 280px;
  padding: 0;
  border: 0;
  border-radius: 0;
}
.share-panel-online-doc-title-pc {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 22px;
}
/* 协作成员标题旁的小 i 信息图标：纯展示（hover 触发 Tooltip），非可点击操作，
 * cursor 保持默认箭头，避免 help(?)/pointer 误导用户以为可点。 */
.share-panel-collab-info-icon-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--icon-tertiary);
  cursor: default;
  transition: color 150ms ease;
}
.share-panel-collab-info-icon-pc:hover {
  color: var(--icon-secondary);
}
.share-panel-online-doc-collab-pc > .share-panel-online-doc-title-pc,
.share-panel-online-doc-access-pc > .share-panel-online-doc-title-pc {
  height: 36px;
  padding: var(--space-2) 0;
  box-sizing: border-box;
  color: var(--text-secondary);
  font-weight: 400;
  line-height: 20px;
}
.share-panel-online-doc-collab-list-pc {
  min-width: 0;
  max-height: 244px;
  overflow-y: auto;
  border-radius: var(--radius-2xl-val);
  box-sizing: border-box;
}
.share-panel-online-doc-link-pc.is-active,
.share-panel-online-doc-public-pc.is-active {
  border-color: var(--border-default);
}
.share-panel-online-doc-collab-list-pc .share-panel-collaborators-pc {
  gap: 0;
  max-height: none;
  overflow-y: visible;
  padding-right: 0;
}
.share-panel-collaborators-limit-tip-pc {
  padding: var(--space-2) 0 var(--space-1);
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  line-height: 18px;
  text-align: center;
}
.share-panel-online-doc-collab-list-pc .share-panel-collaborator-pc {
  min-height: 38px;
  padding: var(--share-panel-ardot-collab-pad-y, var(--space-1-5)) 0;
  border-bottom: 0;
}
.share-panel-online-doc-collab-list-pc .share-panel-collaborator-pc:last-child {
  border-bottom: 0;
}
.share-panel-online-doc-collab-list-pc .share-panel-avatar-pc {
  width: 28px;
  height: 28px;
  font-size: var(--fs-caption);
}
.share-panel-online-doc-collab-list-pc .share-panel-collaborator-name-pc {
  font-size: var(--fs-caption);
  line-height: 18px;
}
.share-panel-online-doc-collab-list-pc .share-panel-collaborator-desc-pc {
  display: none;
}
.share-panel-online-doc-collab-list-pc .share-panel-collaborator-pc select {
  height: 28px;
  padding: 0 var(--space-5) 0 var(--space-2);
  font-size: var(--fs-caption);
}
.share-panel-online-doc-collab-list-pc .share-panel-permission-text-pc,
.share-panel-online-doc-collab-list-pc .share-panel-permission-select-trigger-pc {
  width: auto;
  min-width: auto;
  height: 28px;
  font-size: var(--fs-caption);
  justify-content: space-between;
}
/* 纯文本权限：右侧 padding 比触发器多 4px（补偿触发器 span 的 margin-right），
   使文案左边缘与触发器文案视觉对齐 */
.share-panel-online-doc-collab-list-pc .share-panel-permission-text-pc {
  padding-right: var(--space-6);
}
.share-panel-online-doc-link-pc {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-3);
}
.share-panel-online-doc-link-main-pc {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}
.share-panel-online-doc-link-permission-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  width: -webkit-max-content;
  width: max-content;
  max-width: 100%;
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  font-weight: 400;
  line-height: 20px;
}
/* link 内嵌套 permission-select 独立样式 */
.share-panel-online-doc-link-permission-pc .share-panel-action-permission-select-pc select {
  width: var(--share-panel-ardot-select-width);
  height: 22px;
  padding: 0 var(--share-panel-ardot-select-pad-right) 0 var(--share-panel-ardot-select-pad-left);
  border: 0;
  border-radius: var(--share-panel-ardot-select-radius);
  -webkit-appearance: none;
          appearance: none;
  background: var(--fill-secondary);
  color: var(--text-primary);
  font: inherit;
  font-weight: 600;
}
.share-panel-online-doc-copy-strong-pc {
  width: 108px;
  height: 32px;
  padding: 0 var(--space-3);
  border: 0;
  border-radius: var(--radius-full);
  background: var(--fill-secondary);
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 500;
  line-height: 22px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 120ms ease,
    transform 120ms ease;
}
.share-panel-online-doc-copy-strong-pc:hover:not(:disabled) {
  background: var(--fill-primary);
  transform: none;
}
.share-panel-online-doc-copy-strong-pc:disabled {
  cursor: not-allowed;
  background: var(--fill-primary);
  color: var(--text-quaternary);
}
.share-panel-online-doc-public-pc {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-3);
}
.share-panel-online-doc-public-main-pc {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}
.share-panel-online-doc-desc-pc {
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  line-height: 20px;
}
.share-panel-online-doc-public-actions-pc {
  display: inline-flex;
  align-items: center;
  min-width: -webkit-max-content;
  min-width: max-content;
}
.share-panel-online-doc-divider-pc {
  width: 1px;
  height: 28px;
  background: var(--divider);
}
.share-panel-online-doc-copy-pc {
  height: 32px;
  padding: 0 var(--space-2);
  border: 0;
  border-radius: var(--radius-lg-val);
  background: transparent;
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 650;
  cursor: pointer;
}
.share-panel-online-doc-copy-pc:hover {
  background: var(--fill-secondary);
  color: var(--brand);
}
.share-panel-online-doc-copy-pc:disabled {
  cursor: not-allowed;
  color: var(--text-quaternary);
}
.share-panel-collaborator-pc {
  min-width: 0;
  gap: var(--space-3);
  min-height: 48px;
}
.share-panel-avatar-pc {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: var(--radius-2xl-val);
  color: var(--text-allwhite);
  font-size: calc(15px * var(--font-scale));
  font-weight: 700;
  flex: 0 0 auto;
}
.share-panel-collaborator-main-pc {
  min-width: 0;
  flex: 1;
}
.share-panel-collaborator-name-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  font-size: var(--fs-body);
  font-weight: 600;
}
.share-panel-collaborator-name-text-pc {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.share-panel-badge-pc {
  padding: var(--space-0-5) var(--space-2);
  border-radius: var(--radius-md-val);
  background: var(--fill-primary);
  color: var(--text-secondary);
  font-size: var(--fs-small);
  flex-shrink: 0;
}
/* 当前用户 "我" 标记：灰色背景，与右侧权限文案同色 */
.share-panel-badge-pc[data-badge-me] {
  /* stylelint-disable-next-line design-system/spacing-4px-multiple */
  padding: var(--space-0-5) var(--space-1-5);
  background: var(--fill-primary);
  color: var(--text-secondary);
  font-size: var(--fs-small);
  border-radius: var(--radius-md-val);
}
.share-panel-badge-pc.share-panel-badge-link-pc {
  background: var(--info-bg);
  color: var(--info-text);
}
/* 所有者标记：绿色圆角标签，紧贴姓名右侧展示 */
.share-panel-badge-pc.share-panel-badge-owner-pc {
  background: var(--success-bg);
  color: var(--success-emphasis);
}
.share-panel-collaborator-desc-pc {
  color: var(--text-tertiary);
  font-size: var(--fs-small);
}
.share-panel-collaborator-pc select,
.share-panel-link-card-pc select {
  width: 88px;
  min-width: 88px;
  text-align: left;
  text-align-last: left;
  height: 32px;
  border: 0;
  color: var(--text-secondary);
  background: transparent;
  font: inherit;
}
.share-panel-permission-text-pc {
  display: inline-block;
  width: 88px;
  min-width: 88px;
  height: 32px;
  line-height: 32px;
  padding: 0 var(--space-5) 0 var(--space-2);
  box-sizing: border-box;
  text-align: left;
  color: var(--text-secondary);
  font-size: var(--fs-caption);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  vertical-align: middle;
}
/* 权限下拉触发器：文本 + 箭头图标 */
.share-panel-permission-select-trigger-pc {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: 88px;
  min-width: 88px;
  height: 32px;
  line-height: 32px;
  padding: 0 var(--space-2) 0 var(--space-2);
  box-sizing: border-box;
  border: none;
  /* 重置 button 默认边框 */
  margin: 0;
  /* 重置 button 默认 margin */
  background: transparent;
  color: var(--text-secondary);
  font-size: var(--fs-caption);
  font-family: inherit;
  /* 重置 button 默认字体 */
  cursor: pointer;
  border-radius: var(--radius-md-val);
  transition: background-color 150ms ease;
  /* 箭头固定在右内侧 */
}
.share-panel-permission-select-trigger-pc:hover {
  background: var(--fill-primary);
}
.share-panel-permission-select-trigger-pc > span {
  /* 文字左对齐 */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-right: var(--space-1);
}
.share-panel-permission-select-trigger-pc .icon {
  position: absolute;
  right: var(--space-1);
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-quaternary);
  pointer-events: none;
}
/* 权限下拉弹出层 */
.share-panel-permission-dropdown-pc {
  min-width: 96px;
  width: auto;
  padding: var(--space-1);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  border: var(--border-width-thin) solid var(--border-default);
  box-shadow: var(--shadow-level-3);
}
.share-panel-permission-dropdown-pc [data-slot="dropdown-menu-item"] {
  padding: var(--space-2) var(--space-3);
  font-size: var(--fs-caption);
  line-height: 20px;
  color: var(--text-primary);
  font-weight: 500;
  border-radius: var(--radius-md-val);
  transition: all 120ms ease;
}
.share-panel-permission-dropdown-pc [data-slot="dropdown-menu-item"]:hover,
.share-panel-permission-dropdown-pc [data-slot="dropdown-menu-item"]:focus {
  background: var(--fill-primary);
  color: var(--text-primary);
  outline: none;
}
.share-panel-permission-dropdown-pc [data-slot="dropdown-menu-item"][data-disabled] {
  color: var(--text-quaternary);
  pointer-events: none;
}
.share-panel-link-card-pc {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding: var(--space-3) 0 0;
  border-top: var(--border-width-thin) solid var(--divider);
}
.share-panel-link-share-card-pc {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
  max-width: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.share-panel-link-share-head-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}
.share-panel-link-modes-pc {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2);
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.share-panel-link-mode-pc {
  box-sizing: border-box;
  display: grid;
  gap: var(--space-1);
  min-width: 0;
  min-height: 64px;
  padding: var(--space-3);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  color: var(--text-secondary);
  text-align: left;
}
.share-panel-link-mode-pc:hover:not(:disabled) {
  border-color: var(--brand-tint);
  background: var(--brand-subtle);
}
.share-panel-link-mode-pc.is-active {
  border-color: var(--brand);
  background: var(--brand-subtle);
  color: var(--brand);
}
.share-panel-link-mode-pc[aria-current="true"] {
  cursor: default;
}
.share-panel-link-mode-pc:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.share-panel-link-mode-title-pc {
  min-width: 0;
  color: var(--text-primary);
  font-size: var(--fs-caption);
  font-weight: 650;
  line-height: 18px;
  overflow-wrap: anywhere;
}
.share-panel-link-mode-pc.is-active .share-panel-link-mode-title-pc {
  color: var(--brand);
}
.share-panel-link-mode-desc-pc {
  min-width: 0;
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  line-height: 17px;
  overflow-wrap: anywhere;
}
.share-panel-link-share-card-pc .share-panel-link-card-pc {
  padding-top: 0;
  border-top: 0;
}
.share-panel-link-single-pc {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}
.share-panel-link-single-pc .share-panel-link-card-pc {
  padding-top: 0;
  border-top: 0;
}
.share-panel-link-title-row-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  flex-wrap: wrap;
}
.share-panel-link-title-row-pc select {
  flex: 0 0 auto;
  height: 32px;
  padding: 0 var(--space-8) 0 var(--space-3);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  color: var(--text-primary);
  font: inherit;
  font-weight: 600;
}
.share-panel-invite-link-row-pc {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
}
.share-panel-invite-link-row-pc .share-panel-url-pc {
  padding-right: var(--space-3);
}
.share-panel-invite-copy-btn-pc {
  flex: 0 0 auto;
  height: 40px;
  padding: 0 var(--space-5);
  border-radius: var(--radius-lg-val);
  white-space: nowrap;
}
.share-panel-permission-suffix-pc {
  flex: 0 0 auto;
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 650;
}
/* —— 公开卡片容器 —————————— */
.share-panel-public-stack-pc .share-panel-public-row-pc {
  border: 0;
  border-radius: 0;
  background: transparent;
}
.share-panel-public-stack-pc.is-ready .share-panel-public-row-pc {
  padding-bottom: var(--space-2);
}
.share-panel-public-row-pc {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-3);
  height: 64px;
  min-height: 64px;
  padding: var(--space-3) var(--space-4);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-sizing: border-box;
}
.share-panel-public-row-pc {
  cursor: pointer;
}
.share-panel-public-main-pc {
  display: grid;
  gap: 0;
  min-width: 0;
}
.share-panel-public-title-pc {
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: 24px;
}
.share-panel-public-desc-pc {
  margin-top: 0;
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  line-height: 20px;
}
/* —— 开关 —————————— */
.share-panel-switch-pc {
  position: relative;
  width: 26px;
  height: 16px;
  flex: 0 0 auto;
  margin-top: 1px;
}
.share-panel-switch-pc input {
  position: absolute;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.share-panel-switch-pc-track {
  position: absolute;
  inset: 0;
  border-radius: var(--radius-full);
  background: var(--wb-button-bg-grey-hover);
  transition: background 140ms ease;
  pointer-events: none;
}
.share-panel-switch-pc-track::after {
  content: "";
  position: absolute;
  top: var(--space-0-5);
  left: var(--space-0-5);
  width: 12px;
  height: 12px;
  border-radius: var(--radius-full);
  background: var(--switch-thumb-bg);
  transition: transform 140ms ease;
  box-shadow: var(--shadow-1);
}
.share-panel-switch-pc input:checked ~ .share-panel-switch-pc-track {
  background: var(--switch-active-bg);
}
.share-panel-switch-pc input:checked ~ .share-panel-switch-pc-track::after {
  transform: translateX(10px);
}
.share-panel-switch-pc input:disabled ~ .share-panel-switch-pc-track {
  cursor: not-allowed;
  opacity: 0.5;
}
/* —— 公共 URL 与自定义域名入口 —————————— */
.share-panel-public-link-card-pc {
  display: block;
}
/* public-stack 内部 link-card 覆盖 */
.share-panel-public-stack-pc .share-panel-public-link-card-pc {
  height: 32px;
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- ArDot 公开卡片外框为 108px，含 1px 边框时底部间距需为 10px */
  margin: 0 var(--space-4) 10px;
  padding: 0;
}
/* 「同步至在线版本」行：本地已修改但未同步时展示 */
.share-panel-public-sync-row-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin: 0 var(--space-4) var(--space-3);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md-val);
  background: var(--warning-bg);
}
.share-panel-public-sync-info-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  color: var(--warning-text);
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 20px;
}
.share-panel-public-sync-info-pc > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.share-panel-public-sync-btn-pc {
  flex: none;
  height: 28px;
  padding: 0 var(--space-4);
  border: 0;
  border-radius: var(--radius-full);
  background: var(--brand);
  color: var(--text-allwhite);
  font-size: var(--fs-small);
  line-height: 28px;
  white-space: nowrap;
  cursor: pointer;
  transition: background 150ms ease;
}
.share-panel-public-sync-btn-pc:hover:not(:disabled) {
  background: var(--brand-hover);
}
.share-panel-public-sync-btn-pc:disabled {
  cursor: not-allowed;
  opacity: 0.6;
}
.share-panel-vip-badge-pc {
  padding: 0 var(--space-1);
  border-radius: var(--radius-sm-val);
  background: var(--warning-bg);
  color: var(--warning-text);
  font-size: calc(11px * var(--font-scale));
  font-weight: 700;
  line-height: 16px;
}
.share-panel-public-link-row-pc {
  position: relative;
  display: block;
  height: 32px;
  max-width: 100%;
}
.share-panel-url-pc {
  display: flex;
  align-items: center;
  height: 32px;
  min-width: 0;
  overflow: hidden;
  padding: 0 var(--space-10) 0 var(--space-3);
  border: 0;
  border-radius: var(--share-panel-ardot-control-radius);
  background: var(--fill-secondary);
  color: var(--text-secondary);
  font-size: var(--fs-small);
  line-height: 20px;
  white-space: nowrap;
}
.share-panel-url-pc > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.share-panel-url-pc.is-disabled {
  background: var(--fill-secondary);
  color: var(--text-quaternary);
}
.share-panel-public-copy-btn-pc {
  position: absolute;
  top: 50%;
  right: var(--space-2);
  display: inline-grid;
  place-items: center;
  width: 16px;
  min-width: 16px;
  height: 16px;
  padding: 0;
  border-radius: var(--share-panel-ardot-tab-radius);
  background: transparent;
  color: var(--text-tertiary);
  transform: translateY(-50%);
}
.share-panel-public-copy-btn-pc svg {
  width: 16px;
  height: 16px;
}
.share-panel-public-copy-btn-pc:hover:not(:disabled) {
  background: transparent;
  color: var(--text-primary);
}
.share-panel-domain-editor-pc {
  gap: 0;
  color: var(--text-primary);
}
.share-panel-domain-editor-pc input {
  min-width: 80px;
  border: 0;
  outline: none;
  background: transparent;
  color: var(--text-primary);
  font: inherit;
}
.share-panel-domain-editor-pc input:disabled {
  color: var(--text-quaternary);
}
.share-panel-domain-prefix-pc,
.share-panel-domain-suffix-pc {
  flex: 0 0 auto;
  color: var(--text-tertiary);
}
.share-panel-custom-domain-link-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  width: -webkit-max-content;
  width: max-content;
  min-height: 28px;
  margin-top: var(--space-0-5);
  padding: 0 var(--space-0-5);
  background: transparent;
  color: var(--info-text);
  font-size: var(--fs-body);
  font-weight: 650;
}
.share-panel-custom-domain-link-pc:hover:not(:disabled) {
  color: var(--brand);
}
.share-panel-custom-domain-link-pc:disabled {
  background: transparent;
}
.share-panel-settings-grid-pc > div {
  padding: var(--space-3);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-2xl-val);
  background: var(--bg-weak);
}
.share-panel-settings-grid-pc span {
  color: var(--text-tertiary);
  font-size: var(--fs-small);
}
.share-panel-settings-grid-pc strong {
  color: var(--text-primary);
  font-size: var(--fs-caption);
}
.share-panel-settings-grid-pc {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-2);
}
.share-panel-settings-grid-pc > div {
  display: grid;
  gap: var(--space-1);
}
/* —— 高级设置（可折叠） —————————— */
.share-panel-advanced-pc summary {
  cursor: pointer;
  padding: var(--space-2) 0;
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  font-weight: 600;
  list-style: none;
}
.share-panel-advanced-pc summary::-webkit-details-marker {
  display: none;
}
.share-panel-advanced-pc summary::before {
  content: "▸ ";
  display: inline-block;
  margin-right: var(--space-1);
  transition: transform 140ms ease;
}
.share-panel-advanced-pc[open] summary::before {
  transform: rotate(90deg);
}
.share-panel-advanced-pc[open] summary {
  margin-bottom: var(--space-2);
}
/* —— 底部转发区 —————————— */
.share-panel-forward-pc {
  display: grid;
  gap: 0;
  margin: 0;
  box-sizing: border-box;
  padding: var(--space-5) var(--space-6) var(--space-6) var(--space-6);
  border: 0;
  border-top: var(--border-width-thin) solid var(--divider);
  border-radius: 0 0 var(--share-panel-ardot-panel-radius) var(--share-panel-ardot-panel-radius);
}
.share-panel-forward-title-pc {
  /* DESIGN_FALLBACK: 原"分享到"标题文案已移除，保留类名以兼容历史节点 */
  display: none;
  margin-bottom: var(--space-2);
  color: var(--text-secondary);
  font-weight: 400;
  line-height: 20px;
}
.share-panel-forward-heading-pc {
  display: none;
  color: var(--text-primary);
  font-size: calc(15px * var(--font-scale));
  font-weight: 600;
  line-height: 22px;
}
.share-panel-channels-pc {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
  justify-content: flex-start;
}
.share-panel-forward-row-pc + .share-panel-forward-row-pc {
  padding-top: var(--space-1);
}
.share-panel-channel-pc {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  padding: 0;
  background: transparent;
  color: var(--text-secondary);
  font-size: var(--fs-small);
  line-height: 16px;
  white-space: nowrap;
}
.share-panel-channel-pc:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}
/* —— 复制链接胶囊按钮（图标 + 始终可见文字） —————————— */
.share-panel-channel-pill-pc {
  height: 30px;
  padding: 0 var(--space-3);
  border-radius: var(--radius-full);
  border: var(--border-width-thin) solid transparent;
  background: var(--wb-color-bg-primary-default);
  color: var(--text-primary);
  font-size: var(--fs-caption);
  line-height: 18px;
  transition: border-color 120ms ease, background 120ms ease;
}
.share-panel-channel-pill-pc:hover:not(:disabled) {
  background: var(--wb-color-bg-primary-hover);
  border-color: var(--wb-color-border-focus);
}
.share-panel-channel-pill-label-pc {
  display: inline-block;
}
/* —— 圆形渠道按钮（30×30，文字通过 Tooltip hover 展示） —————————— */
.share-panel-channel-round-pc {
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: var(--radius-full);
  background: var(--wb-color-bg-primary-default);
  color: var(--text-primary);
  transition: background 120ms ease,
    transform 120ms ease;
}
.share-panel-channel-round-pc:hover:not(:disabled) {
  background: var(--wb-color-bg-primary-hover);
}
.share-panel-channel-icon-pc {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text-primary);
  font-size: calc(18px * var(--font-scale));
  font-weight: 700;
  transition: none;
}
.share-panel-channel-pill-pc .share-panel-channel-icon-pc {
  width: 18px;
  height: 18px;
  font-size: calc(18px * var(--font-scale));
}
.share-panel-channel-icon-pc.is-wechat {
  color: var(--text-primary);
}
.share-panel-channel-svg-pc {
  display: block;
  width: 18px;
  height: 18px;
}
.share-panel-channel-round-pc .share-panel-channel-svg-pc {
  width: 30px;
  height: 30px;
}
.share-panel-channel-icon-pc.is-moments {
  color: var(--text-primary);
}
.share-panel-channel-icon-pc.is-qrcode,
.share-panel-channel-icon-pc.is-copy,
.share-panel-channel-icon-pc.is-browser {
  font-size: calc(21px * var(--font-scale));
  color: var(--text-primary);
}
.share-panel-channel-hint-pc {
  color: var(--text-tertiary);
  font-size: calc(11px * var(--font-scale));
  line-height: 14px;
}
/* 渠道按钮 loading spinner（微信唤起 / 二维码生成中） */
.share-panel-channel-icon-pc.is-loading {
  background: transparent;
}
.share-panel-channel-spinner-pc {
  display: block;
  width: 16px;
  height: 16px;
  border: 2px solid var(--fill-secondary);
  border-top-color: var(--brand);
  border-radius: var(--radius-full);
  animation: share-channel-spin 700ms linear infinite;
}
@keyframes share-channel-spin {
  to {
    transform: rotate(360deg);
  }
}
.share-panel-forward-feedback-pc {
  color: var(--error-text);
  font-size: var(--fs-small);
  line-height: 18px;
}
.share-panel-qr-pc {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-3);
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: var(--border-width-thin) solid var(--divider);
}
.share-panel-qr-pc.is-generated {
  grid-template-columns: 104px minmax(0, 1fr) auto;
}
.share-panel-qr-preview-pc {
  display: grid;
  place-items: center;
  width: 104px;
  height: 104px;
  padding: var(--space-2);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  color: var(--brand);
  font-size: var(--fs-small);
  font-weight: 650;
}
.share-panel-qr-preview-pc.is-generated {
  border-color: var(--brand-tint);
}
.share-panel-qr-image-pc {
  display: block;
  width: 100%;
  height: 100%;
}
.share-panel-qr-main-pc {
  display: grid;
  gap: var(--space-0-5);
  min-width: 0;
}
.share-panel-qr-title-pc {
  color: var(--text-primary);
  font-size: var(--fs-caption);
  font-weight: 650;
}
.share-panel-qr-desc-pc {
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  line-height: 17px;
}
.share-panel-qr-actions-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex: 0 0 auto;
}
.share-panel-qr-action-pc {
  height: 32px;
  padding: 0 var(--space-3);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  color: var(--text-secondary);
  font-size: var(--fs-small);
  font-weight: 650;
}
.share-panel-qr-action-pc:hover:not(:disabled) {
  color: var(--brand);
  background: var(--brand-subtle);
}
.share-panel-qr-action-pc:disabled {
  cursor: not-allowed;
  color: var(--text-quaternary);
  background: var(--fill-primary);
}
/* —— 复制反馈：屏幕阅读器可感知 —————————— */
.share-panel-aria-live-pc {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
  white-space: nowrap;
}
/* —— 二次确认 modal —————————— */
.share-panel-confirm-overlay-pc {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: grid;
  place-items: center;
  background: var(--overlay-default);
}
.share-panel-confirm-pc {
  width: min(420px, calc(100vw - 32px));
  padding: var(--space-6);
  border-radius: var(--radius-2xl-val);
  background: var(--bg-default);
  box-shadow: var(--shadow-4);
  color: var(--text-primary);
}
.share-panel-confirm-pc h3 {
  margin: 0 0 var(--space-2);
  font-size: var(--fs-16);
  font-weight: 650;
}
.share-panel-confirm-pc p {
  margin: 0 0 var(--space-4);
  color: var(--text-secondary);
  font-size: var(--fs-caption);
  line-height: 20px;
}
.share-panel-confirm-actions-pc {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-2);
}
.share-panel-confirm-actions-pc button {
  height: 32px;
  padding: 0 var(--space-4);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-xl-val);
  background: var(--bg-default);
  color: var(--text-primary);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.share-panel-confirm-actions-pc button.is-primary {
  border-color: var(--brand);
  background: var(--brand);
  color: var(--text-allwhite);
}
.share-panel-confirm-actions-pc button.is-secondary {
  border-color: var(--border-default);
  background: transparent;
  color: var(--text-tertiary);
  font-weight: 500;
}
@media (max-width: 860px) {
  .share-panel-universal-pc {
    right: auto;
    left: 50%;
    width: min(480px, calc(100vw - 32px));
    max-height: calc(100vh - 64px);
    transform: translate(-50%, 0);
  }
  .share-panel-settings-grid-pc {
    grid-template-columns: 1fr;
  }
  .share-panel-action-card-pc {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: var(--space-3);
    padding: var(--space-4);
  }
  .share-panel-action-icon-pc {
    width: 44px;
    height: 44px;
  }
  .share-panel-action-buttons-pc {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
  .share-panel-round-action-pc,
  .share-panel-public-action-pc {
    height: 40px;
  }
  .share-panel-round-action-pc {
    width: 40px;
  }
  .share-panel-link-card-pc {
    align-items: stretch;
    grid-template-columns: 1fr;
  }
  .share-panel-public-link-row-pc {
    grid-template-columns: 1fr;
  }
  .share-panel-invite-link-row-pc {
    grid-template-columns: 1fr;
  }
  .share-panel-invite-copy-btn-pc {
    width: 100%;
  }
  .share-panel-forward-pc {
    bottom: -24px;
  }
  .share-panel-qr-pc {
    grid-template-columns: minmax(0, 1fr);
  }
  .share-panel-qr-pc.is-generated {
    grid-template-columns: 104px minmax(0, 1fr);
  }
  .share-panel-qr-actions-pc {
    grid-column: 1 / -1;
    justify-content: flex-end;
    flex-wrap: wrap;
  }
}
/* —— 微信/朋友圈分享弹窗 —————————— */
.wechat-share-overlay-pc {
  position: fixed;
  inset: 0;
  z-index: 1400;
  display: grid;
  place-items: center;
  background: var(--overlay-default);
}
.wechat-share-modal-pc {
  width: min(360px, calc(100vw - 32px));
  padding: var(--space-6);
  border-radius: var(--radius-2xl-val);
  background: var(--modal-panel-bg);
  box-shadow: var(--shadow-3);
  color: var(--text-primary);
}
.wechat-share-header-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-4);
}
.wechat-share-header-pc h3 {
  margin: 0;
  font-size: var(--fs-16);
  font-weight: 650;
  line-height: 22px;
}
.wechat-share-close-pc {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: var(--radius-2xl-val);
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  font: inherit;
}
.wechat-share-close-pc:hover {
  background: var(--fill-secondary);
}
.wechat-share-doc-title-pc {
  margin-bottom: var(--space-4);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-lg-val);
  background: var(--fill-secondary);
  color: var(--text-secondary);
  font-size: var(--fs-caption);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wechat-share-qr-area-pc {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 1 / 1;
  max-width: 200px;
  margin: 0 auto var(--space-4);
  padding: var(--space-3);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: var(--fill-secondary);
}
.wechat-share-qr-loading-pc .wechat-share-spinner-pc {
  width: 32px;
  height: 32px;
  border: 3px solid var(--fill-primary);
  border-top-color: var(--brand);
  border-radius: var(--radius-full);
  animation: wechat-share-spin 800ms linear infinite;
}
.wechat-share-qr-image-pc {
  display: block;
  width: 100%;
  height: 100%;
}
.wechat-share-qr-placeholder-pc {
  color: var(--text-tertiary);
  font-size: var(--fs-caption);
}
.wechat-share-guide-pc {
  margin: 0 0 var(--space-4);
  color: var(--text-secondary);
  font-size: var(--fs-caption);
  line-height: 20px;
  text-align: center;
}
.wechat-share-state-pc {
  display: grid;
  place-items: center;
  gap: var(--space-3);
  padding: var(--space-6) var(--space-3);
  text-align: center;
}
.wechat-share-state-text-pc {
  margin: 0;
  color: var(--text-secondary);
  font-size: var(--fs-body);
  line-height: 20px;
}
.wechat-share-state-loading-pc .wechat-share-spinner-pc {
  width: 32px;
  height: 32px;
  border: 3px solid var(--fill-primary);
  border-top-color: var(--brand);
  border-radius: var(--radius-full);
  animation: wechat-share-spin 800ms linear infinite;
}
@keyframes wechat-share-spin {
  to {
    transform: rotate(360deg);
  }
}
.wechat-share-state-launched-pc {
  color: var(--success-text);
}
.wechat-share-state-failed-pc {
  color: var(--error-text);
}
.wechat-share-btn-pc {
  height: 36px;
  padding: 0 var(--space-5);
  border: 0;
  border-radius: var(--radius-xl-val);
  font: inherit;
  font-weight: 600;
  font-size: var(--fs-body);
  cursor: pointer;
}
.wechat-share-btn-primary-pc {
  background: var(--brand);
  color: var(--text-allwhite);
}
.wechat-share-btn-primary-pc:hover {
  background: var(--brand-hover);
}
/* ============================================================
 * 添加协作成员 —— 入口按钮 + 二级页
 * ============================================================ */
/* 摘要行右侧并排的方形「+」入口按钮 */
.share-panel-collaborators-summary-add-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  padding: 0;
  border-radius: var(--share-panel-ardot-control-radius);
  background: var(--wb-color-bg-primary-default);
  color: var(--icon-secondary);
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
}
.share-panel-collaborators-summary-add-pc:hover {
  border-color: var(--border-strong);
  background: var(--wb-color-bg-primary-hover);
  color: var(--icon-primary);
}
.share-panel-collaborators-summary-add-pc:focus-visible {
  outline: 2px solid var(--brand-tint);
  outline-offset: 0;
}
/* —— 二级页容器 —————————————————————————— */
.share-panel-add-collab-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
  /* 父级 .share-panel-content-pc 左右 padding 24px，让 tablist 贯通线用负 margin 拉到父边缘 */
  --share-panel-add-collab-pad-x: var(--space-6);
}
/* 通讯录入口占位卡（设计稿：432×60，圆角 8，边框 rgba(0,0,0,0.1)，内 padding 12） */
.share-panel-add-collab-contacts-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  min-height: 60px;
  padding: var(--space-2) var(--space-3);
  box-sizing: border-box;
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--share-panel-ardot-row-radius);
  background: var(--bg-default);
  cursor: pointer;
  text-align: left;
  transition: background 150ms ease, border-color 150ms ease;
}
.share-panel-add-collab-contacts-pc:hover {
  border-color: var(--border-strong);
  background: var(--fill-quaternary);
}
.share-panel-add-collab-contacts-icon-pc {
  display: flex;
  padding: var(--space-2);
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  background: var(--button-grey-bg);
  border-radius: var(--radius-xl-val);
  color: var(--icon-primary);
}
.share-panel-add-collab-contacts-main-pc {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1 1 auto;
  min-width: 0;
}
.share-panel-add-collab-contacts-title-pc {
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 22px;
}
.share-panel-add-collab-contacts-desc-pc {
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  line-height: 20px;
}
.share-panel-add-collab-contacts-arrow-pc {
  flex: 0 0 auto;
  color: var(--icon-tertiary);
}
/* —— Tab（下划线风格，复用 Tabs 组件 + 样式覆盖对齐设计稿：tab 间距 24、贯通浅色底线 + 激活态 24×3 圆角胶囊深色下划线） —— */
.share-panel-add-collab-tabs-pc[role="tablist"] {
  display: flex !important;
  align-items: center;
  /* tab 间距 24（覆盖 Tabs 默认 gap-1） */
  gap: var(--space-6) !important;
  width: auto;
  /* 父容器有左右 padding，用负 margin 让贯通线拉到父级 content 边缘 */
  margin-left: calc(-1 * var(--share-panel-add-collab-pad-x, 0px));
  margin-right: calc(-1 * var(--share-panel-add-collab-pad-x, 0px));
  /* 贯通整行的浅色底线（设计稿要求拉通两侧） */
  border-bottom: var(--border-width-thin) solid var(--divider) !important;
}
/* 首个 tab：左对齐到父级 content 边缘，与其它子元素（左 24 padding）保持一致 */
.share-panel-add-collab-tabs-pc [role="tab"]:first-child {
  margin-left: var(--share-panel-add-collab-pad-x, var(--space-6));
}
/* 去除 Tabs 默认 px-3 水平内边距，使胶囊宽度贴合文字；行高对齐设计稿 */
.share-panel-add-collab-tabs-pc [role="tab"] {
  padding: var(--space-3) 0 !important;
  line-height: 22px;
  /* 关闭组件默认的 2px border-bottom，用 ::after 绝对定位胶囊代替 */
  border-bottom: 0 !important;
  position: relative;
}
/* 非激活 tab：隐藏胶囊 */
.share-panel-add-collab-tabs-pc [role="tab"]:not([aria-selected="true"])::after {
  display: none;
}
.share-panel-add-collab-tabs-pc [role="tab"]:hover {
  color: var(--text-secondary);
  cursor: pointer;
}
/* 激活态：文字主色 + 加粗 + 24×3 圆角胶囊深色下划线（覆盖 Tabs 默认 border-brand） */
.share-panel-add-collab-tabs-pc [role="tab"][aria-selected="true"] {
  font-weight: 600;
}
.share-panel-add-collab-tabs-pc [role="tab"][aria-selected="true"]::after {
  content: "";
  position: absolute;
  /* 水平居中于 tab 文字下方（不受 px padding 影响） */
  left: 50%;
  transform: translateX(-50%);
  /* stylelint-disable-next-line font-token —— -1px 绝对对齐下方 1px border，不走 token */
  bottom: -1px;
  width: 24px;
  height: 3px;
  border-radius: var(--radius-full);
  background: var(--text-primary);
}
/* —— 列表 / 表单区 ——————————————————————— */
.share-panel-add-collab-body-pc {
  min-width: 0;
  /* 预留顶部（通讯录卡 60 + Tab + 间距）与底部 footer（68）空间，避免内容溢出遮挡 footer */
  height: min(282px, calc(100vh - 420px));
  overflow-y: auto;
  overscroll-behavior: contain;
}
.share-panel-add-collab-empty-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: var(--text-tertiary);
  font-size: var(--fs-body);
}
.share-panel-add-collab-loading-more-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-2) 0;
  color: var(--text-quaternary);
  font-size: var(--fs-small);
}
/* 触底 sentinel：不可见占位，仅供 IntersectionObserver 观察 */
.share-panel-add-collab-sentinel-pc {
  height: 1px;
  width: 100%;
}
/* —— 最近协作者列表（行高 36，checkbox 与内容 gap 12，头像与名称 gap 8） —— */
.share-panel-add-collab-recent-list-pc {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 180px;
  /* 紧凑行间距（对齐设计稿"近似贴贴"的密度），用最小区间 token */
  gap: var(--space-0-5);
}
.share-panel-add-collab-recent-row-pc {
  display: flex;
  align-items: center;
  width: 100%;
  height: 36px;
  padding: 0 var(--space-2);
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  border-radius: var(--share-panel-ardot-select-radius);
  transition: background 150ms ease;
}
.share-panel-add-collab-recent-row-pc:hover {
  background: var(--fill-secondary);
}
.share-panel-add-collab-recent-row-pc[data-disabled] {
  cursor: not-allowed;
}
.share-panel-add-collab-recent-row-pc[data-disabled]:hover {
  background: transparent;
}
/* 自绘复选框（业务勾选行，放 app 侧不进 ui-components）：16×16，选中品牌色实心 */
.share-panel-add-collab-checkbox-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  /* 复选框 → 头像：12px */
  margin-right: var(--space-3);
  border: var(--border-width-thin) solid var(--border-strong);
  border-radius: var(--share-panel-ardot-select-radius);
  background: var(--bg-default);
  color: var(--text-allwhite);
  transition: background 150ms ease, border-color 150ms ease;
}
.share-panel-add-collab-checkbox-pc[data-checked] {
  border-color: var(--brand);
  background: var(--brand);
}
.share-panel-add-collab-checkbox-pc[data-disabled] {
  opacity: 0.5;
}
/* 名称 + 描述内联（名称 14/text-primary，描述 12/rgba0.5） */
.share-panel-add-collab-recent-main-pc {
  display: flex;
  align-items: baseline;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  /* 头像 → 名字：8px */
  margin-left: var(--space-2);
}
.share-panel-add-collab-recent-name-pc {
  flex: 0 0 auto;
  color: var(--text-primary);
  font-size: var(--fs-body);
  line-height: 22px;
}
.share-panel-add-collab-recent-desc-pc {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  line-height: 20px;
  text-overflow: ellipsis;
}
/* 头像：去边框（AvatarPC 默认带 1px border，列表内不需要） */
.share-panel-add-collab-recent-avatar-pc .avatar-circle-pc {
  border: 0;
}
/* 名字与最近活跃时间之间的分隔点：•（仅副标题存在时渲染） */
.share-panel-add-collab-recent-desc-pc::before {
  content: "\2022";
  margin: 0 var(--space-2);
  color: var(--text-quaternary);
  font-size: var(--fs-small);
  font-weight: 500;
}
/* —— 手机号表单（整体圆角 8 边框，内嵌 +86 胶囊 + 输入，右侧删除） —— */
.share-panel-add-collab-phone-list-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
}
.share-panel-add-collab-phone-row-pc {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  min-width: 0;
}
/* 单行的输入 + 错误提示垂直容器 */
.share-panel-add-collab-phone-cell-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  flex: 1 1 auto;
  min-width: 0;
}
.share-panel-add-collab-phone-field-pc {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
  height: 36px;
  overflow: hidden;
  border: var(--border-width-thin) solid var(--border-strong);
  border-radius: var(--share-panel-ardot-control-radius);
  background: var(--bg-default);
  transition: border-color 150ms ease;
}
.share-panel-add-collab-phone-field-pc:focus-within {
  border-color: var(--border-focus);
}
/* 错误态：红色边框 */
.share-panel-add-collab-phone-field-pc[data-error] {
  border-color: var(--error);
}
.share-panel-add-collab-phone-field-pc[data-error]:focus-within {
  border-color: var(--error);
}
/* 取消 input focus 时外层 field 框变色高亮（设计稿要求无聚焦反馈） */
.share-panel-add-collab-phone-field-pc:focus-within:not([data-error]) {
  border-color: var(--border-default);
}
/* 关闭 input 自身的 UA focus outline / box-shadow（设计稿无聚焦视觉）
 * 用 !important 覆盖浏览器 UA 默认 focus outline 与项目通用层 button:focus-visible 样式 */
.share-panel-add-collab-phone-input-pc:focus,
.share-panel-add-collab-phone-input-pc:focus-visible,
.share-panel-add-collab-phone-input-pc:focus-within {
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
  border-color: var(--border-default) !important;
}
/* 实时错误提示文案 */
.share-panel-add-collab-phone-error-pc {
  padding-left: var(--space-1);
  color: var(--error);
  font-size: var(--fs-small);
  line-height: 18px;
}
.share-panel-add-collab-phone-region-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 50px;
  height: 100%;
  border-right: var(--border-width-thin) solid var(--border-default);
  background: var(--bg-medium);
  color: var(--text-secondary);
  font-size: var(--fs-body);
}
.share-panel-add-collab-phone-input-pc {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  padding: 0 var(--space-3);
  border: 0;
  outline: none;
  background: transparent;
  color: var(--text-primary);
  font-size: var(--fs-body);
}
.share-panel-add-collab-phone-input-pc::-webkit-input-placeholder {
  color: var(--text-quaternary);
}
.share-panel-add-collab-phone-input-pc::placeholder {
  color: var(--text-quaternary);
}
.share-panel-add-collab-phone-remove-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 24px;
  /* 与输入框文字行高对齐，不撑满整行高度 */
  height: 28px;
  /* row 改为 flex-start（避免错误态文案撑高 cell 时按钮跑偏），
   * 这里 height=28 + margin-top=4 = field 36px 中心，让 24×28 的删除按钮
   * 视觉对齐 36px 输入框中线；间距全部走 4px 倍数对齐 stylelint 规则 */
  margin-top: var(--space-1);
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--icon-tertiary);
  cursor: pointer;
  border-radius: var(--share-panel-ardot-select-radius);
  transition: background 150ms ease,
    color 150ms ease;
}
.share-panel-add-collab-phone-remove-pc:hover {
  background: var(--fill-secondary);
  color: var(--icon-secondary);
}
.share-panel-add-collab-phone-add-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  align-self: flex-start;
  padding: var(--space-1-5);
  border: 0;
  background: transparent;
  color: var(--text-primary);
  font-size: var(--fs-body);
  cursor: pointer;
  transition: color 150ms ease;
}
.share-panel-add-collab-phone-add-pc:hover {
  background: var(--fill-secondary);
  color: var(--brand);
  border-radius: var(--wb-radius-150);
}
/* 达行数上限：置灰、禁用交互（hover 不变色），tooltip 由 wrap 承接 */
.share-panel-add-collab-phone-add-pc:disabled {
  color: var(--text-quaternary);
  cursor: not-allowed;
}
.share-panel-add-collab-phone-add-pc:disabled:hover {
  background: transparent;
  color: var(--text-quaternary);
}
/* disabled 按钮不触发 hover 事件，用 inline-flex 包裹层承接 tooltip 悬停 */
.share-panel-add-collab-phone-add-wrap-pc {
  display: inline-flex;
  align-self: flex-start;
}
/* 短信能力不可用提示行（footer 之上，额度用尽 / 系统不可用） */
.share-panel-add-collab-sms-blocked-pc {
  padding: var(--space-2) 0;
  color: var(--error);
  font-size: var(--fs-small);
  text-align: center;
}
/* —— sticky footer（高 68，顶部分割线，左权限右添加按钮） —— */
.share-panel-add-collab-footer-pc {
  position: sticky;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding-top: var(--space-4);
  box-sizing: border-box;
  border-top: var(--border-width-thin) solid var(--divider);
  /* 仅剩一个按钮（如手机号 Tab 隐藏权限下拉）时右对齐，与双按钮布局的右侧锚点一致 */
}
.share-panel-add-collab-footer-pc > button:only-child {
  margin-left: auto;
}
.share-panel-add-collab-perm-trigger-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-1-5) var(--space-2);
  border: 0;
  background: transparent;
  color: var(--text-secondary);
  font-size: var(--fs-body);
  cursor: pointer;
  border-radius: var(--share-panel-ardot-select-radius);
  transition: background 150ms ease;
}
.share-panel-add-collab-perm-trigger-pc:hover {
  background: var(--fill-secondary);
  color: var(--text-primary);
}
.share-panel-add-collab-submit-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-width: 83px;
  height: 36px;
  padding: 0 var(--space-4);
  border: 0;
  border-radius: var(--share-panel-ardot-control-radius);
  background: var(--brand);
  color: var(--text-allwhite);
  font-size: var(--fs-body);
  font-weight: 400;
  cursor: pointer;
  transition: background 150ms ease,
    opacity 150ms ease;
}
.share-panel-add-collab-submit-pc:hover:not(:disabled) {
  background: var(--brand-hover);
}
.share-panel-add-collab-submit-pc:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
/* 提交按钮 loading spinner：白描边圆环（对齐项目 share-channel-spin 等既有范式） */
.share-panel-add-collab-submit-spin-pc {
  width: 14px;
  height: 14px;
  border: 2px solid var(--fill-secondary);
  border-top-color: var(--text-allwhite);
  border-radius: var(--radius-full);
  animation: share-panel-add-collab-submit-spin 700ms linear infinite;
}
@keyframes share-panel-add-collab-submit-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .share-panel-add-collab-submit-spin-pc {
    animation: none;
  }
}
/* 添加协作成员页权限下拉：复用 share-panel-permission-dropdown-pc 视觉，
 * 仅补充 item 内「文字 + 选中对勾」的两端对齐（对齐设计参考图）。 */
.share-panel-add-collab-perm-dropdown-pc {
  min-width: 120px;
  /* 需盖在选人/分享弹层（modal 层级 1300）之上，与项目 z-index 体系对齐 */
  z-index: 1300;
}
.share-panel-add-collab-perm-dropdown-pc [data-slot="dropdown-menu-item"] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}
.share-panel-add-collab-perm-dropdown-pc [data-slot="dropdown-menu-item"] > span {
  flex: 1 1 auto;
}
.share-panel-add-collab-perm-dropdown-pc [data-slot="dropdown-menu-item"] .icon {
  flex: 0 0 auto;
  color: var(--text-primary);
}

.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);
}

.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));
  }
}

.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;
}

/* ========== 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(--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;
  }
}

.link-icon-asset-pc {
  display: block;
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  border-radius: var(--radius-sm);
  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;
}

/**
 * storage-dialog — 存储空间弹窗（PC）
 *
 * 弹窗内部样式（标题栏、容量条、明细列表、升级 CTA、底部注记）
 * 全部复用 knowledge-sidebar.less 中已定义的：
 *   - .knowledge-sidebar-storage-dialog-header-pc
 *   - .knowledge-sidebar-storage-dialog-close-pc
 *   - .wb-settings-module-pc / .wb-settings-module-card-pc
 *   - .wb-storage-bar-block-pc / .wb-storage-capacity-bar-pc 等
 *
 * 本文件仅负责弹窗容器（overlay + panel）的定位与动画，
 * 与 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: storage-dialog-fade 120ms ease-out;
}
@keyframes storage-dialog-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* ===== 弹窗面板 ===== */
.storage-dialog-panel-pc {
  display: flex;
  flex-direction: column;
  /* 对齐设计稿 9812:106：弹窗宽 480px */
  width: 480px;
  max-width: calc(100vw - var(--space-12));
  border-radius: var(--radius-24px-val);
  background: var(--bg-tertiary-default);
  box-shadow: var(--shadow-3);
  overflow: hidden;
  animation: storage-dialog-scale 140ms cubic-bezier(0.2, 0.8, 0.2, 1);
  /* ---- 布局对齐设计稿 9812:106（仅本弹窗覆盖，不影响侧边栏内联弹窗） ---- */
  /* 标题栏：对齐弹窗 padding 24px、标题 16px */
  /* 内容容器：设计稿区块间距 16px、左右下内边距对齐弹窗 padding 24px，
     顶部与标题栏间距 16px */
  /* 两个区块（容量概览卡 + 明细卡）改为独立描边卡片 */
  /* 概览标题行：设计稿整行 gap 12、左右两端对齐、居中 */
  /* 「已使用」标签 + 数值：设计稿左侧组 gap 8、底对齐 */
  /* 「已使用」标签：设计稿 14px Regular、主文本色、行高 22 */
  /* 已使用数值：设计稿为 24px 大字 */
  /* 容量条：设计稿高度 4px */
  /* 升级按钮：设计稿 primary，高 32px */
  /* 明细整体作为一张描边卡片；内部项之间用分割线而非各自底色 */
  /* 明细项之间的分割线（第二项起加上分隔） */
}
.storage-dialog-panel-pc .knowledge-sidebar-storage-dialog-header-pc {
  padding: var(--space-6) var(--space-6) 0;
}
.storage-dialog-panel-pc .knowledge-sidebar-storage-dialog-header-pc h3 {
  font-size: var(--fs-body);
}
.storage-dialog-panel-pc .wb-settings-module-pc {
  gap: var(--space-4);
  padding: var(--space-4) var(--space-6) var(--space-6);
}
.storage-dialog-panel-pc .wb-settings-module-card-pc {
  gap: var(--space-4);
  overflow: visible;
}
.storage-dialog-panel-pc .wb-storage-bar-block-pc {
  padding: var(--space-4);
  border: 1px solid var(--border-primary);
  border-radius: var(--radius-12px-val);
  gap: var(--space-3);
}
.storage-dialog-panel-pc .wb-storage-capacity-heading-pc {
  gap: var(--space-3);
}
.storage-dialog-panel-pc .wb-storage-capacity-usage-pc {
  align-items: flex-end;
  gap: var(--space-2);
}
.storage-dialog-panel-pc .wb-storage-capacity-usage-label-pc {
  color: var(--text-primary);
  margin-right: 0;
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}
.storage-dialog-panel-pc .wb-storage-capacity-usage-value-pc {
  /* stylelint-disable-next-line font-token */
  font-size: 24px;
  line-height: 32px;
}
.storage-dialog-panel-pc .wb-storage-capacity-bar-pc {
  height: 4px;
}
.storage-dialog-panel-pc .wb-storage-upgrade-cta-pc.btn-sm-pc {
  height: 32px;
}
.storage-dialog-panel-pc .wb-storage-detail-list-pc {
  padding: var(--space-4);
  border: 1px solid var(--border-primary);
  border-radius: var(--radius-12px-val);
  gap: var(--space-3);
}
.storage-dialog-panel-pc .wb-storage-detail-item-pc {
  padding: 0;
  border-radius: 0;
  background: transparent;
  gap: var(--space-1);
}
.storage-dialog-panel-pc .wb-storage-detail-item-pc + .wb-storage-detail-item-pc {
  padding-top: var(--space-3);
  border-top: 1px solid var(--divider);
}
@keyframes storage-dialog-scale {
  from {
    opacity: 0;
    transform: scale(0.96);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
/* ===== 清理缓存按钮（与描述文案同行，样式继承描述文案） ===== */
.wb-storage-clear-cache-btn-pc {
  padding: 0;
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  cursor: pointer;
  transition: opacity 150ms ease;
}
.wb-storage-clear-cache-btn-pc:hover {
  color: var(--text-primary);
}
.wb-storage-clear-cache-btn-pc:focus-visible {
  outline: 2px solid var(--border-focus);
  outline-offset: 1px;
}
.wb-storage-clear-cache-btn-pc:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
/* ===== Tooltip z-index 提升（弹窗面板 overflow:hidden 裁剪 + panel z=10000） ===== */
.storage-dialog-tooltip-pc {
  z-index: 10001 !important;
}
/* ===== 升级按鈕 disabled 态 ===== */
.wb-storage-upgrade-cta-pc:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
/* ============================================================
 * @region pricing-dialog — 定价页 iframe 弹窗（侧栏 + 详情页共用）
 * ============================================================ */
.storage-pricing-overlay-pc {
  position: fixed;
  inset: 0;
  background: var(--overlay-default);
  z-index: 11000;
}
.storage-pricing-dialog-pc {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 960px;
  height: 628px;
  max-width: calc(100vw - var(--space-8));
  max-height: calc(100vh - var(--space-8));
  background: var(--bg-default);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-level-3);
  z-index: 11001;
  overflow: hidden;
}
.storage-pricing-close-btn-pc {
  position: absolute;
  top: var(--space-4);
  right: var(--space-6);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  transition: background 150ms ease,
    color 150ms ease;
}
.storage-pricing-close-btn-pc:hover {
  background: var(--fill-secondary);
  color: var(--text-primary);
}
.storage-pricing-close-btn-pc.btn-ghost-pc:hover:not(:disabled) {
  background: var(--fill-secondary);
  color: var(--text-primary);
}
.storage-pricing-iframe-pc {
  border: none;
  width: 100%;
  height: 100%;
  border-radius: var(--radius-12px-val);
}
.storage-pricing-loading-pc {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  background: var(--bg-default);
  border-radius: var(--radius-lg);
}
.storage-pricing-spinner-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--icon-tertiary);
  animation: pricing-spin 1s linear infinite;
}
@keyframes pricing-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.storage-pricing-loading-text-pc {
  font-size: var(--fs-body);
  color: var(--text-tertiary);
}

/* ========== SearchModalPC ========== */
.search-modal-overlay-pc {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 120px;
  background: var(--overlay-default);
  animation: search-modal-fade-in-pc 120ms ease-out;
}
/* 对标设计稿 popup/搜索：宽 480、内边距 24、圆角 24，区块统一贴内容边 */
.search-modal-panel-pc {
  display: flex;
  flex-direction: column;
  width: 90vw;
  max-width: 480px;
  max-height: 640px;
  padding: var(--wb-spacing-600) var(--wb-spacing-600) 0;
  background: var(--wb-color-bg-secondary-default);
  border: 1px solid var(--wb-color-border-primary);
  border-radius: var(--wb-radius-600);
  box-shadow: var(--shadow-3);
  overflow: hidden;
  animation: search-modal-scale-in-pc 140ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes search-modal-fade-in-pc {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes search-modal-scale-in-pc {
  from {
    opacity: 0;
    transform: scale(0.96);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
/* ---------- 搜索输入框 ---------- */
/* 搜索行：胶囊输入框 + 清空按钮，两者间距 12（设计稿 type=search） */
.search-modal-input-row-pc {
  display: flex;
  align-items: center;
  gap: var(--wb-spacing-300);
  flex-shrink: 0;
}
/* 胶囊搜索框：高 32、左右内边距 12、全圆角、#f2f2f2 底、图标与文案间距 8 */
.search-modal-input-wrapper-pc {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  gap: var(--wb-spacing-200);
  height: 32px;
  padding: 0 var(--wb-spacing-300);
  border-radius: var(--wb-radius-150);
  background: var(--wb-color-bg-primary-default);
}
.search-modal-input-icon-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--wb-color-text-tertiary);
}
/* 输入文案与占位符：设计稿 body md（14/22），占位符 rgba(0,0,0,0.5) */
.search-modal-input-pc {
  flex: 1;
  min-width: 0;
  height: 30px;
  padding: 0;
  border: 0;
  outline: none;
  background: transparent;
  color: var(--wb-color-text-primary);
  font-size: var(--fs-body);
  line-height: 22px;
}
.search-modal-input-pc::-webkit-input-placeholder {
  color: var(--wb-color-text-tertiary);
}
.search-modal-input-pc::placeholder {
  color: var(--wb-color-text-tertiary);
}
.search-modal-input-clear-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--wb-color-text-tertiary);
  cursor: pointer;
  flex-shrink: 0;
  transition: color 150ms ease;
}
.search-modal-input-clear-pc:hover {
  color: var(--wb-color-text-primary);
}
/* ---------- 列表区域 ---------- */
.search-modal-list-pc {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  /* 与搜索行间距 8（设计稿弹窗 itemSpacing），底部由底栏分割线收口。
   * 左右各向外扩 8px：列表自身 padding 不足以容纳行 hover 底色的溢出，
   * 由行/分组各自补 8px 内边距把内容顶回原位（设计稿 hover 态宽 448 = 内容 432 + 16） */
  margin: var(--wb-spacing-200) calc(-1 * var(--wb-spacing-200)) 0;
  padding: 0;
}
.search-modal-list-pc::-webkit-scrollbar {
  width: 4px;
}
.search-modal-list-pc::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: var(--radius-sm-val);
}
.search-modal-list-pc:hover::-webkit-scrollbar-thumb {
  background: var(--fill-primary);
}
.search-modal-list-pc::-webkit-scrollbar-track {
  background: transparent;
}
/* ---------- 分组标签 ---------- */
.search-modal-group-pc {
  padding: 0;
}
/* 分组标签「最近浏览」：设计稿 body sm bold（Semibold 12/20）+ rgba(0,0,0,0.3)，
 * 上下各 4 内边距，无字距/大小写变换 */
.search-modal-group-label-pc {
  padding: var(--wb-spacing-100) var(--wb-spacing-200);
  font-size: var(--fs-small);
  font-weight: var(--fw-semibold);
  line-height: 20px;
  color: var(--wb-color-text-disable);
}
/* ---------- 列表项 ---------- */
/* 列表行：设计稿行高 58（内容 42 + 上下 8），图标与文案间距 8。
 * 左右 8px 是 hover / 选中底色的留白（底色 448 宽、内容 432 宽），
 * 配合列表向外的 -8px 外边距，内容仍与搜索框左对齐 */
.search-modal-item-pc {
  display: flex;
  align-items: flex-start;
  gap: var(--wb-spacing-200);
  padding: var(--wb-spacing-200);
  border-radius: var(--wb-radius-150);
  cursor: pointer;
  transition: background-color 150ms ease;
}
.search-modal-item-pc:hover,
.search-modal-item-pc.search-modal-item-active-pc {
  background: var(--wb-color-bg-primary-hover);
}
.search-modal-item-pc:hover .search-modal-item-time-pc,
.search-modal-item-pc.search-modal-item-active-pc .search-modal-item-time-pc {
  display: inline;
}
.search-modal-item-icon-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin-top: var(--wb-spacing-50);
  flex-shrink: 0;
  color: var(--icon-secondary);
}
.search-modal-item-content-pc {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  flex: 1;
}
/* 标题行：标题占主，右侧展示修改时间（search-chunks 返回 updatedAt） */
.search-modal-item-title-row-pc {
  display: flex;
  align-items: baseline;
  gap: var(--wb-spacing-200);
  min-width: 0;
}
.search-modal-item-title-pc {
  flex: 1;
  min-width: 0;
  font-size: var(--fs-body);
  font-weight: 500;
  line-height: 22px;
  color: var(--wb-color-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 修改时间：右对齐、次要文字色、不参与压缩 */
.search-modal-item-time-pc {
  display: none;
  flex-shrink: 0;
  font-size: var(--fs-small);
  line-height: 20px;
  color: var(--wb-color-text-tertiary);
  white-space: nowrap;
}
.search-modal-item-path-pc {
  font-size: var(--fs-small);
  line-height: 20px;
  color: var(--wb-color-text-tertiary);
  display: flex;
  align-items: center;
  gap: var(--space-1);
  overflow: hidden;
}
.search-modal-item-path-pc > :first-child {
  flex: none;
}
.search-modal-item-path-text-pc {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.search-modal-item-meta-pc {
  font-size: var(--fs-small);
  line-height: 20px;
  color: var(--wb-color-text-tertiary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* ---------- 高亮样式（后端 <em> 命中词） ---------- */
.search-modal-item-title-pc em,
.search-modal-item-meta-pc em {
  color: var(--wb-color-text-brand-default);
  font-weight: 600;
  font-style: normal;
}
/* ---------- 空态 / 加载中 ---------- */
.search-modal-empty-pc {
  padding: var(--space-8) var(--space-4);
  text-align: center;
  font-size: var(--fs-body);
  color: var(--text-tertiary);
}
.search-modal-loading-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-4);
  font-size: var(--fs-caption);
  color: var(--text-tertiary);
}
/* ---------- 哨兵 ---------- */
.search-modal-sentinel-pc {
  height: 1px;
  flex-shrink: 0;
}
/* ---------- 底部提示 ---------- */
/* 底部快捷键区：设计稿 keyboard shortcut —— 通栏分割线 + 居中多组（组间 gap 20），
 * footer 通栏（负外扩弹窗 24 内边距），内部 padding 左右 24 把内容顶回 */
.search-modal-footer-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin: 0 calc(-1 * var(--wb-spacing-600));
  padding: var(--wb-spacing-200) var(--wb-spacing-600);
  border-top: 1px solid var(--wb-color-border-primary);
  background: transparent;
}
/* 快捷键组容器：组间距 20（设计稿 Content gap） */
.search-modal-shortcuts-pc {
  display: flex;
  align-items: center;
  gap: var(--wb-spacing-500);
  font-size: var(--fs-small);
  line-height: 20px;
  color: var(--wb-color-text-tertiary);
}
/* 单组快捷键：键位 + 说明，间距 4（设计稿 warpper gap） */
.search-modal-shortcut-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--wb-spacing-100);
  white-space: nowrap;
}
.search-modal-shortcut-keys-pc {
  display: inline-flex;
  align-items: center;
  color: var(--wb-color-text-tertiary);
}
/* 路径截断 tooltip：限制最大宽度 280，超出换行。
 * Tooltip 默认内联样式为 white-space: nowrap，需 !important 覆盖才能让
 * max-width 真正生效（否则长路径会撑破气泡）。 */
.search-modal-path-tooltip-pc {
  max-width: 280px;
  white-space: normal !important;
  word-break: break-all;
}

/**
 * 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: width 220ms ease, min-width 220ms ease, opacity 180ms ease;
}
/* 频道上下文（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 按钮位 */
.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-preview-doc-pc .doc-titlebar-wrapper-pc {
  padding-left: 0;
}
.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: margin-left 220ms ease;
}
/* 侧边栏切换按钮：仅折叠态 + 非 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;
}
.main-layout-wrapper-collapsed-pc .doc-titlebar-wrapper-pc {
  padding-left: var(--space-3);
}
/* 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);
}

/* =========================================================================
 *  WbHomePagePC — WorkBuddy 最近页（视觉对照存量 home-feed-page）
 *
 *  内部表格由 WbFeedTable 提供，class 复用 doc-feed-*；
 *  本文件只负责外层容器尺寸 + tab 栏锚点。
 * ========================================================================= */
.wb-home-page-pc {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: var(--text-primary);
}
.wb-home-page-body-pc {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  max-width: 1024px;
  margin: 0 auto;
  width: 100%;
  /* 与 sticky header 的 top/margin 偏移保持 12px inset 一致。 */
  padding: var(--space-3) var(--space-12) var(--space-10);
  /* 隐藏滚动条但保留滚动功能 */
  scrollbar-width: none;
  -ms-overflow-style: none;
}
/* 隐藏滚动条但保留滚动功能（Chrome/Safari） */
.wb-home-page-body-pc::-webkit-scrollbar {
  display: none;
}
/* 最近页标题行：header 作为定位上下文，
 * 标题正常流布局，头像用 position:absolute 绝对定位到 header 右侧居中，
 * 避免 flex 布局中标题/头像高度不一致导致视觉错位。
 * 高度由内部 profile-header-wrapper (36px) 撑起，不显式设 height 避免与 padding 冲突。
 *
 * sticky 与 body padding-top 的协同（防止列表在顶部露出一条 12px 空白）：
 *  - `.wb-home-page-body-pc` 是唯一滚动容器，其 padding-top = var(--space-3) = 12px
 *  - sticky 的 `top` 起算点是滚动容器的 **padding 内侧顶部**，若 `top: 0` 则
 *    stuck 后 header 停在 padding 内顶，body padding-top 那 12px 永远露白，
 *    列表滚动上去会从 header 上方缝隙露出，视觉不吸顶（issue: #972 反馈截图）
 *  - 解法：让 header 盒模型同时向上"吃掉"这 12px：
 *      1) `margin-top: -12px` → 未 stuck 时 border box 顶部 = body 顶部
 *      2) `top: -12px`        → stuck 时也停在 body 顶部
 *      3) `padding-top: 16px` (space-3 + space-1) → 视觉填回 12px，
 *         并保留原本 4px 的呼吸，标题距 body 顶部 = 16 + 4(居中) = 20px
 *      三者协同保证 sticky 前后位置一致、无跳变、无缝隙 */
.wb-home-page-header-pc {
  position: sticky;
  top: calc(0px - var(--space-3));
  z-index: 3;
  height: 56px;
  margin: calc(-1 * var(--space-3)) auto 0;
  background: var(--bg-secondary-default);
  padding: var(--space-3) 0;
  width: min(100%, var(--wb-home-content-width));
}
/* 最近页标题：对齐设计稿 Header(41:503)，36px 高，标题 20px/600/28px，垂直居中。
 * 右侧留 44px padding 避开绝对定位的 UserAccountMenuPC（28×28 头像 + 少量呼吸）。
 * 44 = 32 (space-8, avatar 视觉宽度) + 12 (space-3, 呼吸)。 */
.wb-home-page-pc .profile-header-wrapper-pc {
  display: flex;
  align-items: center;
  height: 32px;
  padding-right: calc(var(--space-8) + var(--space-3));
  margin-bottom: 0;
}
/* 头像菜单：绝对定位到 header 右上角，与标题（profile-header-wrapper 36px 高）
 * 垂直居中对齐。底部为 profile-header-wrapper 底边；avatar 28×28，从 header 底部起算
 * 上偏 = (32 - 28) / 2 = 2px，让 avatar 中线与标题中线重合。
 * 使用 wb-home-user-avatar-pc 的紧凑尺寸。 */
.wb-home-page-header-pc > .user-account-menu-pc {
  position: absolute;
  bottom: calc(var(--space-3) + var(--space-1));
  right: 0;
}
.wb-home-page-pc .profile-header-title-pc {
  margin: 0;
  font-family: var(--font-family-body);
  font-size: calc(20px * var(--font-scale));
  font-weight: 600;
  line-height: 28px;
  letter-spacing: 0;
  color: var(--text-primary);
}
.wb-home-page-pc .profile-header-subtitle-pc {
  display: none;
}
/* 「最近」页面标题：吸顶在 header 下方（sticky 栈第二层）。
 * 盒高 = line-height(32) + 上下 padding(space-2 * 2 = 16) = 48px，
 * 供下方 tab-row 的 sticky top 计算让位。
 * 颜色/字体走设计 Token（--text-primary = rgba(0,0,0,0.9)，--font-family-body = PingFang SC）。 */
.wb-home-page-title-pc {
  position: sticky;
  top: calc(56px - var(--space-3));
  z-index: 2;
  padding-bottom: var(--space-5);
  background: var(--bg-secondary-default);
  color: var(--text-primary);
  font-family: var(--font-family-body);
  font-size: calc(24px * var(--font-scale));
  font-weight: 600;
  line-height: 32px;
  text-align: justify;
  padding-left: var(--space-2);
}
/* 容器（Ardot 节点 5161:2）：hug 高度 33、padding 2、8 圆角、wb 灰底 */
.wb-home-page-pc .wb-home-tab-bar-pc {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  gap: calc(var(--space-0-5) / 2);
  width: -webkit-fit-content;
  width: fit-content;
  height: 33px;
  padding: var(--space-0-5);
  margin-bottom: 0;
  border-radius: var(--wb-radius-200);
  background: var(--wb-color-bg-primary-default);
}
/* ============================================================
 *  Tab 栏 + 类型筛选（同一行，左右两端）
 * ============================================================ */
.wb-home-tab-row-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  position: sticky;
  /* 停靠在 header(60px) + 吸顶标题(48px) 之下 */
  top: calc(108px - var(--space-3));
  z-index: 2;
  padding-top: var(--space-2);
  padding-bottom: var(--space-4);
  background: var(--bg-secondary-default);
}
/* ============================================================
 *  类型筛选下拉（视觉对齐 tab 栏的 8px 圆角外形）
 * ============================================================ */
.wb-home-type-filter-pc {
  position: relative;
  flex-shrink: 0;
  margin-bottom: 0;
}
/* 类型筛选按钮：90×32，8px 圆角，筛选后 label 左对齐 + close 右对齐 */
.wb-home-page-pc .wb-home-type-btn-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  gap: var(--space-0-5);
  min-width: 90px;
  max-width: 160px;
  height: 32px;
  padding: var(--space-2) var(--space-3);
  border: var(--border-width-thin) solid var(--wb-color-border-primary);
  border-radius: var(--radius-xl-val);
  background: var(--wb-color-bg-secondary-default);
  color: var(--text-secondary);
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 16px;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}
.wb-home-page-pc .wb-home-type-btn-pc:hover {
  background: var(--fill-tertiary);
  border-color: var(--border-default);
  color: var(--text-primary);
}
.wb-home-page-pc .wb-home-type-btn-open-pc,
.wb-home-page-pc .wb-home-type-btn-active-pc {
  background: transparent;
  border-color: var(--border-default);
  color: var(--text-secondary);
}
.wb-home-page-pc .wb-home-type-btn-active-pc:hover {
  background: var(--fill-tertiary);
  color: var(--text-primary);
}
/* 筛选后按钮：label 左对齐、close icon 右对齐；文案尺寸/字重保持与默认「全部类型」一致 */
.wb-home-page-pc .wb-home-type-btn-active-pc {
  justify-content: space-between;
}
.wb-home-page-pc .wb-home-type-btn-active-pc .wb-home-type-btn-label-pc {
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 16px;
}
.wb-home-page-pc .wb-home-type-btn-pc > svg {
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  color: currentColor;
}
.wb-home-type-btn-label-pc {
  white-space: nowrap;
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 16px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 下拉箭头容器：16×16，currentColor */
.wb-home-type-btn-arrow-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: currentColor;
}
.wb-home-type-btn-arrow-pc svg {
  width: 16px;
  height: 16px;
}
/* clear 按钮：占下拉箭头位置，hover 使用方圆角弱反馈，避免圆形热区过重 */
.wb-home-type-btn-clear-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin: -4px -4px -4px 0;
  border-radius: var(--radius-md-val);
  color: inherit;
  opacity: 0.72;
  transition: background-color 150ms ease, opacity 150ms ease;
}
.wb-home-type-btn-clear-pc:hover {
  background: var(--fill-tertiary);
  opacity: 1;
}
/* 浮层菜单：宽 160，7 项 × 36，12px 大圆角，白底，含描边与明显浮层阴影 */
.wb-home-type-menu-pc {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 10;
  width: 160px;
  padding: var(--space-2);
  border: calc(var(--border-width-thin) / 2) 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);
}
/* 菜单项：36px 高点击区，14px 字号，左对齐；hover / 选中底色内缩留边距 */
.wb-home-type-menu-item-pc {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: 36px;
  padding: 0 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: 36px;
  text-align: left;
  cursor: pointer;
  transition: background-color 150ms ease;
}
.wb-home-type-menu-item-pc::before {
  content: "";
  position: absolute;
  inset: var(--space-0-5) 0;
  border-radius: var(--wb-radius-200);
  background: transparent;
  transition: background-color 150ms ease;
}
.wb-home-type-menu-item-pc:hover::before {
  background: var(--wb-color-bg-primary-hover);
}
/* 菜单项 label 区域 */
.wb-home-type-menu-item-label-pc {
  position: relative;
  z-index: 1;
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 36px;
}
/* 选中菜单项：底色 + 600 字重 + 绿色 check；hover 加深反馈 */
.wb-home-type-menu-item-active-pc {
  font-weight: 600;
}
.wb-home-type-menu-item-active-pc:hover::before {
  background: var(--bg-primary-hover);
}
.wb-home-type-menu-item-check-pc {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-left: var(--space-1);
  color: var(--brand-primary);
}
.wb-home-type-menu-item-check-pc svg {
  width: 16px;
  height: 16px;
}
/*
 * 覆盖 ui-components/doc-feed tab-item：doc-feed 在 frozen 名单，不改原文件，
 * 仅在最近页作用域内还原设计稿（Ardot 节点 5161:2）。
 *
 * 还原要点（变体 state=select / unselect，size=medium）：
 *  - 未选中：无圆角（radius 0）、透明底、PingFang SC Regular 14/22、字色 text-secondary(0.7)
 *  - 选中：  6 圆角、白底、shadow-1、PingFang SC Semibold 14/22、字色 text-primary(0.9)
 *  - horizontal padding 12；vertical padding 设计稿精确 3px，4px grid token 体系无对应项，
 *    按设计稿硬编码（用 space-1=4px 会让 item 高多 2px，与 28 不符）
 */
.wb-home-page-pc .doc-feed-tab-item-pc {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  gap: var(--space-1);
  height: 28px;
  padding: 3px var(--space-3);
  border-radius: var(--wb-radius-none);
  color: var(--text-secondary);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 22px;
  box-shadow: none;
}
.wb-home-page-pc .doc-feed-tab-item-pc:hover {
  background: var(--wb-color-bg-secondary-default);
  border-radius: var(--wb-radius-150);
  color: var(--text-primary);
}
.wb-home-page-pc .doc-feed-tab-active-pc {
  background: var(--wb-color-bg-secondary-default);
  border-radius: var(--wb-radius-150);
  color: var(--text-primary);
  font-weight: 600;
  box-shadow: var(--shadow-1);
}
.wb-home-page-pc .doc-feed-tab-active-pc:hover {
  background: var(--wb-color-bg-secondary-default);
  color: var(--text-primary);
}
.wb-home-tab-label-pc {
  font-size: var(--fs-body);
  font-weight: inherit;
  line-height: 22px;
  color: currentColor;
}
/* 覆盖 doc-feed 创建者头像尺寸：20px（表格行内头像规范尺寸）
 * AvatarPC size prop 写成 inline style，需 !important 覆盖。
 */
.doc-feed-creator-cell-pc .avatar-circle-pc {
  /* stylelint-disable-next-line declaration-no-important */
  width: 20px !important;
  /* stylelint-disable-next-line declaration-no-important */
  height: 20px !important;
}
/* ============================================================
 *  最近列表新用户引导模块
 *  权威源为产品需求文档
 * ============================================================ */
.wb-home-guide-dock-pc {
  align-self: center;
  width: min(100%, var(--wb-home-content-width, 960px));
  margin-top: var(--space-10);
}
.wb-home-guide-dock-pc::before {
  display: none;
}
.wb-home-guide-header-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}
.wb-home-guide-heading-pc {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: calc(var(--space-10) + var(--space-1));
}
.wb-home-guide-welcome-pc {
  margin: 0;
  color: var(--text-primary);
  font-size: calc(22px * var(--font-scale));
  font-weight: 600;
  line-height: 30px;
}
.wb-home-guide-title-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 20px;
}
.wb-home-guide-section-icon-pc {
  display: block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  object-fit: contain;
  opacity: 0.68;
}
.wb-home-guide-dismiss-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  height: 28px;
  padding: 0 var(--space-3);
  border: 0;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--text-quaternary);
  font-size: var(--fs-small);
  line-height: 20px;
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.wb-home-guide-dismiss-pc:hover {
  background: var(--fill-tertiary);
  color: var(--text-secondary);
}
.wb-home-guide-card-list-pc {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  justify-content: center;
}
.wb-home-guide-card-pc {
  position: relative;
  min-width: 0;
  min-height: 144px;
  border: var(--border-width-thin) solid var(--fill-primary);
  border-radius: var(--radius-3xl-val);
  background: var(--bg-default);
  box-shadow: var(--shadow-1);
  overflow: hidden;
  transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}
.wb-home-guide-card-pc:hover {
  border-color: var(--border-default);
  box-shadow: var(--shadow-2);
  transform: translateY(-1px);
}
.wb-home-guide-card-main-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  width: 100%;
  min-height: 144px;
  padding: var(--space-4);
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.wb-home-guide-card-illustration-pc {
  flex: 0 0 112px;
  width: 112px;
  height: 82px;
  object-fit: contain;
  opacity: 0.82;
  pointer-events: none;
}
.wb-home-guide-card-copy-pc {
  display: flex;
  width: min(100%, 220px);
  min-width: 0;
  flex-direction: column;
  gap: var(--space-1);
}
.wb-home-guide-card-title-pc {
  display: block;
  overflow: hidden;
  color: var(--text-secondary);
  font-size: var(--fs-body);
  font-weight: 500;
  line-height: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wb-home-guide-card-desc-pc {
  display: -webkit-box;
  overflow: hidden;
  color: var(--text-quaternary);
  font-size: var(--fs-small);
  line-height: 20px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.wb-home-guide-card-arrow-pc {
  display: none;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  color: var(--icon-quaternary);
  transition: color 150ms ease,
    transform 150ms ease;
}
.wb-home-guide-card-main-pc:hover .wb-home-guide-card-arrow-pc {
  color: var(--icon-secondary);
  transform: translateX(2px);
}
/* playbook 横向列表 */
.wb-home-guide-playbook-pc {
  margin-top: var(--space-8);
}
.wb-home-guide-playbook-title-row-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.wb-home-guide-playbook-title-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 20px;
}
.wb-home-guide-playbook-strip-pc {
  position: relative;
}
.wb-home-guide-playbook-strip-prev-pc::before,
.wb-home-guide-playbook-strip-next-pc::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
  width: 72px;
  pointer-events: none;
}
.wb-home-guide-playbook-strip-prev-pc::before {
  left: 0;
  background: linear-gradient(270deg, transparent 0%, var(--bg-default) 74%);
}
.wb-home-guide-playbook-strip-next-pc::after {
  right: 0;
  background: linear-gradient(90deg, transparent 0%, var(--bg-default) 74%);
}
.wb-home-guide-playbook-list-pc {
  display: flex;
  gap: var(--space-3);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  padding-block: var(--space-3);
  padding-right: calc(var(--space-10) + var(--space-2));
  margin-block: calc(var(--space-3) * -1);
  scroll-snap-type: x proximity;
  scrollbar-width: none;
}
.wb-home-guide-playbook-list-pc::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}
.wb-home-guide-playbook-prev-pc,
.wb-home-guide-playbook-next-pc {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: var(--border-width-thin) solid var(--fill-primary);
  border-radius: var(--radius-full);
  background: var(--bg-default);
  color: var(--icon-tertiary);
  box-shadow: var(--shadow-1);
  cursor: pointer;
  transform: translateY(-50%);
  transition: border-color 150ms ease, color 150ms ease, transform 150ms ease;
}
.wb-home-guide-playbook-prev-pc {
  left: 0;
}
.wb-home-guide-playbook-next-pc {
  right: 0;
}
.wb-home-guide-playbook-prev-pc:hover {
  border-color: var(--border-default);
  color: var(--icon-secondary);
  transform: translateY(-50%) translateX(-2px);
}
.wb-home-guide-playbook-next-pc:hover {
  border-color: var(--border-default);
  color: var(--icon-secondary);
  transform: translateY(-50%) translateX(2px);
}
.wb-home-guide-playbook-prev-icon-pc,
.wb-home-guide-playbook-next-icon-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.wb-home-guide-playbook-prev-icon-pc {
  transform: rotate(180deg);
}
.wb-home-guide-playbook-card-pc {
  position: relative;
  flex: 0 0 224px;
  min-width: 0;
  min-height: 132px;
  border: var(--border-width-thin) solid var(--fill-primary);
  border-radius: var(--radius-2xl-val);
  background: var(--bg-default);
  box-shadow: var(--shadow-1);
  overflow: hidden;
  scroll-snap-align: start;
  transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}
.wb-home-guide-playbook-card-pc:hover {
  border-color: var(--border-default);
  box-shadow: var(--shadow-2);
  transform: translateY(-1px);
}
.wb-home-guide-playbook-card-main-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  width: 100%;
  min-height: 132px;
  padding: var(--space-4);
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.wb-home-guide-playbook-card-top-pc {
  display: flex;
  align-items: center;
}
.wb-home-guide-playbook-icon-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: var(--radius-xl-val);
  background: var(--fill-tertiary);
  color: var(--icon-tertiary);
}
.wb-home-guide-playbook-copy-pc {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-1);
}
.wb-home-guide-playbook-card-title-pc {
  display: -webkit-box;
  overflow: hidden;
  color: var(--text-secondary);
  font-size: var(--fs-caption);
  font-weight: 500;
  line-height: 20px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.wb-home-guide-playbook-card-desc-pc {
  display: -webkit-box;
  overflow: hidden;
  color: var(--text-quaternary);
  font-size: var(--fs-small);
  line-height: 20px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
/* 空态（guide-only）时移除 header 底部间距，引导区紧贴 header */
.wb-home-page-guide-only-pc .wb-home-page-header-pc {
  margin-bottom: 0;
}
.wb-home-page-guide-only-pc .wb-home-guide-dock-pc {
  margin-top: var(--space-10);
}

.profile-header-wrapper-pc {
  margin-bottom: var(--space-8, 32px);
}
/* Overline: 11px / 600 / 0.08em letter-spacing */
.profile-header-label-pc {
  display: inline-block;
  font-size: calc(11px * var(--font-scale));
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brand);
  margin-bottom: var(--space-1, 4px);
}
/* Heading XL: 30px / 600 / 1.2 / -0.015em */
.profile-header-title-pc {
  margin: 0 0 var(--space-2, 8px);
  font-family: var(--font-family-heading);
  font-size: calc(30px * var(--font-scale));
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--text-primary);
}
/* 标题行带 leadingExtra（如资料库侧栏折叠按钮）时：按钮 + 标题同行内联，
 * gap 4px 垂直居中；行内 h1 自身的 margin-bottom 仍生效，撑出与 subtitle 的间距。 */
.profile-header-title-row-pc {
  display: flex;
  align-items: center;
  gap: var(--space-1, 4px);
}
.profile-header-leading-toggle-pc {
  flex-shrink: 0;
}
/* 标题前 emoji：与文字基线对齐，留出右间距 */
.profile-header-emoji-pc {
  margin-right: var(--space-3);
  font-size: calc(28px * var(--font-scale));
  line-height: 1;
  vertical-align: -2px;
}
/* Body M: 14px / 400 / 1.5 */
.profile-header-subtitle-pc {
  margin: 0;
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 1.5;
  color: var(--text-tertiary);
}

/* 资料库侧栏折叠/展开内联按钮：32×32 圆形热区，icon 16px。 */
.knowledge-sidebar-inline-toggle-pc {
  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;
  flex-shrink: 0;
  transition: background-color 150ms ease, color 150ms ease;
}
.knowledge-sidebar-inline-toggle-pc:hover {
  background: var(--bg-primary-active);
  color: var(--icon-primary);
}
.knowledge-sidebar-inline-toggle-pc:active {
  background: var(--bg-primary-active);
  color: var(--icon-primary);
}
.knowledge-sidebar-inline-toggle-pc:focus-visible {
  outline: 2px solid var(--bg-primary-active);
  outline-offset: 2px;
}
.knowledge-sidebar-inline-toggle-pc svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/* UserAccountMenuPC — 头像账户下拉菜单（mindx 独立实现，参考设计稿）
 *
 * 面板通过 portal 挂到 body，跳出 titlebar (z-index:110) 堆叠上下文，
 * 避免被关联管理面板 (z-index:1500) 等遮挡。
 */
.user-account-menu-pc {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
.user-account-menu-trigger-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: none;
  border-radius: var(--radius-full);
  background: transparent;
  cursor: pointer;
  transition: background-color 150ms ease;
}
.user-account-menu-trigger-pc:hover {
  background: var(--fill-tertiary);
}
.user-account-menu-trigger-pc:focus-visible {
  outline: none;
  box-shadow: var(--shadow-1);
}
.user-account-menu-panel-pc {
  position: fixed;
  /* top / right 由 JS 按触发器 getBoundingClientRect 写入 */
  z-index: 2300;
  width: 240px;
  overflow: visible;
  padding: var(--space-2);
  border: calc(var(--border-width-thin) / 2) 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);
}
/* 用户信息行：头像 + 名称 + 版本副标题 */
.user-account-menu-identity-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2);
  min-height: 48px;
}
.user-account-menu-identity-avatar-pc {
  flex-shrink: 0;
}
.user-account-menu-identity-copy-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
  min-width: 0;
}
.user-account-menu-identity-name-pc {
  overflow: hidden;
  color: var(--text-primary);
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.user-account-menu-identity-sub-pc {
  overflow: hidden;
  color: var(--text-tertiary);
  /* stylelint-disable-next-line font-token */
  font-size: 10px;
  font-weight: 400;
  line-height: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 菜单行通用样式（外观 / 退出登录共享） */
.user-account-menu-row-pc {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 32px;
  padding: 0 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: 20px;
  text-align: left;
}
/* 行内前导：图标 + 文案 */
.user-account-menu-row-lead-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.user-account-menu-row-icon-pc {
  flex-shrink: 0;
  color: var(--wb-color-text-primary);
}
/* 可点击行（退出登录）：hover / focus / active 反馈 */
.user-account-menu-action-pc {
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.user-account-menu-action-pc:hover,
.user-account-menu-action-pc:focus-visible,
.user-account-menu-action-pc:active {
  outline: none;
  background: var(--bg-primary-hover);
  color: var(--text-primary);
}
/* 分隔线：外观行与退出登录行上方 */
.user-account-menu-appearance-pc::before,
.user-account-menu-logout-pc::before {
  content: "";
  position: absolute;
  top: calc(-1 * var(--space-2));
  left: 0;
  right: 0;
  height: var(--border-width-thin);
  background: var(--divider);
  pointer-events: none;
}
.user-account-menu-appearance-pc,
.user-account-menu-logout-pc {
  margin-top: var(--space-4);
}
/* 外观行：不可点击（切换由分段控件承载） */
.user-account-menu-appearance-pc {
  color: var(--text-primary);
}
/* 分段切换：浅色 / 深色 */
.user-account-menu-segment-pc {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  gap: 0;
  padding: var(--wb-spacing-50);
  border-radius: var(--wb-radius-200);
  background: var(--wb-color-bg-primary-default);
}
.user-account-menu-segment-item-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* 尺寸是设计稿定值，不套 spacing Token（间距 Token 只用于 padding/margin/gap） */
  min-width: 40px;
  height: 24px;
  padding: 0 var(--wb-spacing-200);
  border: none;
  border-radius: var(--wb-radius-150);
  background: transparent;
  color: var(--wb-color-text-secondary);
  font-family: var(--font-family-body);
  font-size: var(--fs-small);
  font-weight: 400;
  cursor: pointer;
  line-height: 20px;
  transition: background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
}
.user-account-menu-segment-item-pc:hover:not(
    .user-account-menu-segment-item-active-pc
  ) {
  color: var(--wb-color-text-primary);
}
.user-account-menu-segment-item-pc:focus-visible {
  outline: none;
  box-shadow: var(--shadow-1);
}
.user-account-menu-segment-item-active-pc {
  background: var(--wb-button-bg-secondary-hover);
  color: var(--wb-color-text-primary);
  font-weight: var(--fw-semibold);
  box-shadow: var(--shadow-1);
}

/**
 * wb-delete-confirm-modal.less
 *
 * 仅补差异化样式；overlay / panel / header / body / footer 主体样式继承自
 * @mindx/ui-components 的 confirm-modal.less（通过相同 class name 命中）。
 */
/* 仅最近列表的删除弹窗：保持与 ConfirmModalPC 同款宽度/圆角/阴影 */
.wb-delete-confirm-panel-pc {
  /* 锚点 class — 当前无独立视觉调整 */
}
/* 双动作按钮间距（默认 ConfirmModalPC 的 cancel/confirm 也是 gap，复用即可） */
.wb-delete-confirm-footer-pc {
  gap: var(--space-2);
}

/* ========== DocFeedPC ========== */
.doc-feed-wrapper-pc {
  display: flex;
  flex-direction: column;
  width: 100%;
}
/* ---------- 引导区域 ---------- */
.doc-feed-guide-bar-pc {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
  margin-bottom: var(--space-8);
}
.doc-feed-guide-card-pc {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-5);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
  text-align: left;
}
.doc-feed-guide-card-pc:hover {
  background: var(--bg-weak);
  border-color: var(--border-strong);
  box-shadow: var(--shadow-1);
}
.doc-feed-guide-card-icon-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-lg-val);
  background: var(--fill-secondary);
  color: var(--icon-secondary);
  flex-shrink: 0;
}
.doc-feed-guide-card-text-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
  min-width: 0;
}
.doc-feed-guide-card-title-pc {
  font-size: var(--fs-body);
  font-weight: 600;
  color: var(--text-primary);
}
.doc-feed-guide-card-desc-pc {
  font-size: var(--fs-small);
  color: var(--text-tertiary);
}
/* ---------- Tab 栏 ---------- */
.doc-feed-tab-bar-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-1);
  border-radius: var(--radius-lg-val);
  background: var(--fill-secondary);
  margin-bottom: var(--space-6);
  width: -webkit-fit-content;
  width: fit-content;
}
.doc-feed-tab-item-pc {
  display: inline-flex;
  align-items: center;
  padding: var(--space-2) var(--space-4);
  border: none;
  border-radius: var(--radius-lg-val);
  background: transparent;
  color: var(--text-tertiary);
  font-size: var(--fs-caption);
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
  white-space: nowrap;
}
.doc-feed-tab-item-pc:hover {
  color: var(--text-secondary);
}
.doc-feed-tab-active-pc {
  background: var(--bg-default);
  color: var(--text-primary);
  font-weight: 600;
  box-shadow: var(--shadow-1);
}
.doc-feed-tab-active-pc:hover {
  background: var(--bg-default);
  color: var(--text-primary);
}
/* ---------- Table 容器 ---------- */
.doc-feed-table-wrapper-pc {
  width: 100%;
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
}
.doc-feed-table-pc {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
/* ---------- 表头 ---------- */
.doc-feed-table-head-row-pc {
  background: var(--bg-weak);
}
.doc-feed-th-pc {
  padding: var(--space-3);
  font-size: var(--fs-small);
  font-weight: 500;
  line-height: 1.4;
  color: var(--text-tertiary);
  text-align: left;
  border-bottom: 1px solid var(--divider);
  white-space: nowrap;
}
/* ---------- 表体行 ---------- */
.doc-feed-table-row-pc {
  cursor: pointer;
  transition: background-color 120ms ease;
}
.doc-feed-table-row-pc:hover {
  background: var(--bg-weak);
}
.doc-feed-td-pc {
  padding: var(--space-4) var(--space-3);
  font-size: var(--fs-body);
  line-height: 1.5;
  color: var(--text-primary);
  border-bottom: 1px solid var(--divider);
  vertical-align: middle;
}
/* 名称列 */
.doc-feed-td-name-pc {
  overflow: hidden;
}
.doc-feed-name-cell-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.doc-feed-doc-icon-pc {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: calc(18px * var(--font-scale));
  line-height: 1;
  color: var(--icon-secondary);
}
.doc-feed-doc-icon-pc > svg {
  width: 20px;
  height: 20px;
}
.doc-feed-doc-title-pc {
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 重命名输入框：与标题视觉对齐（同字号 / 同行高 / 同色），仅在编辑态出现 */
.doc-feed-rename-input-pc {
  flex: 1;
  min-width: 0;
  padding: var(--space-1) var(--space-2);
  margin: -4px 0;
  /* 行内对齐，避免输入框比 span 高一档导致行高跳变 */
  font-size: var(--fs-body);
  line-height: 1.5;
  color: var(--text-primary);
  background: var(--bg-default);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md-val);
  outline: none;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}
.doc-feed-rename-input-pc:focus {
  border-color: var(--border-focus);
  box-shadow: var(--shadow-1);
}
/* 创建者列 */
.doc-feed-td-creator-pc {
  overflow: hidden;
}
.doc-feed-creator-cell-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.doc-feed-creator-name-pc {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-secondary);
  font-size: var(--fs-caption);
}
.doc-feed-creator-agent-avatar-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--fill-primary);
  color: var(--icon-secondary);
  flex-shrink: 0;
}
/* 文档位置列 */
.doc-feed-td-location-pc {
  overflow: hidden;
}
.doc-feed-location-text-pc {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-tertiary);
  font-size: var(--fs-caption);
}
/* 最近修改列 */
.doc-feed-td-updated-pc {
  color: var(--text-tertiary);
  font-size: var(--fs-caption);
  white-space: nowrap;
}
/* 更多操作列 */
.doc-feed-td-actions-pc {
  padding: 0;
  text-align: center;
  vertical-align: middle;
}
.doc-feed-actions-cell-pc {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.doc-feed-actions-btn-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--icon-tertiary);
  cursor: pointer;
  opacity: 0;
  transition: background-color 150ms ease, color 150ms ease, opacity 150ms ease;
}
.doc-feed-actions-btn-pc:hover {
  background: var(--fill-secondary);
  color: var(--icon-primary);
}
.doc-feed-table-row-pc:hover .doc-feed-actions-btn-pc,
.doc-feed-actions-btn-open-pc {
  opacity: 1;
}
.doc-feed-actions-menu-pc {
  position: absolute;
  top: 100%;
  /*
   * 操作列位于表格最右侧，dropdown 必须向左展开（right: 0），
   * 否则会被 wrapper 的 overflow-x: hidden 裁掉右半边。
   */
  right: 0;
  z-index: 20;
  min-width: 140px;
  padding: var(--space-1);
  background: var(--bg-default);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg-val);
  box-shadow: var(--shadow-3);
}
.doc-feed-actions-menu-item-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border: none;
  background: none;
  font-size: var(--fs-caption);
  color: var(--text-primary);
  cursor: pointer;
  border-radius: var(--radius-md-val);
  transition: background 150ms ease;
}
.doc-feed-actions-menu-item-pc:hover {
  background: var(--fill-secondary);
}
.doc-feed-actions-menu-item-danger-pc {
  color: var(--error);
}
.doc-feed-actions-menu-item-danger-pc:hover {
  background: var(--error-bg);
}
/* ---------- 分页 footer ---------- */
.doc-feed-loading-footer-pc {
  padding: var(--space-4);
  text-align: center;
  color: var(--text-tertiary);
  font-size: var(--fs-small);
}
.doc-feed-end-hint-pc {
  padding: var(--space-4);
  text-align: center;
  color: var(--text-quaternary);
  font-size: var(--fs-small);
}
/*
 * 分页哨兵行：IntersectionObserver 观察对象。
 * 高度极小且无内容/无边框，避免干扰最后一行视觉；保留 1px 高度确保有可计算的几何尺寸。
 */
.doc-feed-sentinel-row-pc {
  height: 1px;
  pointer-events: none;
}
.doc-feed-sentinel-cell-pc {
  padding: 0;
  border: none;
  height: 1px;
}
/* ========== DocFeedEmptyStatePC ========== */
.doc-feed-empty-state-wrapper-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 64px var(--space-8);
  text-align: center;
}
.doc-feed-empty-state-illustration-pc {
  margin-bottom: var(--space-4);
}
.doc-feed-empty-state-emoji-pc {
  font-size: calc(48px * var(--font-scale));
  line-height: 1;
}
.doc-feed-empty-state-title-pc {
  margin: 0 0 var(--space-2);
  font-size: calc(18px * var(--font-scale));
  font-weight: 600;
  line-height: 1.4;
  color: var(--text-primary);
}
.doc-feed-empty-state-subtitle-pc {
  margin: 0 0 var(--space-6);
  font-size: var(--fs-body);
  line-height: 1.6;
  color: var(--text-tertiary);
}
.doc-feed-empty-state-actions-pc {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

/* WbFeedTable — 仅做命名锚点 + 空态文案样式
 * 表格 / 表头 / 行 / icon / hover 全部由 doc-feed-* 类承担，本文件只补差异化样式
 * 所有视觉覆盖在 .wb-feed-table-pc 作用域内，不影响 doc-feed 原始组件
 */
.wb-feed-content-shell-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
/* DESIGN_FALLBACK: doc-feed 位于 ui-components frozen 名单，最近页只能在页面作用域内覆盖既有 doc-feed-* 样式。 */
/* ========== 表格容器：保留设计稿外层描边与圆角，宽度跟随页面内容区 ==========
 * 注意：禁止在此设 overflow: hidden/auto/scroll。
 */
.wb-feed-table-pc {
  box-sizing: border-box;
  width: 100%;
}
.wb-feed-table-pc .doc-feed-table-pc {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate !important;
  border-spacing: 0;
}
/* ========== 外链（kind=link）名称列图标：放大到 20×20（img 与回落 svg 图标都生效） ========== */
.wb-feed-link-icon-pc {
  width: 20px;
  height: 20px;
}
svg.wb-feed-link-icon-pc {
  width: 18px;
  height: 18px;
}
/* ========== 表头：36px 高，透明底 + 0.5px 轻分隔，去掉灰底"框"感 ========== */
.wb-feed-table-pc .doc-feed-table-head-row-pc {
  height: 36px;
  background: transparent !important;
}
/* 表头字号：12px / weight 600 / lh 20px / text-tertiary
 * 表头吸顶规则请见 wb-feed-virtual-table.less 中 .wb-feed-virtual-thead-pc，
 * 唯一滚动容器是 .wb-home-page-body-pc，吸顶 top 会压在 header + tab-row 之下。
 */
.wb-feed-table-pc .doc-feed-th-pc {
  height: 36px;
  padding: 0 var(--space-1) !important;
  font-size: var(--fs-small) !important;
  font-weight: 600 !important;
  line-height: 20px !important;
  color: var(--text-tertiary) !important;
  background: var(--bg-secondary-default) !important;
  border-bottom: 0.5px solid var(--border-default) !important;
}
/* ========== 表体行：48px 高 ========== */
.wb-feed-table-pc .doc-feed-table-row-pc {
  height: 48px;
  transition: background-color 120ms ease;
}
.wb-feed-table-pc .doc-feed-table-row-pc:hover {
  background: transparent !important;
}
.wb-feed-table-pc .doc-feed-table-row-pc:hover .doc-feed-td-pc {
  background: var(--fill-secondary) !important;
}
/* ========== 单元格基础：12px Regular / lh 20px / text-tertiary ========== */
.wb-feed-table-pc .doc-feed-td-pc {
  height: 48px;
  padding: 0 var(--space-1) !important;
  font-size: var(--fs-small) !important;
  font-weight: 400 !important;
  line-height: 20px !important;
  color: var(--text-tertiary) !important;
  border-bottom: 0.5px solid var(--border-default) !important;
}
/* ========== 名称列：14px Regular / text-primary / lh 22px ========== */
.wb-feed-table-pc .doc-feed-td-name-pc {
  padding-right: 0 !important;
  padding-left: 0 !important;
  overflow: hidden;
}
.wb-feed-table-pc .doc-feed-name-cell-pc {
  width: 100%;
}
.wb-feed-table-pc .doc-feed-doc-title-pc {
  font-size: var(--fs-body) !important;
  font-weight: 400 !important;
  color: var(--text-primary) !important;
  line-height: 22px !important;
}
/* 文件 icon 20x20，保留 4px padding */
.wb-feed-table-pc .doc-feed-doc-icon-pc {
  font-size: calc(24px * var(--font-scale)) !important;
  width: 24px !important;
  height: 24px !important;
}
/* ========== 位置列 / 任务列 / 所有者列：12px / text-tertiary ========== */
.wb-feed-table-pc .doc-feed-location-text-pc {
  font-size: var(--fs-small) !important;
  color: var(--text-tertiary) !important;
}
.wb-feed-table-pc .doc-feed-td-updated-pc {
  font-size: var(--fs-small) !important;
  color: var(--text-tertiary) !important;
}
/* 空态：顶部 banner + 下方说明，不渲染表格线框 */
.wb-feed-empty-shell-pc {
  min-height: 360px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: var(--space-8);
  padding: 0 0 var(--space-12);
}
.wb-feed-empty-banner-pc {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
  min-height: 64px;
  padding: var(--space-3) var(--space-4);
  border: var(--border-width-thin) solid var(--border-default) !important;
  border-radius: var(--radius-2xl-val) !important;
  background: var(--bg-weak);
  color: var(--text-secondary);
}
.wb-feed-empty-banner-icon-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  color: var(--icon-secondary);
}
.wb-feed-empty-banner-content-pc {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-0-5);
  min-width: 0;
}
.wb-feed-empty-banner-title-pc {
  min-width: 0;
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: 22px;
}
.wb-feed-empty-banner-desc-pc {
  min-width: 0;
  color: var(--text-tertiary);
  font-size: var(--fs-caption);
  font-weight: 400;
  line-height: 20px;
}
.wb-feed-empty-banner-action-pc,
.wb-feed-empty-banner-close-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  height: 32px;
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-md-val);
  background: var(--bg-default);
  color: var(--text-primary);
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}
.wb-feed-empty-banner-action-pc {
  padding: 0 var(--space-3);
  font-size: var(--fs-caption);
  font-weight: 600;
}
.wb-feed-empty-banner-close-pc {
  width: 32px;
  padding: 0;
  border-color: transparent;
  background: transparent;
  color: var(--icon-tertiary);
}
.wb-feed-empty-banner-action-pc:hover {
  border-color: var(--border-strong);
  background: var(--fill-secondary);
  color: var(--text-primary);
}
.wb-feed-empty-banner-close-pc:hover {
  background: var(--fill-secondary);
  color: var(--icon-secondary);
}
.wb-feed-empty-banner-action-pc:focus-visible,
.wb-feed-empty-banner-close-pc:focus-visible {
  outline: 2px solid var(--brand-tint);
  outline-offset: 2px;
}
.wb-feed-empty-state-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  color: var(--text-tertiary);
}
.wb-feed-empty-icon-pc {
  color: var(--text-disable);
  margin-top: calc(var(--space-12) + var(--space-6));
}
.wb-feed-empty-title-pc {
  margin-top: var(--space-3);
  color: var(--wb-color-text-secondary);
  font-size: var(--fs-16);
  font-weight: 600;
  line-height: 22px;
}
.wb-feed-empty-desc-pc {
  margin-top: var(--space-1);
  color: var(--wb-color-text-tertiary);
  font-size: var(--fs-small);
  line-height: 20px;
}
/* 「添加到任务」行内按钮：定位 标题后、列内靠右；
 * 16px 圆形图标（var(--fs-16)），颜色 --text-tertiary，hover 高亮 + fill-secondary 背景。
 * 下拉菜单中同动作入口已移除。 */
.wb-feed-add-task-btn-pc {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin-right: var(--space-2);
  padding: 0;
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--text-tertiary);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 150ms ease, background-color 150ms ease, color 150ms ease;
}
.wb-feed-add-task-btn-pc .icon-pc {
  font-size: var(--fs-16);
  line-height: 1;
}
.wb-feed-add-task-btn-pc:hover {
  background: var(--fill-secondary);
  color: var(--text-primary);
}
/* 行 hover 时显示「添加到任务」按钮 */
.wb-feed-table-pc .doc-feed-table-row-pc:hover .wb-feed-add-task-btn-pc {
  opacity: 1;
  pointer-events: auto;
}
/* 操作列（最右）：表头无内容、表格单元格容纳三点按钮 */
.wb-feed-th-action-pc {
  padding: 0 !important;
}
/* actions 列宽仅 ~1.1%，more 按钮通过 absolute + overflow:visible 溢出定位显示
 * 让名称列尽可能宽 */
.wb-feed-td-action-pc {
  position: relative;
  overflow: visible;
  padding: 0 !important;
  text-align: center;
  vertical-align: middle;
}
/* 三点 more 按钮：默认隐藏，行 hover 时显示；菜单打开时强制保持显示。
 * absolute 定位覆盖到 actions 列上（列宽仅 1.105% 不够放 24px 按钮），
 * right: 4px 让按钮贴近但不越过虚拟滚动容器右边界（避免被 overflow:auto 裁掉）。 */
.wb-feed-more-btn-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  right: var(--space-1);
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  border-radius: var(--wb-radius-150);
  background: transparent;
  color: var(--text-tertiary);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 150ms ease, background-color 150ms ease, color 150ms ease;
}
.wb-feed-more-btn-pc .icon-pc {
  font-size: var(--fs-16);
  line-height: 1;
}
.wb-feed-more-btn-pc:hover {
  background: var(--bg-primary-hover);
  color: var(--text-primary);
}
.wb-feed-table-pc .doc-feed-table-row-pc:hover .wb-feed-more-btn-pc {
  opacity: 1;
  pointer-events: auto;
}
/* 菜单打开时按钮强制保持显示（避免鼠标移到菜单上、行不再 hover 后按钮闪没） */
.wb-feed-more-btn-active-pc {
  opacity: 1 !important;
  pointer-events: auto !important;
  background: var(--bg-primary-hover);
  color: var(--text-primary);
}
/* 浮动菜单样式覆盖 */
.wb-feed-row-menu-pc.floating-menu-pc {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
  width: 160px;
  min-width: 160px;
  padding: var(--space-2);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-xl-val);
  background: var(--bg-default);
  box-shadow: var(--shadow-level-3);
}
.wb-feed-row-menu-pc .floating-menu-item-pc {
  height: 30px;
  padding: var(--space-1) var(--space-2);
  gap: var(--space-2);
  border-radius: var(--radius-xl-val);
  color: var(--text-primary);
  font-family: var(--font-family-body);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 22px;
}
.wb-feed-row-menu-pc .floating-menu-item-icon-pc {
  width: 16px;
  height: 16px;
  color: var(--icon-secondary);
}
.wb-feed-row-menu-pc .floating-menu-item-icon-pc > .icon-pc,
.wb-feed-row-menu-pc .floating-menu-item-icon-pc > svg {
  width: 16px;
  height: 16px;
  font-size: var(--fs-16);
}
.wb-feed-row-menu-pc .floating-menu-item-danger-pc {
  color: var(--error);
}
.wb-feed-row-menu-pc .floating-menu-item-danger-pc .floating-menu-item-icon-pc {
  color: var(--error);
}
/* 任务列 cell：对齐设计稿，仅保留文字内容 */
.wb-feed-task-cell-pc {
  display: inline-flex;
  align-items: center;
  min-width: 0;
}
.wb-feed-task-text-pc {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-secondary);
  font-size: var(--fs-small);
}
.wb-feed-task-text-pc:hover {
  text-underline-offset: 3px;
  text-decoration: underline;
}
/* 无任务时的弱化符号 */
.wb-feed-task-empty-pc {
  color: var(--text-quaternary);
  font-size: var(--fs-small);
  font-style: normal;
}
.wb-feed-task-empty-pc:hover {
  text-decoration: none;
}

/* ============================================================
 * WbFeedVirtualTable — 虚拟滚动表格样式
 *
 * 虚拟行使用 position:absolute + translateY，依赖外层
 * <tbody> 设 position:relative + height 作为定位容器。
 * ============================================================ */
.wb-feed-virtual-scroll-pc {
  /* 该容器仅作为虚拟表格的宽度锚点，不再是独立滚动容器。
   *
   * 关键：不能设 overflow:auto/hidden/scroll，否则 <thead> 的 position: sticky
   * 会相对该容器（而非页面唯一滚动容器 .wb-home-page-body-pc）计算，
   * 导致 thead 跟随内容一起滚出视口 —— 即"不吸顶"。
   *
   * 页面唯一滚动容器：apps/mindx/src/pages/wb-home-page/pc.less
   *   .wb-home-page-body-pc { overflow-y: auto; }
   * useVirtualizer 的 getScrollElement 也必须指向 .wb-home-page-body-pc
   * （见 wb-feed-virtual-table.tsx），保证滚动/虚拟窗口/吸顶三者共享同一 scroll origin。
   */
  /* 去掉外框和大圆角，只保留白底；分割线由 td border-bottom 承担 */
  background: var(--bg-secondary-default);
}
/* Safari fix: 让整个 <table> 走 block 布局
 * 因为 thead/tbody 已被改为 display:block（见下方 Safari fix 注释），
 * 此时如果 <table> 仍保留 table 显示模式，子元素的 width:100% 会被
 * table 内部布局算法错误解读，导致 thead/tbody 宽度与 table 不一致。
 * 改成 block 后，子级宽度才能稳定按父级 content-box 100% 计算。
 */
.wb-feed-virtual-scroll-pc .doc-feed-table-pc {
  display: block;
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}
/* 表头吸附在页面唯一滚动容器 .wb-home-page-body-pc 顶部。
 *
 * 该容器上已有三层 sticky（见 pc.less）：
 *   1) .wb-home-page-header-pc  → sticky top: calc(0px - var(--space-3))，height 56px
 *      → 停靠时底沿 = -12 + 56 = 44px
 *   2) .wb-home-page-title-pc  → sticky top: calc(56px - var(--space-3)) = 44px
 *      → 内容高 = line-height(32) + padding-bottom(20) = 52px
 *      → 停靠时底沿 = 44 + 52 = 96px
 *   3) .wb-home-tab-row-pc      → sticky top: calc(108px - var(--space-3)) = 96px
 *      → 内容高 = tab(34px) + padding-top(8) + padding-bottom(16) = 58px
 *      → 停靠时底沿 = 96 + 58 = 154px
 * thead 需要在三者之下继续吸顶，故 top = 56 + 52 + 58 - var(--space-3) = 154px。
 * z-index 低于 header (z:3) 与 tab-row (z:2)，避免向上滚时穿透覆盖。
 *
 * Safari 不支持 <thead> 直接设 position/sticky，需 display:block 让其脱离 table 渲染规则。
 */
.wb-feed-virtual-thead-pc {
  width: 100%;
  display: block;
  position: sticky;
  top: calc(165px - var(--space-3));
  z-index: 1;
  /* 透明底 + 底部 0.5px 轻分隔线，去掉灰底"框"感 */
  background: var(--bg-secondary-default);
}
.wb-feed-virtual-thead-pc .doc-feed-table-head-row-pc {
  display: flex;
  width: 100%;
}
.wb-feed-virtual-thead-pc .doc-feed-th-pc {
  display: flex;
  align-items: center;
  box-sizing: border-box;
}
/* Safari fix: <tbody> 在 Safari 中不支持 position:relative，导致内部
 * position:absolute 的 <tr> 会冒泡到更外层定位祖先（表现为 tr 贴到页面顶部）。
 * 通过 display:block 让 tbody 脱离 table 渲染规则，position:relative 才能生效。
 */
.wb-feed-virtual-scroll-pc .doc-feed-table-pc > tbody {
  display: block;
  width: 100%;
}
/* 虚拟行：flex 布局代理 table-cell 宽度（因绝对定位破坏 table 流式布局）
 * 行高 48px */
.wb-feed-virtual-scroll-pc .doc-feed-table-row-pc {
  box-sizing: border-box;
  align-items: stretch;
  height: 48px;
}
.wb-feed-virtual-scroll-pc .doc-feed-td-pc {
  display: flex;
  align-items: center;
  overflow: hidden;
  box-sizing: border-box;
  padding-top: 0;
  padding-bottom: 0;
  border-bottom: 1px solid var(--divider);
}
/* 最后一行不需要底部边框（容器已有底边），需 !important 覆盖 wb-feed-table.less 的 !important */
.wb-feed-virtual-scroll-pc .doc-feed-table-row-last-pc .doc-feed-td-pc {
  border-bottom: none !important;
}
/* 加载 / 到底提示：渐变分割线 + 居中文字 */
.wb-feed-virtual-loading-pc,
.wb-feed-virtual-end-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-6);
  padding: var(--space-1) 0;
  color: var(--text-quaternary);
  font-size: var(--fs-small);
  font-weight: 400;
  line-height: 16px;
}
.wb-feed-virtual-loading-pc::before,
.wb-feed-virtual-end-pc::before,
.wb-feed-virtual-loading-pc::after,
.wb-feed-virtual-end-pc::after {
  content: "";
  flex: 0 1 104px;
  height: 1px;
}
.wb-feed-virtual-loading-pc::before,
.wb-feed-virtual-end-pc::before {
  background: linear-gradient(90deg, transparent, var(--border-strong));
}
.wb-feed-virtual-loading-pc::after,
.wb-feed-virtual-end-pc::after {
  background: linear-gradient(90deg, var(--border-strong), transparent);
}

/**
 * channel-empty-guide.less
 *
 * 频道资料库「未启用引导态」样式（设计稿 node 9514:1038）。
 * 全部使用设计系统 Token（var(--xxx)），严禁硬编码色值 / 间距 / 圆角。
 */
/* 整体容器：全屏居中单列布局 —— 插图+文案块 与 按钮组之间间距 16px */
.channel-empty-guide-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-8);
  height: 100%;
  text-align: center;
  gap: var(--wb-spacing-400);
}
/* 插图 + 文案块（竖排，间距 12px） */
.channel-empty-guide-head-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
}
/* 空态插图（64×64，固定灰阶设计色，随 img 资源渲染） */
.channel-empty-guide-illustration-pc {
  width: 64px;
  height: 64px;
}
/* 标题 + 描述（竖排，间距 4px） */
.channel-empty-guide-texts-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1);
}
/* 大标题（16px，字重 600，text-primary） */
.channel-empty-guide-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);
}
/* 说明文字（12px，text-tertiary，行高 20px） */
.channel-empty-guide-desc-pc {
  margin: 0;
  font-size: var(--fs-small);
  color: var(--text-tertiary);
  line-height: 20px;
}
/* 按钮组（并排，间距 12px） */
.channel-empty-guide-actions-pc {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space-3);
}

/**
 * channel-library-error.less
 *
 * 频道资料库「加载失败」独立态样式。
 * 与 channel-empty-guide 同构（全屏居中单列），保证两态切换时不跳版；
 * 全部使用设计系统 Token（var(--xxx)），严禁硬编码色值 / 间距 / 圆角。
 */
.channel-library-error-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-8);
  height: 100%;
  text-align: center;
  gap: var(--space-3);
}
/* 小号品牌色标签「团队资料库」——与引导态一致，维持频道语境 */
.channel-library-error-badge-pc {
  display: inline-block;
  font-size: var(--fs-small);
  font-weight: var(--fw-medium);
  color: var(--brand);
  line-height: 1.4;
  margin-bottom: var(--space-1);
}
/*
 * 标题用 text-primary 而非 --error：
 * 这是「暂时取不到数据」的可恢复状态，不是破坏性错误；
 * 按设计规范「禁止将错误色用于装饰」，红色留给真正的失败/危险语义。
 */
.channel-library-error-title-pc {
  margin: 0;
  font-size: var(--fs-section-title);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  font-family: var(--font-family-heading);
  line-height: 1.4;
  max-width: 400px;
}
.channel-library-error-desc-pc {
  margin: 0;
  font-size: var(--fs-caption);
  color: var(--text-tertiary);
  line-height: 1.6;
  max-width: 400px;
}
.channel-library-error-actions-pc {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-2);
}

.workspace-empty-state-pc {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 240px;
  padding: var(--space-6, 24px);
  text-align: center;
}
.workspace-empty-state-icon-pc {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-3, 12px);
  border-radius: var(--radius-full);
  color: var(--icon-tertiary);
  background-color: var(--fill-secondary);
}
.workspace-empty-state-text-pc {
  margin: 0;
  color: var(--text-tertiary);
  font-size: var(--fs-body);
  line-height: 1.6;
}

/**
 * 行内缩放步进器（设计稿 item/10-zoom）：`[−] <当前%> [+]  ↻`。
 * __control 是带边框的三段步进框（减 22×22 / 数值 38×22 / 加 22×22），
 * __reset 是右侧独立的重置按钮。随宿主 UI 字号缩放（--font-scale）。
 */
.content-zoom-stepper {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  gap: var(--space-1);
}
.content-zoom-stepper__control {
  display: inline-flex;
  align-items: center;
  height: calc(22px * var(--font-scale, 1));
  border: 1px solid var(--border-default);
  border-radius: var(--wb-radius-150);
  overflow: hidden;
  background: var(--bg-default);
}
.content-zoom-stepper__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(22px * var(--font-scale, 1));
  height: 100%;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--text-primary);
  cursor: pointer;
  transition: background-color 120ms ease;
}
.content-zoom-stepper__btn > svg {
  flex-shrink: 0;
}
.content-zoom-stepper__btn:hover:not(:disabled) {
  background: var(--bg-primary-hover);
}
.content-zoom-stepper__btn:disabled {
  color: var(--text-quaternary);
  cursor: not-allowed;
}
.content-zoom-stepper__value {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: calc(38px * var(--font-scale, 1));
  height: 100%;
  padding: 0 var(--space-1);
  border-left: 1px solid var(--border-default);
  border-right: 1px solid var(--border-default);
  color: var(--text-primary);
  font-size: var(--fs-caption);
  font-variant-numeric: tabular-nums;
  -webkit-user-select: none;
          user-select: none;
}
.content-zoom-stepper__reset {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(22px * var(--font-scale, 1));
  height: calc(22px * var(--font-scale, 1));
  padding: 0;
  border: none;
  border-radius: var(--wb-radius-150);
  background: transparent;
  color: var(--text-primary);
  cursor: pointer;
  transition: background-color 120ms ease;
}
.content-zoom-stepper__reset > svg {
  flex-shrink: 0;
}
.content-zoom-stepper__reset:hover:not(:disabled) {
  background: var(--bg-primary-hover);
}
.content-zoom-stepper__reset:disabled {
  color: var(--text-quaternary);
  cursor: not-allowed;
}

.doc-titlebar-wrapper-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  container-type: inline-size;
  height: 56px;
  padding: 0 var(--space-6);
  background: var(--bg-secondary-default);
  border-bottom: 1px solid var(--divider);
  position: relative;
  z-index: 110;
  flex-shrink: 0;
}
.doc-titlebar-wrapper-with-left-extra-pc {
  padding-left: var(--space-3) !important;
}
.doc-titlebar-left-pc {
  display: flex;
  align-items: center;
  gap: 0;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}
.doc-titlebar-left-extra-pc {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin-right: var(--space-1);
}
/* ---- 关联入口 pill：标题右边，图标 + 数量 ----
 * 规格与 ardot「关联管理」组件 1:1 对齐：
 * - 24px 高、padding 0/8px、gap 4px
 * - 8px 圆角（圆角矩形，非胶囊）
 * - 1px 边框，颜色 #E6E6E6（近似 --border-default）
 * - 图标 12x12，数字 12px / Regular
 */
.doc-titlebar-relation-pill-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  flex-shrink: 0;
  height: var(--space-6);
  margin-left: var(--space-2);
  padding: 0 var(--space-2);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: transparent;
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}
.doc-titlebar-relation-pill-pc:hover {
  background: var(--fill-secondary);
  color: var(--text-primary);
  border-color: var(--border-strong);
}
.doc-titlebar-relation-pill-count-pc {
  font-weight: 400;
  min-width: 8px;
  text-align: center;
}
.doc-titlebar-sidebar-toggle-pc {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
/* 同步 pill：位于右侧操作按钮组最前，紧挨工具栏图标左侧，与后面的图标保持间距 */
.doc-titlebar-sync-pill-pc {
  flex-shrink: 0;
  margin-right: var(--space-2);
}
/* 返回按钮 — DESIGN.md Ghost Button 规范，< 形 */
.doc-titlebar-back-btn-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-left: -8px;
  padding: 0;
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--icon-tertiary);
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 150ms ease, color 150ms ease;
}
.doc-titlebar-back-btn-pc:hover {
  background: var(--feedback-hover);
  color: var(--icon-primary);
}
.doc-titlebar-back-btn-pc:focus-visible {
  outline: none;
  box-shadow: var(--shadow-1);
}
.doc-titlebar-right-pc {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  flex-shrink: 0;
}
/* rightExtra（通知/登录等外部注入内容）与内部操作按钮的分隔 */
.doc-titlebar-right-extra-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-left: var(--space-3);
}
.doc-titlebar-share-wrapper-pc {
  position: relative;
}
.doc-titlebar-publish-wrapper-pc {
  position: relative;
}
.doc-titlebar-more-wrapper-pc {
  position: relative;
  /* 更多菜单打开时，按钮呈现选中态背景（与 ghost hover 反馈对齐，
     用 fill-primary 比 hover 的 fill-secondary 略重一档，表达"持续激活"） */
}
.doc-titlebar-more-wrapper-pc.is-open .btn-ghost-pc {
  background: var(--fill-primary);
  color: var(--icon-primary);
}
/* Live 按钮 — 与分享/评论/更多保持一致的 secondary 灰色风格 */
.doc-titlebar-live-btn-pc {
  position: relative;
}
/* 编辑/预览切换下拉 trigger：去掉下拉打开时的绿色焦点边框
   （浏览器/Radix DropdownMenu 打开时会触发 :focus-visible，描边色取自
   theme --border-focus，在 WorkBuddy teal 主题下显示为绿色，与 ghost 风格冲突） */
.doc-titlebar-edit-dropdown-trigger-pc:focus-visible {
  outline: none;
}
/* 编辑/预览切换下拉 trigger：加 1px 灰色圆角边框让 ghost 按钮有边界感
   （btn-ghost 默认无边框，hover 才有 fill 反馈，但下拉 trigger 是稳定可见
   状态，需要静态边框和左右其他 icon-only 按钮区分开） */
.doc-titlebar-edit-dropdown-trigger-pc {
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg-val);
  padding: 0 12px;
  gap: var(--space-2);
}
/* trigger 按钮文字字号 14px（btn-sm-pc 默认 12px 偏小） */
.doc-titlebar-edit-dropdown-trigger-label-pc {
  font-size: 14px;
}
/* 下拉展开时箭头旋转 180° 朝上 */
.doc-titlebar-edit-dropdown-arrow-pc {
  transform: rotate(180deg);
}
/* 编辑/预览切换下拉项 — 选中态用主题色高亮文字和图标
   选中项天然 disabled（点击同模式是 no-op），但禁用态会触发
   data-disabled:opacity-50 把品牌色冲淡到 50%，需要覆盖回 1。
   不加背景色蒙层（避免和 hover 态混淆）。 */
.doc-titlebar-edit-dropdown-content-pc [data-selected] {
  color: var(--brand);
  opacity: 1;
}
.doc-titlebar-edit-dropdown-content-pc [data-selected] > svg {
  color: var(--brand);
}
/* 编辑/预览切换下拉项 — 紧凑布局 */
.doc-titlebar-edit-dropdown-content-pc [data-slot="dropdown-menu-item"] {
  padding: 8px 12px;
  gap: var(--space-2);
  /* 覆盖 Radix 默认 [&_svg]:size-4(16px)，与顶部栏 trigger icon 的 md(20px) 一致 */
}
.doc-titlebar-edit-dropdown-content-pc [data-slot="dropdown-menu-item"] > svg {
  width: 20px;
  height: 20px;
}
/* 第一个 item 的下 padding 减半，让两 item 之间的内间距收紧 */
.doc-titlebar-edit-dropdown-content-pc [data-slot="dropdown-menu-item"]:first-child {
  padding-bottom: 4px;
}
/* 后续 item 的上 padding 减半 */
.doc-titlebar-edit-dropdown-content-pc [data-slot="dropdown-menu-item"] + [data-slot="dropdown-menu-item"] {
  padding-top: 4px;
}
/* 编辑/预览切换下拉项 — 文字占满剩余空间，
   把对勾 Icon 自动推到菜单最右侧 */
.doc-titlebar-edit-dropdown-content-pc [data-slot="dropdown-menu-item"] > span {
  flex: 1;
}
/* ai 图标视觉重心偏下，微调 1px 使其与其他图标视觉居中 */
.doc-titlebar-icon-ai-pc {
  transform: translateY(-1px);
}
/* ---- 编辑按钮 sparkle 动画（进入编辑态时激活） ---- */
.doc-titlebar-web-action-button-pc .doc-titlebar-view-mode-icon-edit-pc .html-edit-icon-sparkle-pc {
  transform-box: fill-box;
  transform-origin: 50% center;
  will-change: transform;
}
.doc-titlebar-web-action-button-pc.doc-titlebar-view-mode-segment-active-pc .doc-titlebar-view-mode-icon-edit-pc .html-edit-icon-sparkle-pc {
  animation: doc-titlebar-mode-edit-sparkle-scale-pc 1.15s ease-in-out infinite;
}
/* 编辑态选中：ghost 按钮持续高亮背景 + 图标强调色 */
.doc-titlebar-web-action-button-pc.doc-titlebar-view-mode-segment-active-pc {
  background: var(--fill-primary);
  color: var(--icon-primary);
}
/* ---- 评论按钮打字动画（进入评论态时激活） ---- */
.doc-titlebar-view-mode-icon-comment-pc {
  position: relative;
  display: inline-flex;
}
.doc-titlebar-view-mode-icon-comment-pc .doc-titlebar-view-mode-comment-typing-pc {
  opacity: 0;
  display: inline-flex;
  position: absolute;
  bottom: var(--space-2);
  left: 50%;
  transform: translateX(-50%);
  /* stylelint-disable-next-line font-token -- 子像素微间距，无对应 token */
  gap: 2px;
}
.doc-titlebar-view-mode-comment-typing-pc span {
  width: 2px;
  height: 2px;
  background: currentcolor;
  border-radius: var(--radius-full-val);
}
.doc-titlebar-web-action-button-pc.doc-titlebar-view-mode-segment-active-pc .doc-titlebar-view-mode-icon-comment-pc .doc-titlebar-view-mode-comment-typing-pc {
  opacity: 1;
}
.doc-titlebar-web-action-button-pc.doc-titlebar-view-mode-segment-active-pc .doc-titlebar-view-mode-icon-comment-pc .doc-titlebar-view-mode-comment-typing-pc span {
  animation: doc-titlebar-mode-comment-typing-pc 1.2s ease-in-out infinite;
}
.doc-titlebar-web-action-button-pc.doc-titlebar-view-mode-segment-active-pc .doc-titlebar-view-mode-icon-comment-pc .doc-titlebar-view-mode-comment-typing-pc span:nth-child(2) {
  animation-delay: 0.12s;
}
.doc-titlebar-web-action-button-pc.doc-titlebar-view-mode-segment-active-pc .doc-titlebar-view-mode-icon-comment-pc .doc-titlebar-view-mode-comment-typing-pc span:nth-child(3) {
  animation-delay: 0.24s;
}
@keyframes doc-titlebar-mode-comment-typing-pc {
  0%,
  60%,
  100% {
    transform: translateY(0);
  }
  30% {
    transform: translateY(-4px);
  }
}
@keyframes doc-titlebar-mode-edit-sparkle-scale-pc {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(0.8);
  }
}
.doc-titlebar-comment-wrapper-pc {
  position: relative;
}
/* web 节点评论态：按钮选中态（fill 背景） */
.doc-titlebar-comment-active-pc,
.doc-titlebar-edit-active-pc {
  background: var(--fill-primary);
  color: var(--text-primary);
}
.doc-titlebar-comment-unread-dot-pc {
  position: absolute;
  top: var(--space-1);
  right: var(--space-1);
  width: 8px;
  height: 8px;
  border-radius: var(--radius-full);
  background: var(--error);
  border: 2px solid var(--bg-default);
  pointer-events: none;
}
.doc-titlebar-share-btn-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--text-secondary);
  font-family: var(--font-family-body);
  font-size: var(--fs-caption);
  font-weight: 500;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: all 0.2s ease-out;
}
.doc-titlebar-share-btn-pc:hover {
  background: var(--fill-tertiary);
  color: var(--text-primary);
}
.doc-titlebar-more-btn-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.2s ease-out;
}
.doc-titlebar-more-btn-pc:hover {
  background: var(--fill-tertiary);
  color: var(--text-primary);
}
/* ========== 面包屑 ========== */
.doc-titlebar-breadcrumb-pc {
  display: flex;
  align-items: center;
  flex: 0 1 auto;
  min-width: 0;
  max-width: min(100%, 640px);
  overflow: hidden;
}
.doc-titlebar-breadcrumb-segment-pc {
  display: inline-flex;
  align-items: center;
  flex: 0 1 auto;
  min-width: 0;
}
.doc-titlebar-breadcrumb-segment-pc:last-child {
  flex: 0 0 auto;
  max-width: 100%;
}
.doc-titlebar-breadcrumb-sep-pc {
  flex-shrink: 0;
  margin: 0 var(--space-1);
  color: var(--text-quaternary);
  font-size: var(--fs-body);
  -webkit-user-select: none;
          user-select: none;
}
.doc-titlebar-breadcrumb-link-pc {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  height: 28px;
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--text-tertiary);
  font-size: var(--fs-body);
  font-weight: 500;
  cursor: pointer;
  padding: 0 var(--space-1);
  white-space: nowrap;
  overflow: hidden;
  transition: background-color 150ms ease, color 150ms ease;
}
.doc-titlebar-breadcrumb-link-pc:hover {
  background: var(--fill-secondary);
  color: var(--text-primary);
}
.doc-titlebar-breadcrumb-current-pc {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
}
.doc-titlebar-breadcrumb-segment-pc:last-child .doc-titlebar-breadcrumb-current-pc {
  max-width: 100%;
}
.doc-titlebar-breadcrumb-icon-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-right: var(--space-1);
  border-radius: var(--radius-sm-val);
  color: var(--icon-secondary);
  font-size: var(--fs-small);
  line-height: 1;
}
.doc-titlebar-breadcrumb-icon-pc > svg {
  width: 16px;
  height: 16px;
}
/* 根节点（个人/空间，不可点击） */
.doc-titlebar-breadcrumb-root-pc {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  color: var(--text-tertiary);
  font-size: var(--fs-body);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
}
.doc-titlebar-breadcrumb-text-pc {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 面包屑折叠省略号 */
.doc-titlebar-breadcrumb-ellipsis-pc {
  flex-shrink: 0;
  color: var(--text-quaternary);
  font-size: var(--fs-body);
  -webkit-user-select: none;
          user-select: none;
  padding: 0 var(--space-0-5);
}
/* 面包屑后的编辑信息 */
.doc-titlebar-meta-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
  margin-left: var(--space-3);
}
.doc-titlebar-meta-text-pc {
  font-size: var(--fs-small);
  color: var(--text-quaternary);
  white-space: nowrap;
}
/* 移动端简化模式 — 高度覆盖为 48px */
.doc-titlebar-wrapper-mobile-pc {
  height: 48px;
  padding: 0 var(--space-4);
}
.main-layout-wrapper-collapsed-pc .doc-titlebar-wrapper-mobile-pc {
  padding-left: var(--space-4);
}
/* 移动端简化模式 — 评论按钮（图标 + 文字） */
.doc-titlebar-mobile-comment-btn-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--text-secondary);
  font-family: var(--font-family-body);
  font-size: var(--fs-body);
  font-weight: 500;
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.doc-titlebar-mobile-comment-btn-pc:hover {
  background: var(--fill-secondary);
  color: var(--text-primary);
}
/* 移动端简化模式 — 评论模式「退出」按钮 */
.doc-titlebar-mobile-comment-mode-exit-pc {
  display: inline-flex;
  align-items: center;
  padding: var(--space-2) 0;
  border: none;
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--text-secondary);
  font-family: var(--font-family-body);
  font-size: var(--fs-body);
  font-weight: 400;
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.doc-titlebar-mobile-comment-mode-exit-pc:hover {
  background: var(--fill-secondary);
  color: var(--text-primary);
}
/* 移动端简化模式 — 评论模式「查看所有评论(N)」文字 */
.doc-titlebar-mobile-comment-mode-count-pc {
  font-family: var(--font-family-body);
  font-size: var(--fs-body);
  font-weight: 400;
  color: var(--text-secondary);
}
@container (max-width: 720px) {
  .doc-titlebar-meta-pc {
    display: none;
  }
  .doc-titlebar-breadcrumb-sep-pc {
    margin: 0 var(--space-1);
  }
  .doc-titlebar-breadcrumb-link-pc,
  .doc-titlebar-breadcrumb-root-pc {
    max-width: none;
  }
  .doc-titlebar-breadcrumb-current-pc {
    max-width: none;
  }
}

.doc-titlebar-info-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  overflow: hidden;
}
.doc-titlebar-info-icon-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  color: var(--icon-primary);
  opacity: 0.7;
  transition: opacity 0.2s ease-out;
}
.doc-titlebar-info-icon-pc:hover {
  opacity: 1;
}
.doc-titlebar-info-title-pc {
  margin: 0;
  font-family: var(--font-family-heading);
  font-size: calc(15px * var(--font-scale));
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex-shrink: 1;
  min-width: 0;
}

/**
 * z-index 说明：
 * 菜单通过 portal 挂到 body，跳出 titlebar (z-index:110) 的堆叠上下文，
 * 避免被评论侧栏 doc-comment-panel (z-index:900) 遮挡。
 * 提到 2000/2001，与同目录 comment-quick-menu 对齐。
 */
.doc-titlebar-more-overlay-pc {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2000;
}
.doc-titlebar-more-menu-pc {
  position: fixed;
  min-width: 160px;
  padding: var(--space-2);
  background: var(--bg-popover);
  border: calc(var(--border-width-thin) / 2) solid var(--wb-color-border-primary);
  border-radius: var(--wb-radius-300);
  box-shadow: var(--wb-shadow-popup-medium);
  color: var(--text-primary);
  font-size: var(--fs-caption);
  -webkit-user-select: none;
          user-select: none;
  z-index: 2001;
}
.doc-titlebar-more-menu-group-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
  /* 相邻分组之间用 divider token 画分隔线，首组不带线；
     上下留 var(--space-1) 空白，让分隔线与前后菜单项呼吸感一致 */
}
.doc-titlebar-more-menu-group-pc + .doc-titlebar-more-menu-group-pc {
  margin-top: var(--space-1);
  padding-top: var(--space-1-5);
  border-top: 1px solid var(--divider);
}
.doc-titlebar-more-menu-item-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  height: 32px;
  padding: 0 var(--space-2);
  border: none;
  border-radius: var(--wb-radius-150);
  background: transparent;
  color: var(--text-primary);
  font-family: var(--font-family-body);
  font-size: var(--fs-body);
  cursor: pointer;
  transition: background-color 120ms ease;
  text-align: left;
}
.doc-titlebar-more-menu-item-pc:hover {
  background: var(--bg-primary-hover);
}
.doc-titlebar-more-menu-item-pc > svg {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: var(--text-primary);
}
.doc-titlebar-more-menu-item-danger-pc {
  color: var(--error);
}
.doc-titlebar-more-menu-item-danger-pc > svg {
  color: var(--error);
}
.doc-titlebar-more-menu-item-danger-pc:hover {
  background: var(--error-bg);
}
.doc-titlebar-more-menu-item-text-pc {
  flex: 1;
}
/* 缩放行：图标 + 「缩放」文案 + 右侧行内步进器；整行不可点击，无 hover 高亮 */
.doc-titlebar-more-menu-zoom-row-pc {
  cursor: default;
}
.doc-titlebar-more-menu-zoom-row-pc:hover {
  background: transparent;
}
.doc-titlebar-more-menu-switch-pc {
  cursor: default;
}
.doc-titlebar-more-menu-switch-pc .bg-brand {
  background: var(--switch-active-bg);
}
.doc-titlebar-more-menu-switch-pc .bg-bg-strong {
  background: var(--switch-bg);
}
.doc-titlebar-more-menu-switch-pc:hover {
  background: transparent;
}

/**
 * CollaboratorAvatarsPC — 协作人头像组样式
 *
 * 双组结构：外层 wrapper 横排 Agent 组 + 分隔条 + Human 组。
 * Hover 高亮单元 = 整个外层 wrapper（包括 Agent 头像 + 分隔条 + Human 头像 + +N 按钮）。
 */
/* 外层双组容器（hover 高亮 + 点击切换 Popover 的统一单元） */
.doc-titlebar-collaborator-groups-pc {
  /* 重置 button 默认外观，保留 button 的语义和键盘行为 */
  -webkit-appearance: none;
          appearance: none;
  border: none;
  background: transparent;
  font: inherit;
  color: inherit;
  display: inline-flex;
  align-items: center;
  margin-right: var(--space-2);
  padding: var(--space-0-5) var(--space-1-5);
  border-radius: var(--radius-2xl-val);
  cursor: pointer;
  transition: background-color 150ms ease, box-shadow 150ms ease;
}
.doc-titlebar-collaborator-groups-pc:hover,
.doc-titlebar-collaborator-groups-pc[data-state="open"] {
  background-color: var(--fill-secondary);
  box-shadow: var(--shadow-level-1);
}
.doc-titlebar-collaborator-groups-pc:focus-visible {
  outline: 2px solid var(--border-focus);
  outline-offset: 2px;
}
/* 分隔条：竖线 */
.doc-titlebar-collaborator-divider-pc {
  width: 1px;
  height: 24px;
  background: var(--divider);
  margin: 0 var(--space-2);
  flex-shrink: 0;
}
/* 每组头像容器（不再单独承担 hover 高亮，去除 padding/border-radius） */
.doc-titlebar-collaborator-avatars-pc {
  display: flex;
  align-items: center;
}
.doc-titlebar-collaborator-avatar-item-pc {
  /* 头像叠放：负 margin 让相邻头像重叠约 8px（接近 1/3 直径，适配 22px 头像） */
  margin-left: -8px;
  /* 固定尺寸 = AVATAR_SIZE(22px) + border(2px × 2) */
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  /* flex 居中：确保 img / span 在圆形容器内水平垂直居中 */
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--bg-default);
  border-radius: 50%;
  overflow: hidden;
  /*
   * 覆盖 UserAvatarPC 默认的 hover opacity 0.85：
   * 协作者头像组整体已由外层容器接管 hover 高亮（圆角阴影框），
   * 不需要单个头像再做 hover 反馈，避免视觉上"浮起 / 闪烁"。
   */
}
.doc-titlebar-collaborator-avatar-item-pc:first-child {
  margin-left: 0;
}
.doc-titlebar-collaborator-avatar-item-pc .user-avatar-pc:hover {
  opacity: 1;
}
.doc-titlebar-collaborator-avatar-item-pc .user-avatar-fallback-pc {
  --brand-tint: var(--info);
  --brand: var(--text-allwhite);
}
/* 第 4 个头像位：展示头像并叠加 +N 蒙层 */
.doc-titlebar-collaborator-avatar-more-pc {
  position: relative;
}
.doc-titlebar-collaborator-avatar-more-mask-pc {
  position: absolute;
  inset: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--overlay-default);
  color: var(--text-allwhite);
  font-size: calc(11px * var(--font-scale));
  font-weight: 600;
  line-height: 1;
}
/*
 * 蒙层内的数字 / 箭头两层叠放：
 * - 默认显示数字（总数）
 * - 外层 hover / 点击打开（data-state="open"）→ 切换为下拉箭头
 * - 用 opacity 做交叉淡入淡出，过渡时长与外层背景一致（150ms ease）
 */
.doc-titlebar-collaborator-avatar-more-count-pc,
.doc-titlebar-collaborator-avatar-more-arrow-pc {
  position: absolute;
  inset: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: opacity 150ms ease;
}
.doc-titlebar-collaborator-avatar-more-count-pc {
  opacity: 1;
}
.doc-titlebar-collaborator-avatar-more-arrow-pc {
  opacity: 0;
  /* 箭头视觉上需要比数字稍紧凑，限定一下图标盒子大小 */
}
.doc-titlebar-collaborator-avatar-more-arrow-pc svg {
  width: 14px;
  height: 14px;
}
/* 外层 hover / Popover 打开时，切换数字 → 箭头 */
.doc-titlebar-collaborator-groups-pc:hover .doc-titlebar-collaborator-avatar-more-count-pc,
.doc-titlebar-collaborator-groups-pc[data-state="open"] .doc-titlebar-collaborator-avatar-more-count-pc {
  opacity: 0;
}
.doc-titlebar-collaborator-groups-pc:hover .doc-titlebar-collaborator-avatar-more-arrow-pc,
.doc-titlebar-collaborator-groups-pc[data-state="open"] .doc-titlebar-collaborator-avatar-more-arrow-pc {
  opacity: 1;
}
/* ---- Popover 内容样式 ---- */
.doc-titlebar-collaborator-popover-pc {
  /* shadcn Popover 默认 width: 18rem，给协作者列表留窄一点 */
  width: 240px;
  padding: var(--space-2) 0 !important;
  gap: 0 !important;
  z-index: 130;
  /* 高于 .sc-comment-aside (z-index: 120) */
}
.doc-titlebar-collaborator-popover-title-pc {
  padding: var(--space-1) var(--space-3) var(--space-2);
  font-size: var(--fs-small);
  color: var(--text-tertiary);
  margin-bottom: var(--space-1);
}
/* 第二段及以后的标题保留分隔，但顶部加上间距 */
.doc-titlebar-collaborator-popover-list-pc + .doc-titlebar-collaborator-popover-title-pc {
  margin-top: var(--space-1);
}
/* 整个 Popover 内容的统一滚动容器：标题 + 列表共享一条滚动条 */
.doc-titlebar-collaborator-popover-scroll-pc {
  max-height: 360px;
  overflow-y: auto;
}
.doc-titlebar-collaborator-popover-list-pc {
  list-style: none;
  margin: 0;
  padding: 0;
}
.doc-titlebar-collaborator-popover-item-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1-5) var(--space-3);
  cursor: default;
  transition: background-color 150ms ease;
}
.doc-titlebar-collaborator-popover-item-pc:hover {
  background-color: var(--fill-secondary);
}
.doc-titlebar-collaborator-popover-avatar-pc {
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  /* 抑制单头像 hover 反馈，行级反馈交给 .doc-titlebar-collaborator-popover-item-pc:hover 的背景色 */
}
.doc-titlebar-collaborator-popover-avatar-pc .user-avatar-pc:hover {
  opacity: 1;
}
.doc-titlebar-collaborator-popover-avatar-pc .user-avatar-fallback-pc {
  --brand-tint: var(--info);
  --brand: var(--text-allwhite);
}
.doc-titlebar-collaborator-popover-name-pc {
  flex: 1;
  font-size: var(--fs-caption);
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: center;
  gap: var(--space-1);
}
/* 本人标签（我） */
.doc-titlebar-collaborator-popover-me-tag-pc {
  font-size: calc(11px * var(--font-scale));
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.doc-titlebar-collaborator-popover-tag-pc {
  font-size: calc(11px * var(--font-scale));
  color: var(--text-tertiary);
  padding: 1px var(--space-1-5);
  border-radius: var(--radius-md-val);
  background: var(--fill-primary);
  flex-shrink: 0;
}

/* ====== 权限申请弹窗 ====== */
/* 遮罩 */
.apply-dialog-overlay-pc {
  position: fixed;
  inset: 0;
  z-index: 11000;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--overlay-default);
}
/* 弹窗面板 */
.apply-dialog-panel-pc {
  width: 480px;
  min-height: 360px;
  max-width: calc(100vw - 2rem);
  border-radius: var(--radius-24px-val);
  background-color: var(--bg-default);
  box-shadow: var(--shadow-level-3);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  text-align: left;
  /* DESIGN_FALLBACK: shadow-level-3 未定义，使用内联值兜底 */
  --shadow-level-3: 0 12px 36px rgba(0, 0, 0, 0.16), 0 4px 12px rgba(0, 0, 0, 0.08);
}
/* 头部 */
.apply-dialog-header-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.apply-dialog-title-pc {
  font-size: calc(18px * var(--font-scale));
  font-weight: 600;
  line-height: 28px;
  color: var(--text-primary);
  margin: 0;
}
.apply-dialog-close-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: none;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--icon-secondary);
  cursor: pointer;
  transition: all 150ms ease;
}
.apply-dialog-close-pc:hover {
  background: var(--fill-secondary);
  color: var(--icon-primary);
}
.apply-dialog-close-pc:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
/* 用户信息区 */
.apply-dialog-user-pc {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
/* DESIGN_FALLBACK: 头像区域暂无 token 定义 */
.apply-dialog-avatar-pc {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--brand-subtle);
  color: var(--brand-light);
  flex-shrink: 0;
  overflow: hidden;
  font-size: calc(20px * var(--font-scale));
  font-weight: 600;
  line-height: 1;
  -webkit-user-select: none;
          user-select: none;
}
.apply-dialog-user-info-pc {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.apply-dialog-user-text-pc {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-1);
  font-size: var(--fs-body);
  line-height: 22px;
  color: var(--text-primary);
  margin: 0;
}
.apply-dialog-user-text-pc strong {
  font-weight: 600;
}
/* 「向 {owner}」：设计稿 body md bold */
.apply-dialog-user-owner-pc {
  font-weight: 600;
}
/* 「申请」：设计稿 body md regular */
.apply-dialog-user-action-pc {
  font-weight: 400;
}
/* 权限种类下拉触发器（设计稿 option：gap 2 + 文案 bold + chevron 16） */
.apply-dialog-permission-trigger-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-0-5, 2px);
  padding: 0;
  border: none;
  background: none;
  color: var(--text-primary);
  font-family: inherit;
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: 22px;
  cursor: pointer;
  transition: color 150ms ease;
}
.apply-dialog-permission-trigger-pc:hover {
  color: var(--brand-hover);
}
.apply-dialog-permission-trigger-pc:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.apply-dialog-permission-label-pc {
  white-space: nowrap;
}
/* 固定申请角色时的只读文案（与下拉触发器同一视觉层级，只是不可交互） */
.apply-dialog-permission-static-pc {
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: 22px;
  white-space: nowrap;
}
.apply-dialog-permission-arrow-pc {
  flex-shrink: 0;
  color: var(--icon-secondary);
}
/* 权限种类下拉弹层 */
.apply-dialog-permission-menu-pc {
  z-index: 11001;
  /* 底座默认把宽度锁成触发器宽度（--radix-dropdown-menu-trigger-width），
     会把「查看权限 + 勾选」挤到折行，这里按内容自适应 */
  width: auto;
  min-width: 112px;
  padding: var(--space-1);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  box-shadow: var(--shadow-level-2);
  /* DESIGN_FALLBACK: shadow-level-2 未定义，使用内联值兜底 */
  --shadow-level-2: 0 8px 24px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);
}
.apply-dialog-permission-menu-pc [data-slot="dropdown-menu-item"] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md-val);
  color: var(--text-primary);
  font-size: var(--fs-body);
  line-height: 20px;
  white-space: nowrap;
  transition: background-color 120ms ease;
}
.apply-dialog-permission-menu-pc [data-slot="dropdown-menu-item"]:hover,
.apply-dialog-permission-menu-pc [data-slot="dropdown-menu-item"]:focus {
  background: var(--fill-secondary);
  outline: none;
}
.apply-dialog-permission-menu-pc [data-slot="dropdown-menu-item"][data-selected] {
  font-weight: 500;
}
/* 徽标（集体信息） */
.apply-dialog-badge-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  width: -webkit-fit-content;
  width: fit-content;
  max-width: 100%;
  padding: var(--space-0-5, 2px) var(--space-2, 8px);
  border-radius: var(--radius-full);
  background: var(--fill-secondary);
  font-size: var(--fs-caption);
  line-height: 18px;
  color: var(--text-secondary);
  cursor: default;
}
.apply-dialog-record-icon-pc {
  flex-shrink: 0;
  color: var(--icon-secondary);
}
.apply-dialog-form-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
/* 申请理由 */
.apply-dialog-reason-pc {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.apply-dialog-label-pc {
  font-size: var(--fs-body);
  line-height: 22px;
  color: var(--text-secondary);
}
.apply-dialog-label-hint-pc {
  color: var(--text-quaternary);
}
/* 文本框 */
.apply-dialog-textarea-pc {
  width: 100%;
  height: 120px;
  padding: var(--space-3) var(--space-3);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-2xl-val);
  background: var(--bg-default);
  color: var(--text-primary);
  font-size: var(--fs-16);
  line-height: 24px;
  resize: none;
  outline: none;
  transition: border-color 150ms ease;
}
.apply-dialog-textarea-pc::-webkit-input-placeholder {
  color: var(--text-quaternary);
}
.apply-dialog-textarea-pc::placeholder {
  color: var(--text-quaternary);
}
.apply-dialog-textarea-pc:focus {
  border-color: var(--border-focus);
}
.apply-dialog-textarea-pc:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
/* 常用语区 */
.apply-dialog-quick-pc {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--space-1);
  font-size: var(--fs-caption);
  line-height: 20px;
}
.apply-dialog-quick-label-pc {
  color: var(--text-tertiary);
  white-space: nowrap;
  flex-shrink: 0;
}
.apply-dialog-quick-btn-pc {
  padding: 0;
  border: none;
  background: none;
  color: var(--text-tertiary);
  font-size: var(--fs-caption);
  line-height: 20px;
  cursor: pointer;
  transition: color 150ms ease;
}
.apply-dialog-quick-btn-pc:hover {
  color: var(--brand);
  text-decoration: underline;
}
.apply-dialog-quick-btn-pc:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
/* DESIGN_FALLBACK: 填入按钮暂无标准按钮变体 */
.apply-dialog-fill-btn-pc {
  padding: 0;
  border: none;
  background: none;
  color: var(--text-primary);
  font-size: var(--fs-caption);
  line-height: 20px;
  font-weight: 400;
  cursor: pointer;
  text-decoration: none;
  transition: color 150ms ease;
}
.apply-dialog-fill-btn-pc:hover {
  color: var(--brand-hover);
}
.apply-dialog-fill-btn-pc:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
/* 底部按钮 */
.apply-dialog-footer-pc {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-3);
  padding-top: var(--space-3);
}
.apply-dialog-btn-cancel-pc {
  min-width: 68px;
  height: 32px;
  padding: 0 var(--space-5);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-2xl-val);
  background: var(--bg-default);
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 500;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease;
}
.apply-dialog-btn-cancel-pc:hover {
  background: var(--fill-secondary);
  border-color: var(--border-strong);
}
.apply-dialog-btn-cancel-pc:active {
  background: var(--fill-tertiary);
}
.apply-dialog-btn-cancel-pc:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.apply-dialog-btn-confirm-pc {
  min-width: 68px;
  height: 32px;
  padding: 0 var(--space-5);
  border: none;
  border-radius: var(--radius-2xl-val);
  background: var(--brand);
  color: var(--text-allwhite);
  font-size: var(--fs-body);
  font-weight: 500;
  cursor: pointer;
  transition: background-color 150ms ease;
}
.apply-dialog-btn-confirm-pc:hover {
  background: var(--brand-hover);
}
.apply-dialog-btn-confirm-pc:active {
  background: var(--brand-pressed);
}
.apply-dialog-btn-confirm-pc:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}

/* ====== 顶栏「可查看」权限徽标 ====== */
/* 触发 pill：与关联入口 pill 同规格（24px 高 / 8px 圆角 / 1px 边框） */
.doc-titlebar-permission-pill-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  flex-shrink: 0;
  height: var(--space-6);
  margin-left: var(--space-2);
  padding: 0 var(--space-2);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: transparent;
  color: var(--text-tertiary);
  font-family: inherit;
  font-size: var(--fs-small);
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}
.doc-titlebar-permission-pill-pc:hover,
.doc-titlebar-permission-pill-pc[data-open] {
  background: var(--fill-secondary);
  color: var(--text-primary);
  border-color: var(--border-strong);
}
.doc-titlebar-permission-pill-text-pc {
  white-space: nowrap;
}
.doc-titlebar-permission-pill-arrow-pc {
  flex-shrink: 0;
  color: var(--icon-tertiary);
  transition: transform 150ms ease;
}
.doc-titlebar-permission-pill-pc[data-open] .doc-titlebar-permission-pill-arrow-pc {
  transform: rotate(180deg);
}
/* 下拉面板（Popover 底座默认 tailwind 尺寸，这里按设计稿覆写） */
.doc-titlebar-permission-panel-pc {
  z-index: 200;
  /* 短文案按内容自适应宽度撑宽面板、单行展示；超过上限后不再无限拉长，
     改为让文案正常换行（仍不截断） */
  width: -webkit-max-content;
  width: max-content;
  min-width: 264px;
  max-width: 360px;
  gap: 0;
  padding: var(--space-4);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  box-shadow: var(--shadow-level-2);
  /* DESIGN_FALLBACK: shadow-level-2 未定义 token，使用内联值兜底 */
  --shadow-level-2: 0 8px 24px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);
}
.doc-titlebar-permission-divider-pc {
  height: var(--border-width-thin);
  margin: var(--space-3) 0;
  background: var(--divider);
}
/* ---- 未申请态 ---- */
.doc-titlebar-permission-summary-pc {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
}
.doc-titlebar-permission-summary-icon-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: var(--radius-full);
  background: var(--fill-secondary);
  color: var(--icon-secondary);
}
.doc-titlebar-permission-summary-text-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}
.doc-titlebar-permission-summary-title-pc {
  margin: 0;
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: 22px;
}
.doc-titlebar-permission-summary-owner-pc {
  margin: 0;
  color: var(--text-tertiary);
  font-size: var(--fs-caption);
  line-height: 18px;
}
.doc-titlebar-permission-apply-btn-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  width: 100%;
  min-height: 40px;
  padding: var(--space-2) var(--space-4);
  border: none;
  border-radius: var(--radius-md);
  background: var(--brand);
  color: var(--text-allwhite);
  font-family: inherit;
  font-size: var(--fs-body);
  font-weight: 500;
  cursor: pointer;
  transition: background-color 150ms ease;
}
.doc-titlebar-permission-apply-btn-pc:hover {
  background: var(--brand-hover);
}
.doc-titlebar-permission-apply-btn-pc:active {
  background: var(--brand-pressed);
}
.doc-titlebar-permission-apply-btn-pc:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}
/* ---- 已申请态 ---- */
.doc-titlebar-permission-pending-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.doc-titlebar-permission-pending-icon-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin-bottom: var(--space-3);
  border-radius: var(--radius-full);
  background: var(--fill-secondary);
  color: var(--icon-secondary);
}
.doc-titlebar-permission-pending-title-pc {
  margin: 0;
  color: var(--text-primary);
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: 22px;
}
.doc-titlebar-permission-pending-desc-pc {
  margin: var(--space-1) 0 0;
  color: var(--text-tertiary);
  font-size: var(--fs-caption);
  line-height: 18px;
}
.doc-titlebar-permission-divider-pc + .doc-titlebar-permission-pending-hint-pc {
  margin: 0;
}
.doc-titlebar-permission-pending-hint-pc {
  color: var(--text-quaternary);
  font-size: var(--fs-caption);
  line-height: 18px;
  word-break: break-all;
}
/* 已申请态里的分隔线需要撑满面板宽度 */
.doc-titlebar-permission-pending-pc .doc-titlebar-permission-divider-pc {
  align-self: stretch;
}

/**
 * PublishSyncPrompt 样式
 */
.publish-sync-prompt-pc {
  display: inline-flex;
  align-items: stretch;
  min-width: 0;
  height: 26px;
  border-radius: var(--radius-full);
  background: var(--warning-bg);
  overflow: hidden;
}
/* ===== banner：分享面板内嵌整行（info 左 / 按钮右） ===== */
.publish-sync-prompt-pc.is-banner {
  height: auto;
  border-radius: var(--radius-md-val);
}
.publish-sync-prompt-pc.is-banner .publish-sync-prompt-info-pc {
  flex: 1 1 auto;
  padding: var(--space-2) var(--space-3);
}
/* ===== pill：顶部标题栏左侧紧凑药丸 ===== */
.publish-sync-prompt-pc.is-pill .publish-sync-prompt-info-pc {
  padding: 0 var(--space-1) 0 var(--space-3);
}
/* info 与 button 之间的细分隔线（仅紧凑 pill 需要） */
.publish-sync-prompt-pc.is-pill .publish-sync-prompt-btn-pc {
  border-left: 1px solid var(--border-strong);
}
/* ===== 提示文案 ===== */
.publish-sync-prompt-info-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  color: var(--warning-text);
  font-size: var(--fs-small);
  font-weight: 500;
  white-space: nowrap;
}
.publish-sync-prompt-text-pc {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
/* ===== 立即同步按钮：透明底、warning 文字，与提示同底色 ===== */
.publish-sync-prompt-btn-pc {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  padding: 0 var(--space-3);
  border: 0;
  background: transparent;
  color: var(--warning-text);
  font-size: var(--fs-small);
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  transition: background 150ms ease,
    color 150ms ease;
}
.publish-sync-prompt-btn-pc:hover:not(:disabled) {
  background: var(--warning);
  color: var(--text-allwhite);
}
.publish-sync-prompt-btn-pc:disabled {
  color: var(--text-secondary);
  cursor: not-allowed;
}
/* 同步中：refresh 图标旋转 */
.publish-sync-prompt-spin-pc {
  animation: publish-sync-prompt-spin 800ms linear infinite;
}
@keyframes publish-sync-prompt-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .publish-sync-prompt-spin-pc {
    animation: none;
  }
}

/* ========== 共享版本历史侧边栏（Shell） ========== */
/*
 * --vh-sidebar-width 与「修订卡片侧边栏」对齐：修订卡片由 SDK 的
 * CommentPlugin 渲染，外层 .sc-comment-aside 宽度由 --sc-comment-aside-width
 * 控制，默认 320px（DevTools 实测：div.sc-comment-aside = 320 × N）。
 *
 * 让文档详情页内的右侧侧边栏（文档版本历史 / 修订卡片）同宽，
 * 互斥切换时视觉过渡稳定，正文区让位 padding 也只有一个值需要维护。
 *
 * --vh-sidebar-top-offset：默认 56px 用于补齐 titlebar 高度（全文版本历史
 * 渲染在 .workspace-page-layout-pc，包含 titlebar 子树）。
 */
:root {
  --vh-sidebar-width: 320px;
  --vh-sidebar-top-offset: 56px;
}
.vh-sidebar-pc {
  position: absolute;
  top: var(--vh-sidebar-top-offset);
  bottom: 0;
  right: 0;
  width: var(--vh-sidebar-width);
  z-index: 50;
  background: var(--bg-secondary-default);
  border-left: 1px solid var(--border-default);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: vh-sidebar-slide-in 200ms ease;
}
@keyframes vh-sidebar-slide-in {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
/* ── 顶部 ── */
.vh-sidebar-header-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--space-4);
  border-bottom: 1px solid var(--border-default);
  flex-shrink: 0;
  height: 56px;
}
.vh-sidebar-title-pc {
  margin: 0;
  font-size: var(--fs-body);
  font-weight: 600;
  color: var(--text-primary);
  line-height: 20px;
}
.vh-sidebar-close-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--icon-secondary);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: background-color 150ms ease;
}
.vh-sidebar-close-pc:hover {
  background: var(--fill-secondary);
  color: var(--icon-primary);
}
/* ── 主体（可滚动） ── */
.vh-sidebar-body-pc {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: var(--space-3) var(--space-4);
}
/* ── 分组 ── */
.vh-sidebar-group-pc {
  margin-bottom: var(--space-3);
}
.vh-sidebar-group-label-pc {
  padding: 0 var(--space-2);
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  line-height: 32px;
}
/* ── 列表项 ── */
.vh-sidebar-item-pc {
  display: block;
  width: 100%;
  padding: var(--space-2);
  margin-bottom: var(--space-2);
  border: none;
  background: transparent;
  border-radius: var(--radius-12px-val);
  cursor: pointer;
  text-align: left;
  position: relative;
  transition: background-color 150ms ease, box-shadow 150ms ease;
}
.vh-sidebar-item-pc:hover {
  background: var(--bg-primary-hover);
  /* 截断摘要的渐变遮罩底色跟随 hover 底色，避免露出白底 */
  --vh-summary-bg: var(--bg-primary-hover);
}
.vh-sidebar-item-pc:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: -2px;
}
/* 选中态：浅灰底圆角块高亮（设计图为中性灰底，非品牌色），
 * 日期字色保持普通文本黑（--text-primary）。 */
.vh-sidebar-item-selected-pc {
  background: var(--bg-primary-hover);
  /* 截断摘要的渐变遮罩底色跟随选中底色 */
  --vh-summary-bg: var(--bg-primary-hover);
}
.vh-sidebar-item-selected-pc:hover {
  background: var(--bg-primary-hover);
}
/* 列表项首行：时间 + 角标 */
.vh-sidebar-item-row-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-bottom: var(--space-1);
  line-height: 24px;
}
.vh-sidebar-item-time-pc {
  font-size: var(--fs-body);
  font-weight: 600;
  color: var(--text-primary);
  line-height: 24px;
  font-variant-numeric: tabular-nums;
}
/* 右上 badge（如"当前版本"/"编辑中"） */
.vh-sidebar-item-badge-pc {
  font-size: var(--fs-small);
  color: var(--text-tertiary);
  line-height: 1.4;
  white-space: nowrap;
}
/* 编辑人列表（一行一个：头像 + 姓名） */
.vh-sidebar-item-editors-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.vh-sidebar-item-editor-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-small);
  color: var(--text-primary);
  line-height: 20px;
}
.vh-sidebar-item-editor-pc .avatar-fallback-pc {
  font-size: var(--fs-9);
  line-height: 16px;
}
/* 编辑人姓名文本 */
.vh-sidebar-item-editor-name-pc {
  color: var(--text-primary);
  font-weight: 500;
  font-size: var(--fs-small);
}
/* WorkBuddy 编辑人：浅紫 pill 标签高亮姓名 */
.vh-sidebar-item-editor-name-workbuddy-pc {
  font-weight: 500;
}
/* "展开剩余 N 人" 链接按钮 */
.vh-sidebar-item-expand-pc {
  align-self: flex-start;
  padding: 0;
  margin-top: var(--space-1);
  border: none;
  background: transparent;
  color: var(--brand);
  font-size: var(--fs-caption);
  line-height: 1.4;
  cursor: pointer;
}
.vh-sidebar-item-expand-pc:hover {
  text-decoration: underline;
}
/* ─── 决策/破坏性事件锚点 & Agent 修订摘要（补充说明层） ───
 *
 * 两类文本共用同一容器样式（视觉完全一致，只是内容来源不同）：
 *   1. 决策锚点：接受修订「接受 WorkBuddy 的修订：{summary}」/ 回退版本「还原自 …的版本」
 *   2. Agent 修订摘要（revisionSummary）：WorkBuddy 单独修订记录的摘要
 *
 * 字色档次：
 *   - 基础文本：quaternary（最浅一档灰，柔和）
 *   - 加粗前缀：tertiary（比正文深一档拉出"标题 : 说明"层次，但不至于像 secondary 那样跳）
 */
.vh-sidebar-item-summary-pc {
  position: relative;
  margin-top: var(--space-1);
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  line-height: 20px;
}
.vh-sidebar-item-summary-pc strong {
  font-weight: 400;
  color: var(--text-tertiary);
}
/*
 * 展开/收起按钮：行内文字（"展开"/"收起"）+ 小箭头，紧跟在文本末尾。
 * 截断态时紧接在「截断文本…」之后，展开态时接在完整文本之后，
 * 全部走正常 inline 文档流，与设计图"…展开 ⌄"自然接排一致。
 */
.vh-sidebar-item-summary-toggle-pc {
  display: inline-flex;
  align-items: center;
  padding-left: var(--space-1);
  border: none;
  background: transparent;
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  line-height: 1.6;
  cursor: pointer;
  vertical-align: baseline;
  transition: color 150ms ease;
}
.vh-sidebar-item-summary-toggle-pc:hover {
  color: var(--text-secondary);
}
.vh-sidebar-item-summary-toggle-pc:active {
  color: var(--text-primary);
}
/* 展开/收起箭头：默认向下；收起态（展开后）旋转 180° 指向上 */
.vh-sidebar-item-summary-toggle-icon-pc {
  transition: transform 150ms ease;
}
.vh-sidebar-item-summary-toggle-icon-up-pc {
  transform: rotate(180deg);
}
/* ── 选中态：右上「恢复/还原」图标按钮 ── */
.vh-sidebar-restore-btn-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--icon-secondary);
  border-radius: var(--radius-sm-val);
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 150ms ease;
}
.vh-sidebar-restore-btn-pc:hover {
  background: var(--fill-secondary);
  color: var(--brand);
}
.vh-sidebar-restore-btn-pc:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 1px;
}
.vh-sidebar-restore-btn-pc:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
/* 恢复中脉冲动画 */
@keyframes vh-sidebar-restore-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
.vh-sidebar-restore-spinning-pc {
  animation: vh-sidebar-restore-pulse 1s ease-in-out infinite;
}
/* ── 空状态 ── */
.vh-sidebar-empty-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-12) var(--space-6);
  color: var(--text-tertiary);
  font-size: var(--fs-body);
}
/* ── 加载中 ── */
.vh-sidebar-loading-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-12) var(--space-6);
  color: var(--text-tertiary);
  font-size: var(--fs-body);
}
/* ── 错误态 ── */
.vh-sidebar-error-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-12) var(--space-6);
  color: var(--text-tertiary);
}
.vh-sidebar-error-text-pc {
  margin: 0;
  font-size: var(--fs-body);
  color: var(--text-secondary);
  text-align: center;
}
.vh-sidebar-retry-btn-pc {
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--border-default);
  background: var(--bg-default);
  color: var(--text-primary);
  font-size: var(--fs-caption);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: background-color 150ms ease;
}
.vh-sidebar-retry-btn-pc:hover {
  background: var(--bg-weak);
}
/* ── 触底加载更多 sentinel（不可见占位） ── */
.vh-sidebar-load-more-sentinel-pc {
  height: 1px;
  width: 100%;
}
/* ── 加载更多中 ── */
.vh-sidebar-loading-more-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-3) var(--space-6);
  color: var(--text-tertiary);
  font-size: var(--fs-caption);
}

/**
 * doc-info-modal.less
 *
 * 卡片化字段 + 分组小标题视觉风格（参考产品截图）
 */
/* ---------- Overlay ---------- */
.doc-info-modal-overlay-pc {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--overlay-default);
  animation: doc-info-modal-fade-in 150ms ease;
}
@keyframes doc-info-modal-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* ---------- Panel ---------- */
.doc-info-modal-panel-pc {
  width: 560px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 64px);
  display: flex;
  flex-direction: column;
  background: var(--modal-panel-bg);
  border-radius: var(--radius-xl-val);
  box-shadow: var(--shadow-3);
  animation: doc-info-modal-slide-up 150ms ease;
  overflow: hidden;
}
@keyframes doc-info-modal-slide-up {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ---------- Header ---------- */
.doc-info-modal-header-pc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-4) var(--space-6);
  border-bottom: 1px solid var(--divider);
  flex-shrink: 0;
}
.doc-info-modal-title-pc {
  margin: 0;
  font-size: var(--fs-16);
  font-weight: 600;
  color: var(--text-primary);
  line-height: 24px;
}
/* ---------- Body ---------- */
.doc-info-modal-body-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding: var(--space-5) var(--space-6) var(--space-6);
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}
/* ---------- Section ---------- */
.doc-info-modal-section-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.doc-info-modal-section-title-pc {
  margin: 0;
  font-size: var(--fs-body);
  font-weight: 600;
  color: var(--text-primary);
  line-height: 20px;
}
/* ---------- 栅格 ---------- */
.doc-info-modal-grid-2-pc {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2);
}
/* 统计区数字卡栅格：根据「是否含评论总数」动态切换 2 列 / 3 列 */
.doc-info-modal-grid-stats-pc {
  display: grid;
  gap: var(--space-2);
}
.doc-info-modal-grid-stats-2-pc {
  grid-template-columns: repeat(2, 1fr);
}
.doc-info-modal-grid-stats-3-pc {
  grid-template-columns: repeat(3, 1fr);
}
/* ---------- Card：通用卡片字段 ---------- */
.doc-info-modal-card-pc {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  background: var(--fill-secondary);
  border-radius: var(--radius-lg-val);
  font-size: var(--fs-caption);
  line-height: 20px;
  min-width: 0;
}
.doc-info-modal-card-span-2-pc {
  grid-column: span 2;
}
.doc-info-modal-card-label-pc {
  flex-shrink: 0;
  min-width: 64px;
  color: var(--text-tertiary);
  max-width: 40%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.doc-info-modal-card-value-pc {
  flex: 1;
  min-width: 0;
  color: var(--text-primary);
  display: inline-flex;
  flex-direction: column;
  overflow: hidden;
}
.doc-info-modal-empty-pc {
  color: var(--text-quaternary);
}
/* ---------- 头像 + 名字 ---------- */
.doc-info-modal-person-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
}
.doc-info-modal-person-avatar-pc {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: var(--radius-full);
  background: var(--brand);
  color: var(--text-allwhite);
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 1;
}
/* ---------- 最近修改人 ---------- */
.doc-info-modal-modifier-pc {
  display: block;
  font-size: var(--fs-small);
  color: var(--text-tertiary);
  margin-top: var(--space-0-5);
  line-height: 18px;
}
/* ---------- 关联任务 ---------- */
.doc-info-modal-task-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.doc-info-modal-task-pc .icon-pc {
  color: var(--icon-tertiary);
  flex-shrink: 0;
}
/* 可点击变体：button 重置 + hover 文字加深 + 下划线提示 */
.doc-info-modal-task-clickable-pc {
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: inherit;
  line-height: inherit;
  color: var(--text-primary);
  transition: color 150ms ease;
}
.doc-info-modal-task-clickable-pc:hover {
  color: var(--brand);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.doc-info-modal-task-clickable-pc:hover .icon-pc {
  color: var(--brand);
}
/* ---------- 互动统计大数字卡 ---------- */
.doc-info-modal-bigstat-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  padding: var(--space-4) var(--space-3);
  background: var(--bg-weak);
  border-radius: var(--radius-lg-val);
}
.doc-info-modal-bigstat-label-pc {
  font-size: var(--fs-caption);
  color: var(--text-tertiary);
  line-height: 20px;
}
.doc-info-modal-bigstat-value-pc {
  font-size: calc(20px * var(--font-scale));
  font-weight: 600;
  color: var(--text-primary);
  line-height: 28px;
}

/* ========== MentionCandidateList 候选列表样式 ========== */
.mention-candidate-panel {
  width: 100%;
  min-width: 168px;
  max-height: 240px;
  display: flex;
  flex-direction: column;
  /* 对齐 ardot「中小型弹出菜单」规范：12px 圆角 + 0.5px 描边 + 双层柔和浮层阴影 */
  border: 0.5px solid var(--wb-color-border-primary);
  border-radius: var(--wb-radius-300);
  box-shadow: var(--wb-shadow-popup-medium);
  overflow: hidden;
  /* stylelint-disable-next-line font-token */
  padding: 8px;
  /* stylelint-disable-next-line font-token */
  padding-top: 4px;
  background-color: var(--bg-default);
}
.mention-candidate-list-body {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  /* 行间距统一由这里的 gap 控制，避免下面 item 自身纵向 padding 与相邻行叠加成两倍间距 */
  gap: var(--space-1);
}
.mention-candidate-empty {
  text-align: center;
  color: var(--text-quaternary);
  font-size: var(--fs-small);
  padding: var(--space-2) 0;
}
.mention-candidate-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-2) 0;
  color: var(--text-tertiary);
  font-size: var(--fs-small);
}
.mention-candidate-loading::before {
  content: "";
  width: 14px;
  height: 14px;
  border: 2px solid var(--border-default);
  border-top-color: var(--brand);
  border-radius: 50%;
  animation: mention-spin 0.6s linear infinite;
}
@keyframes mention-spin {
  to {
    transform: rotate(360deg);
  }
}
.mention-candidate-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  /* 固定行高 + 纵向居中，纵向不再用 padding 撑开，避免与相邻行的 padding 叠加 */
  height: 32px;
  padding: 0 var(--space-2);
  cursor: pointer;
  font-size: var(--fs-caption);
  transition: background 0.15s ease;
  border-radius: var(--radius-xl);
}
.mention-candidate-item:last-child {
  margin-bottom: 0;
}
.mention-candidate-item.active {
  background: var(--bg-primary-hover);
}
.mention-candidate-name {
  flex: 1;
  color: var(--text-primary);
  font-size: var(--fs-body);
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mention-candidate-check {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--success);
}

/* ========== MentionCandidateList Mobile — 底部抽屉样式 ========== */
/* 遮罩层 */
.mention-mobile-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background-color: var(--overlay-light);
  -webkit-user-select: none;
  user-select: none;
  touch-action: none;
  opacity: 0;
  transition: opacity 0.24s ease-out;
}
.mention-mobile-overlay.entered {
  opacity: 1;
}
/* 底部抽屉面板 */
.mention-mobile-sheet {
  position: absolute;
  left: 0;
  right: 0;
  /* 底部安全距离默认走 env；容器自身已避让小白条的 WebView（微信等）由
     use-comment-viewport 覆盖 --mobile-comment-safe-bottom，防双重避让悬空 */
  bottom: var(--mobile-comment-safe-bottom, env(safe-area-inset-bottom, 0px));
  /* 与评论面板保持一致：优先使用 JS 写入的 --mobile-comment-vh，未设置时回退到 1vh */
  height: calc(var(--mobile-comment-vh, 1vh) * 92 - var(--mobile-comment-safe-bottom, env(safe-area-inset-bottom, 0px)));
  background: var(--bg-default);
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- sheet 仅顶部圆角 */
  border-radius: 32px 32px 0 0;
  /* stylelint-disable-next-line design-system/no-hardcoded-box-shadow, design-system/no-hardcoded-colors */
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.16);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* 面板整体禁触摸默认行为，拖拽不会沿滚动链透传给背景页面；列表区单独恢复 pan-y */
  touch-action: none;
  transform: translateY(100%);
  transition: transform 0.24s ease-out;
}
.mention-mobile-sheet.entered {
  transform: translateY(0);
}
/* 顶部拖拽指示条 */
.mention-mobile-handle {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  flex-shrink: 0;
  cursor: -webkit-grab;
  cursor: grab;
  touch-action: none;
}
.mention-mobile-handle::after {
  content: "";
  width: 36px;
  height: 5px;
  border-radius: var(--radius-full);
  background: var(--border-strong);
}
/* 头部导航栏 */
.mention-mobile-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--divider);
  flex-shrink: 0;
}
.mention-mobile-back {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  background: none;
  color: var(--text-primary);
  font-size: calc(22px * var(--font-scale));
  font-weight: 300;
  cursor: pointer;
  border-radius: var(--radius-md-val);
  transition: background 0.15s ease;
}
.mention-mobile-back:active {
  background: var(--fill-tertiary);
}
.mention-mobile-title {
  font-size: var(--fs-16);
  font-weight: 600;
  color: var(--text-primary);
}
.mention-mobile-confirm {
  padding: var(--space-2) 0;
  border: none;
  background: none;
  color: var(--brand-light);
  font-size: calc(15px * var(--font-scale));
  font-weight: 500;
  cursor: pointer;
  transition: opacity 0.15s ease;
}
.mention-mobile-confirm:active {
  opacity: 0.7;
}
.mention-mobile-confirm:disabled {
  color: var(--text-quaternary);
  cursor: not-allowed;
}
/* 搜索框 */
.mention-mobile-search {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: var(--space-3) var(--space-4);
  padding: 0 var(--space-3);
  height: 36px;
  border: 1px solid var(--border-default);
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- 搜索框胶囊圆角对齐设计稿 */
  border-radius: 18px;
  background: var(--bg-weak);
  flex-shrink: 0;
  transition: border-color 0.15s ease;
}
.mention-mobile-search:focus-within {
  border-color: var(--border-focus);
}
.mention-mobile-search-icon {
  display: flex;
  align-items: center;
  color: var(--text-quaternary);
  flex-shrink: 0;
}
.mention-mobile-search-input {
  flex: 1;
  height: 100%;
  border: none;
  background: none;
  /* 16px !important 防止 iOS Safari / 微信 X5 自动缩放（避免被外层样式覆盖） */
  font-size: var(--fs-16) !important;
  color: var(--text-primary);
  outline: none;
}
.mention-mobile-search-input::-webkit-input-placeholder {
  color: var(--text-quaternary);
  font-size: var(--fs-16) !important;
}
.mention-mobile-search-input::placeholder {
  color: var(--text-quaternary);
  font-size: var(--fs-16) !important;
}
/* 列表区域 */
.mention-mobile-body {
  flex: 1;
  overflow-y: auto;
  padding: var(--space-1) 0;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  /* 列表只放行纵向滚动 */
  touch-action: pan-y;
}
/* 列表项 */
.mention-mobile-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  font-size: calc(15px * var(--font-scale));
  cursor: pointer;
  transition: background 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}
.mention-mobile-item:active {
  background: var(--fill-secondary);
}
/* 多选 radio（圆形） */
.mention-mobile-checkbox {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  min-width: 20px;
  border: 1px solid var(--border-strong);
  border-radius: 50%;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.mention-mobile-checkbox.checked {
  background: var(--brand);
  border-color: var(--brand);
}
.mention-mobile-checkbox.checked::after {
  content: "";
  display: block;
  width: 5px;
  height: 9px;
  border: solid var(--text-allwhite);
  border-width: 0 1.5px 1.5px 0;
  transform: rotate(45deg) translateY(-1px);
}
.mention-mobile-name {
  color: var(--text-primary);
  line-height: 1.5;
}
/* 空状态 & loading */
.mention-mobile-empty,
.mention-mobile-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-8) 0;
  color: var(--text-tertiary);
  font-size: var(--fs-body);
}
.mention-mobile-loading::before {
  content: "";
  width: 16px;
  height: 16px;
  border: 2px solid var(--border-default);
  border-top-color: var(--brand);
  border-radius: 50%;
  animation: mention-mobile-spin 0.6s linear infinite;
}
@keyframes mention-mobile-spin {
  to {
    transform: rotate(360deg);
  }
}

.database-page-pc {
  display: flex;
  flex-direction: column;
  flex: 1;
  width: 100%;
  margin: 0 auto;
  padding: var(--space-12) var(--space-20);
  box-sizing: border-box;
  overflow-y: auto;
  /* 分屏（关联预览态）：左右 padding 收窄 */
}
.workspace-page-layout-content-relation-preview-pc .database-page-pc {
  padding-left: 24px;
  padding-right: 24px;
}
/* 无标题模式（关联预览场景）：去掉 padding 让内容填满预览区域 */
.database-page-pc--notitle {
  padding: 0;
}
.database-page-pc__header {
  margin-bottom: var(--space-6);
}
.database-page-pc__title {
  margin: 0;
  font-family: var(--font-family-heading);
  font-size: calc(32px * var(--font-scale));
  font-weight: 700;
  line-height: 1.3;
  color: var(--text-primary);
  cursor: text;
  outline: none;
  border: none;
  white-space: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.database-page-pc__title::-webkit-scrollbar {
  display: none;
}
.database-page-pc__body {
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

/**
 * Database 移动端壳：占满 WorkspacePageLayoutMobile content，
 * 无标题区；外层不滚，交给表格内部横/纵滑。
 */
.database-page-mobile {
  display: flex;
  flex-direction: column;
  flex: 1;
  width: 100%;
  height: 100%;
  min-height: 0;
  box-sizing: border-box;
  padding: 0;
  overflow: hidden;
  background: var(--bg-default);
}
.database-page-mobile__body {
  flex: 1;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.database-page-mobile__body > * {
  flex: 1;
  min-height: 0;
  min-width: 0;
}

.comment-float-bubble {
  position: fixed;
  top: 72px;
  right: var(--space-4);
  z-index: 24;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  width: 44px;
  height: 44px;
}
.comment-float-bubble-body {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--bg-default);
  color: var(--text-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-lv2);
  transition: transform 150ms ease, box-shadow 150ms ease;
}
.comment-float-bubble:hover .comment-float-bubble-body,
.comment-float-bubble.open .comment-float-bubble-body {
  transform: scale(1.06);
  box-shadow: var(--shadow-lv3);
}
.comment-float-bubble-body .lucide-message-square {
  color: var(--text-primary);
  stroke: var(--text-primary);
}
.comment-float-bubble-badge {
  position: absolute;
  top: -2px;
  right: -4px;
  min-width: 20px;
  height: 20px;
  padding: 0 var(--space-1);
  border-radius: 50%;
  background: var(--brand-pressed);
  color: var(--text-allwhite);
  font-size: calc(11px * var(--font-scale, 1));
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transform: translateY(-0.5px);
  text-align: center;
  box-sizing: border-box;
  border: 2px solid var(--bg-default);
  pointer-events: none;
  white-space: nowrap;
}

/* ============================================================
 * WebPage PC — iframe 自身滚动（非外层统一滚动）
 *
 * 外层不做 overflow-y:auto，iframe 保持自身原生滚动。
 * badge / outline 用 position:fixed + host-viewport 坐标（anchorRects）。
 * 评论区作为 flex 子项与内容区并排。
 * ============================================================ */
/* ── web-page-pc 默认布局 ── */
.web-page-pc {
  display: flex;
  flex-direction: row !important;
  flex: 1;
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
}
.web-page-content-loading-mask-pc {
  position: absolute;
  inset: 0;
  z-index: 200;
  display: flex;
  background: var(--bg-default);
  pointer-events: auto;
}
/* ── 跨页评论跳转「导航中」：鼠标 loading 态 + 禁用评论卡片再次点击 ──
 * 仅禁用评论卡片/角标的点击，不遮挡 iframe 本身内容交互。 */
.web-page-pc.web-page-navigating-pc {
  cursor: wait;
}
.web-page-pc.web-page-navigating-pc .comment-thread-pc,
.web-page-pc.web-page-navigating-pc .comment-thread-draft-pc,
.web-page-pc.web-page-navigating-pc .floating-comment-sidebar,
.web-page-pc.web-page-navigating-pc [data-comment-badge],
.web-page-pc.web-page-navigating-pc [data-dm-badge],
.web-page-pc.web-page-navigating-pc [data-dm-comment-card] {
  cursor: wait;
  /* 禁止导航期间再次点击评论卡片/角标触发新的跳转 */
  pointer-events: none;
}
/* ── 评论面板打开 ── */
.web-page-pc.web-page-comment-open-pc .ai-page-renderer-pc {
  flex: 1;
  min-width: 0;
}
.web-page-pc.web-page-comment-open-pc .ai-page-renderer-container-pc {
  height: 100%;
}
/* ── 评论面板固定（挤压页面，不悬浮） ── */
.web-page-pc.web-page-comment-pinned-pc .ai-page-renderer-pc {
  flex: 1;
  min-width: 0;
}
.web-page-pc.web-page-comment-pinned-pc .ai-page-renderer-container-pc {
  height: 100%;
}
.web-page-pc.web-page-comment-pinned-pc .floating-comment-sidebar.pinned {
  width: 318px;
  flex-shrink: 0;
}
/* ── 评论区面板（flex 子项） ── */
.web-page-comment-layer-pc {
  width: calc(var(--sc-comment-panel-width, 286px) + 32px);
  overflow: auto;
  background: var(--bg-default);
  border-left: 1px solid var(--divider);
  flex-shrink: 0;
  position: relative;
  z-index: 130;
  --web-page-comment-panel-gutter: 16px;
  /* 未解决卡片：绝对定位，左偏移 = gutter */
  /* 已解决列表：填满侧边栏宽度，用 padding 替代 margin-left 居中，确保左右 20px 视觉边距与未解决卡片一致 */
}
.web-page-comment-layer-pc .doc-comment-inline-tabs-pc,
.web-page-comment-layer-pc .doc-comment-inline-layer-pc,
.web-page-comment-layer-pc .doc-comment-inline-empty-pc,
.web-page-comment-layer-pc .doc-comment-inline-loading-pc,
.web-page-comment-layer-pc .doc-comment-inline-resolved-list-pc {
  pointer-events: auto;
}
.web-page-comment-layer-pc .doc-comment-inline-tabs-pc {
  position: sticky;
  top: 0;
  width: 100%;
  background: var(--bg-default);
  border-bottom: 1px solid var(--divider);
  z-index: 300;
}
.web-page-comment-layer-pc .doc-comment-inline-layer-pc {
  position: relative;
  width: 100%;
  -webkit-clip-path: none;
          clip-path: none;
  background: transparent;
  min-height: 100%;
}
.web-page-comment-layer-pc .doc-comment-inline-card-pc {
  left: var(--web-page-comment-panel-gutter) !important;
}
.web-page-comment-layer-pc .doc-comment-inline-resolved-list-pc {
  width: 100%;
  box-sizing: border-box;
  padding: var(--space-6) var(--web-page-comment-panel-gutter);
  margin-left: 0;
}
.web-page-comment-layer-pc .doc-comment-inline-resolved-list-pc .doc-comment-inline-card-pc {
  position: relative;
  left: 0 !important;
  width: 280px;
}
/* ============================================================
 * 窄屏模式（≤768px 内容区）
 *
 * 由 JS 驱动：data-doc-narrow 由 effectiveDocNarrow 控制。
 * block 聚焦模式（角标点击）：评论区覆盖内容区展示悬浮卡片。
 * titlebar 按钮打开（forceWideMode）时 effectiveDocNarrow=false，此段不生效。
 * ============================================================ */
.web-page-pc[data-doc-narrow] {
  height: 100%;
  overflow: hidden;
}
.web-page-pc[data-doc-narrow] .ai-page-renderer-pc {
  flex: 1;
  overflow: hidden;
}
.web-page-pc[data-doc-narrow] .ai-page-renderer-container-pc {
  overflow: auto;
  height: auto;
  min-height: 100%;
}
.web-page-pc[data-doc-narrow].web-page-comment-open-pc {
  height: 100%;
  overflow: hidden;
}
.web-page-pc[data-doc-narrow] .web-page-comment-layer-pc .doc-comment-inline-tabs-pc {
  display: none;
}
.web-page-pc[data-doc-narrow] .web-page-comment-layer-pc .doc-comment-inline-layer-pc {
  z-index: 60;
  pointer-events: none;
  background: transparent;
  border-left: none;
  width: 100%;
  right: 0;
  left: 0;
}
.web-page-pc[data-doc-narrow] .web-page-comment-layer-pc .doc-comment-inline-card-pc[data-expanded="true"] {
  z-index: 1;
}
.web-page-pc[data-doc-narrow] .web-page-comment-layer-pc:has([data-block-focus]) {
  position: absolute;
  inset: 0;
  width: 100%;
  background: transparent;
  pointer-events: none;
}
.web-page-pc[data-doc-narrow] .web-page-comment-layer-pc:has([data-block-focus]) .doc-comment-inline-layer-pc {
  position: absolute;
  inset: 0;
  width: 100%;
}
.web-page-pc[data-doc-narrow] .web-page-comment-layer-pc:has([data-block-focus]) .doc-comment-inline-layer-pc .doc-comment-inline-card-pc[data-expanded="true"] > .comment-thread-pc {
  transform: none !important;
}

/**
 * relation-preview.less
 *
 * 关联项内容预览样式：直接渲染节点内容（不嵌 iframe），
 * 填满抽屉 body 区域。
 */
.relation-drawer-preview-pc {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: auto;
  background: var(--bg-default);
}
.relation-drawer-preview-loading-pc {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-tertiary);
  font-size: var(--fs-body);
  padding: var(--space-8) 0;
}
/* 无权限遮罩：垂直居中，对齐 ardot empty/lock 组件 */
.relation-drawer-preview-no-permission-pc {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  background: var(--bg-default);
}
.relation-drawer-preview-no-permission-icon-pc {
  width: var(--space-12);
  height: var(--space-12);
}
.relation-drawer-preview-no-permission-title-pc {
  font-size: var(--fs-body);
  font-weight: var(--fw-medium);
  color: var(--text-tertiary);
}
.relation-drawer-preview-no-permission-desc-pc {
  font-size: var(--fs-small);
  color: var(--text-quaternary);
  margin-top: calc(-1 * var(--space-2));
}

/**
 * relation-panel.less
 *
 * 关联管理抽屉样式：右侧滑入，不遮挡顶部栏（top: 56px）。
 * 卡片化关联项，含图标 + 标题 + 所有者 + 查看按钮。
 * 无 overlay：面板不拦截页面其它区域的点击，只能通过收起按钮关闭。
 */
/* ---------- Panel ---------- */
.relation-drawer-panel-pc {
  position: fixed;
  /* stylelint-disable-next-line font-token -- titlebar 固定高度，不随 font-scale 缩放 */
  top: 56px;
  right: 0;
  bottom: 0;
  z-index: 1500;
  width: 320px;
  max-width: calc(100vw - 32px);
  display: flex;
  flex-direction: column;
  background: var(--bg-default);
  border-left: 1px solid var(--divider);
  /* stylelint-disable-next-line design-system/no-hardcoded-box-shadow, design-system/no-hardcoded-colors -- 左侧偏移面板阴影，token 无等价值 */
  box-shadow: -8px 0 24px rgba(0, 0, 0, 0.04);
  animation: relation-drawer-slide-in 200ms ease;
  /* visible：允许左侧 resizer 热区跨出面板边界，便于分屏拖拽 */
  overflow: visible;
  transition: width 200ms ease;
}
/* 选中关联项后宽度由 JS inline style 注入（默认 600px），基类已设 transition */
/* 拖拽中禁用过渡（避免拖拽 lag），禁用文字选中 */
.relation-drawer-panel-resizing-pc {
  transition: none !important;
  -webkit-user-select: none;
          user-select: none;
}
/* 拖拽条：热区跨面板左缘（左右各 --space-4 = 16px，总宽 32px），视觉分隔线仍贴边 */
.relation-drawer-resizer-pc {
  position: absolute;
  top: 0;
  left: calc(-1 * var(--space-4));
  bottom: 0;
  width: calc(var(--space-4) * 2);
  z-index: 20;
  cursor: col-resize;
  display: flex;
  align-items: center;
  justify-content: center;
  touch-action: none;
}
.relation-drawer-resizer-pc::after {
  content: "";
  position: absolute;
  top: var(--space-3);
  bottom: var(--space-3);
  left: 50%;
  width: 1px;
  border-radius: var(--radius-full);
  background: transparent;
  transform: translateX(-50%);
  transition: background-color 150ms ease;
  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%);
}
.relation-drawer-resizer-pc:hover::after,
.relation-drawer-resizer-pc:active::after,
.relation-drawer-resizer-pc:focus-visible::after {
  background: var(--border-strong);
}
@keyframes relation-drawer-slide-in {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}
/* ---------- Header ----------
 * 规格与 ardot「页面标题 PageHeader/常规56」1:1 对齐：
 * - 56px 高、padding 0/16px、左区内 gap 4px
 * - 标题 14px Semibold / 行高 20px，副标题 12px Regular / 行高 17px，文字间无 gap
 * - 操作按钮 32×32、圆角 8px
 */
.relation-drawer-header-pc {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  /* stylelint-disable-next-line font-token -- 与 titlebar 固定 56px 对齐 */
  height: 56px;
  padding: 0 var(--space-4);
  border-bottom: 1px solid var(--divider);
  flex-shrink: 0;
}
.relation-drawer-header-text-pc {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  flex: 1;
}
.relation-drawer-title-pc {
  margin: 0;
  font-size: var(--fs-body);
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  line-height: calc(20px * var(--font-scale));
}
.relation-drawer-subtitle-pc {
  font-size: var(--fs-small);
  color: var(--text-tertiary);
  line-height: calc(17px * var(--font-scale));
}
/* 收起按钮：32×32 透明无边框，圆角 8px */
.relation-drawer-collapse-btn-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--icon-secondary);
  border-radius: var(--radius-lg-val);
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 150ms ease;
}
.relation-drawer-collapse-btn-pc:hover {
  background: var(--fill-secondary);
  color: var(--icon-primary);
}
/* 去会话/跳转按钮：与收起按钮同款 32×32 / 圆角 8px */
.relation-drawer-manage-btn-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--icon-secondary);
  border-radius: var(--radius-lg-val);
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 150ms ease;
}
.relation-drawer-manage-btn-pc:hover {
  background: var(--fill-secondary);
  color: var(--icon-primary);
}
/* ---------- Body ---------- */
.relation-drawer-body-pc {
  display: flex;
  flex-direction: column;
  padding: var(--space-3) var(--space-4);
  overflow: auto;
  flex: 1;
  min-height: 0;
}
/* 选中态时 body 不需要纵向 padding，让 preview iframe 填满 */
.relation-drawer-body-pc:has(.relation-drawer-preview-pc) {
  padding: 0 var(--space-6);
  /* 预览 HTML 节点时 padding 全部归零，让 iframe 完全撑满 */
}
.relation-drawer-body-pc:has(.relation-drawer-preview-pc).relation-drawer-body-web-preview-pc {
  padding: 0;
}
/* ---------- Loading ---------- */
.relation-drawer-loading-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-8) 0;
  color: var(--text-tertiary);
  font-size: var(--fs-body);
}
.relation-drawer-loading-spin-pc {
  animation: relation-drawer-spin 0.8s linear infinite;
}
@keyframes relation-drawer-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* ---------- Error ---------- */
.relation-drawer-error-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  padding: var(--space-8) 0;
  color: var(--text-tertiary);
  font-size: var(--fs-body);
}
/* ---------- Empty / deleted ---------- */
.relation-drawer-empty-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-8) 0;
  color: var(--text-quaternary);
  font-size: var(--fs-body);
}
.relation-drawer-empty-pc .icon-pc {
  color: var(--icon-quaternary);
}
/* ---------- Onboarding（0 关联空态） ---------- */
.relation-drawer-onboarding-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  min-height: 0;
  padding: var(--space-6) var(--space-2);
}
.relation-drawer-onboarding-content-pc {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 280px;
  gap: var(--space-3);
  text-align: center;
}
.relation-drawer-onboarding-icon-pc {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin-bottom: var(--space-1);
  border-radius: var(--radius-full);
  background: var(--success-bg);
  color: var(--brand-primary);
}
.relation-drawer-onboarding-icon-pc > svg {
  width: 28px;
  height: 28px;
}
.relation-drawer-onboarding-title-pc {
  margin: 0;
  color: var(--text-primary);
  font-size: var(--fs-section-title);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-section-title);
}
.relation-drawer-onboarding-desc-pc {
  margin: 0;
  color: var(--text-tertiary);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}
.relation-drawer-onboarding-btn-pc {
  width: auto;
  margin-top: var(--space-3);
  flex-shrink: 0;
  align-self: center;
}
/* ---------- List ---------- */
.relation-drawer-list-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
/* ---------- Item 卡片 ---------- */
.relation-drawer-item-pc {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease;
}
.relation-drawer-item-pc:hover {
  background: var(--fill-secondary);
  border-color: var(--border-strong);
}
.relation-drawer-item-icon-wrap-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  color: var(--icon-secondary);
}
.relation-drawer-item-main-pc {
  display: flex;
  flex-direction: column;
  /* stylelint-disable-next-line font-token -- 子像素微间距，无对应 token */
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.relation-drawer-item-title-pc {
  font-size: calc(15px * var(--font-scale));
  font-weight: var(--fw-semibold);
  color: var(--text-primary);
  line-height: calc(26px * var(--font-scale));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.relation-drawer-item-owner-pc {
  font-size: var(--fs-caption);
  color: var(--text-tertiary);
  line-height: calc(23px * var(--font-scale));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 查看按钮：带圆角边框的小方块（参考截图） */
.relation-drawer-view-btn-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md-val);
  background: transparent;
  color: var(--icon-tertiary);
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}
.relation-drawer-view-btn-pc:hover {
  background: var(--fill-secondary);
  border-color: var(--border-strong);
  color: var(--icon-primary);
}

/* 移动端文档标题栏（单行操作行）
 * 结构：分类 pill(左) + 分享按钮(右) + 0.5px 分割线
 */
.doc-titlebar-mobile {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  width: 100%;
  background: var(--bg-page);
  position: relative;
  z-index: 110;
}
/* ===== 单行容器 ===== */
.doc-titlebar-mobile-row {
  flex: 1 0 0;
  align-self: stretch;
  display: flex;
  padding: var(--space-2) var(--space-4);
  align-items: center;
  gap: var(--space-4);
}
.doc-titlebar-mobile-left {
  display: flex;
  align-items: center;
  gap: var(--space-6);
}
.doc-titlebar-mobile-right {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--space-6);
  margin-left: auto;
}
/* ===== 分类 pill：白底 + 1px 边框 + 圆角 ===== */
.doc-titlebar-mobile-category-pill {
  display: flex;
  padding: var(--space-2) var(--space-3);
  justify-content: center;
  align-items: center;
  gap: var(--space-1);
  border: 1px solid var(--border-primary);
  border-radius: var(--radius-xl-val);
  height: 36px;
}
.doc-titlebar-mobile-category-icon {
  width: var(--space-4);
  height: var(--space-4);
  flex-shrink: 0;
}
.doc-titlebar-mobile-category-text {
  color: var(--text-primary);
  font-family: "PingFang SC";
  font-size: var(--fs-body);
  font-weight: 600;
  font-style: normal;
  text-decoration-line: none;
  line-height: 22px;
}
/* ===== 图标按钮（评论 / 分享，共用） ===== */
.doc-titlebar-mobile-icon-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-5);
  height: var(--space-5);
  padding: 0;
  border: none;
  background: transparent;
  color: var(--icon-primary);
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 150ms ease, color 150ms ease;
}
.doc-titlebar-mobile-icon-btn:active {
  background: var(--fill-secondary);
}
/* 未读评论红点 */
.doc-titlebar-mobile-unread-dot {
  position: absolute;
  top: calc(-1 * var(--space-0-5));
  right: calc(-1 * var(--space-0-5));
  width: var(--space-2);
  height: var(--space-2);
  border-radius: var(--radius-full);
  background: var(--error);
  border: 2px solid var(--bg-default);
  pointer-events: none;
}
/* ===== 编辑态顶栏图标按钮（完成 √ / 撤销 / 重做） =====
 * 高度 36px（--space-9）与预览态分类 pill 等高，保证两种状态 header 高度一致，
 * 切换编辑态时文档内容区不发生纵向位移/滚动。
 */
.doc-titlebar-mobile-edit-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: var(--space-1);
}
.doc-titlebar-mobile-edit-header-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-9);
  height: var(--space-9);
  padding: 0;
  border: none;
  background: transparent;
  color: var(--icon-primary);
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 150ms ease, color 150ms ease;
}
.doc-titlebar-mobile-edit-header-btn.is-confirm {
  color: var(--brand-primary);
}
.doc-titlebar-mobile-edit-header-btn:active {
  background: var(--fill-secondary);
}
.doc-titlebar-mobile-edit-header-btn:disabled {
  color: var(--icon-quaternary);
  cursor: not-allowed;
}
/* ===== 分割线 ===== */
.doc-titlebar-mobile-divider {
  width: 100%;
  height: 0.5px;
  background: var(--divider);
  flex-shrink: 0;
}
/* ===== 评论模式（isCommentMode=true，仅 web 节点） =====
 * 左「退出」按钮（arrow-left icon） + 右「查看所有评论(N)」按钮
 * 与 PC 端 DocTitlebarPC 早期 mobileSimplified 块行为一致。
 */
.doc-titlebar-mobile-comment-mode-row {
  /* 复用 .doc-titlebar-mobile-row 布局，仅作语义标识 */
}
.doc-titlebar-mobile-comment-mode-exit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-5);
  height: var(--space-5);
  padding: 0;
  border: none;
  background: transparent;
  color: var(--icon-primary);
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color 150ms ease, color 150ms ease;
}
.doc-titlebar-mobile-comment-mode-exit:active {
  background: var(--fill-secondary);
}
.doc-titlebar-mobile-comment-mode-view-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-1) var(--space-3);
  border: none;
  background: transparent;
  color: var(--text-primary);
  font-family: "PingFang SC";
  font-size: var(--fs-body);
  font-weight: 600;
  line-height: 22px;
  cursor: pointer;
  transition: background-color 150ms ease;
}
.doc-titlebar-mobile-comment-mode-view-all:active {
  background: var(--fill-secondary);
}
.doc-titlebar-mobile-comment-mode-view-all:disabled {
  color: var(--text-quaternary);
  cursor: not-allowed;
}

/* 移动端目录半屏弹窗 + 目录树样式 */
/* ===== 遮罩层 =====
 */
.directory-sheet-overlay {
  position: fixed;
  inset: 0;
  background: var(--overlay-default);
  z-index: 10000;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  animation: directory-sheet-fade-in 150ms ease;
}
@keyframes directory-sheet-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* ===== 底部面板 ===== */
.directory-sheet-panel {
  width: 100%;
  max-width: 100%;
  height: 70vh;
  max-height: 70vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: directory-sheet-slide-up 200ms ease;
  background: var(--bg-secondary-default);
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- sheet 仅顶部圆角，设计稿标定 26px，无对应 token（--radius-4xl-val 在默认主题仅 10px，视觉落差过大）；与 mention-candidate-list-mobile / doc-comment-panel-mobile 走同一豁免模式 */
  border-radius: 26px 26px 0px 0px;
}
@keyframes directory-sheet-slide-up {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}
/* ===== 顶部标题栏 ===== */
.directory-sheet-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-4) var(--space-5);
  flex-shrink: 0;
}
.directory-sheet-title {
  font-family: var(--font-family-body);
  font-size: calc(18px * var(--font-scale));
  font-weight: 600;
  color: var(--text-primary);
  line-height: calc(24px * var(--font-scale));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  /* 留出右侧 actions 容器（chat 28 + share 28 + close 28 + 2*8 gap = 100px）的位置 */
  max-width: calc(100% - 116px);
}
/* ===== 头部操作按钮组 =====
 * 与 ardot 设计稿「右」节点对齐：标题栏右侧 3 个 28x28 圆形 icon 按钮。
 * 顺序：chat（添加到任务）→ share（分享）→ close（关闭）。
 */
.directory-sheet-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
  flex-shrink: 0;
}
.directory-sheet-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--icon-primary);
  cursor: pointer;
  flex-shrink: 0;
  border-radius: 50%;
  transition: background-color 150ms ease, color 150ms ease;
}
.directory-sheet-action-btn:active {
  background: var(--fill-tertiary);
  color: var(--icon-secondary);
}
/* ===== 目录树列表区域 ===== */
.directory-sheet-body {
  flex: 1 1 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  /* 末尾留白：最后一个节点的 chevron 不被屏幕底部 / home indicator 遮挡，
   * 保证可点击。安全区域在 iPhone 底部栏 / Android 全面屏手势条生效。 */
  padding-bottom: calc(env(safe-area-inset-bottom, 0px) + var(--space-6));
}
/* ===== 目录树节点 ===== */
.directory-tree {
  display: flex;
  flex-direction: column;
  align-self: stretch;
}
.directory-tree-node-wrapper {
  display: flex;
  flex-direction: column;
}
.directory-tree-node {
  display: flex;
  align-items: center;
  height: 40px;
  gap: var(--space-1);
  padding-right: var(--space-5);
  /* 20px，长标题（URL/路径）不贴 panel 右边缘 */
  cursor: pointer;
  border-radius: var(--radius-md);
  transition: background-color 100ms ease;
}
.directory-tree-node:active {
  background: var(--fill-tertiary);
}
.directory-tree-node-active {
  background: var(--fill-secondary);
}
.directory-tree-node-active:active {
  background: var(--fill-secondary);
}
/* ===== 展开折叠箭头 ===== */
.directory-tree-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: var(--icon-secondary);
  transition: transform 150ms ease;
  /* 图标源资产是朝下的 chevron（`v`），基态需要朝右（`>`）——旋转 -90deg。
   * 展开时旋转到 0deg 恢复朝下形态，用 CSS 变换承接"折叠 → 展开"的翻转。 */
  transform: rotate(-90deg);
}
.directory-tree-chevron-expanded {
  transform: rotate(0deg);
}
/* chevron 位置上的 spinner（expanding 态）——与 PC 端 TreeNode spinner 对齐 */
.directory-tree-chevron-spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 1.5px solid var(--icon-quaternary);
  border-top-color: var(--icon-secondary);
  border-radius: 50%;
  animation: directory-tree-spinner-rotate 600ms linear infinite;
}
@keyframes directory-tree-spinner-rotate {
  to {
    transform: rotate(360deg);
  }
}
.directory-tree-chevron-placeholder {
  display: inline-block;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
/* ===== 节点图标 ===== */
.directory-tree-icon-slot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-5);
  height: var(--space-5);
  flex-shrink: 0;
  color: var(--icon-primary);
}
.directory-tree-emoji {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--space-5);
  /* 20px，与 .directory-tree-icon-slot 一致 */
  height: var(--space-5);
  /* 不同 size 下 emoji 与 icon 视觉对齐 */
  font-size: var(--fs-body);
  line-height: 16px;
}
/* ===== 节点标题 ===== */
.directory-tree-title {
  flex: 1 1 0;
  min-width: 0;
  font-family: var(--font-family-body);
  font-size: var(--fs-body);
  color: var(--text-primary);
  line-height: 22px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-left: var(--space-1);
}
/* ===== 子节点容器 ===== */
.directory-tree-children {
  display: flex;
  flex-direction: column;
}

/**
 * SharePanelMobile 样式表（Bottom Sheet 浮窗形态）。
 *
 * 单位统一用 px；颜色 / 圆角用具体值（未来可对接 design token 覆盖）。
 */
/* ===== Bottom Sheet 容器 =====
 *
 * 组件本身不控制外层 sheet 定位（sheet wrapper 在 workspace-page-layout 里
 * 负责底部对齐 + 圆角 + 动画）。本容器只负责内部布局：
 * - flex 纵向排列，高度在 60vh–92vh 之间跟随内容
 * - 超过 max-height 时由自身滚动承接，避免被 sheet 裁掉
 */
.share-panel-mobile-page {
  display: flex;
  flex-direction: column;
  width: 100%;
  flex: 0 0 auto;
  min-height: 60vh;
  max-height: 92vh;
  background: var(--bg-page);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- sheet 顶部大圆角，无对应 token */
  border-radius: 30px;
  gap: var(--space-2);
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- 底部留白配合 iOS 手势区，视觉留白让步 */
  padding-bottom: calc(50px * var(--font-scale));
}
/* ===== 顶栏 ===== */
.share-panel-mobile-page-header {
  flex-shrink: 0;
  display: flex;
  padding: var(--space-6) var(--space-6) 0 var(--space-6);
  justify-content: space-between;
  align-items: center;
}
.share-panel-mobile-page-close-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.share-panel-mobile-page-title {
  color: var(--text-primary);
  font-family: "PingFang SC";
  font-size: calc(17px * var(--font-scale));
  font-weight: 500;
  font-style: normal;
  text-decoration-line: none;
  line-height: 24px;
}
/* ===== 内容区（可滚动） ===== */
.share-panel-mobile-page-body {
  width: 100%;
  flex-shrink: 0;
  display: flex;
  padding: 0 var(--space-4);
  flex-direction: column;
  align-items: flex-start;
  border-radius: var(--radius-4xl-val);
  box-sizing: border-box;
}
.share-panel-mobile-content {
  width: 100%;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1);
}
.share-panel-mobile-action-content {
  width: 100%;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}
/* ===== 通用卡片 header =====
 *
 * 对齐 ardot 选中节点「协作成员」Frame 协作成员(396×164)：
 * - 标题区固定高度 44px（12 上下 padding + 20 行高文字垂直居中）
 * - 标题字号 14px / 行高 20px / 灰色 rgba(0,0,0,0.5)
 */
.share-panel-mobile-card-header {
  height: 44px;
  padding: 0 var(--space-4);
  display: flex;
  align-items: center;
}
.share-panel-mobile-card-title {
  font-size: var(--fs-body);
  line-height: 20px;
  color: var(--text-tertiary);
  font-weight: 500;
}
/* ===== DocumentInfoCard =====
 *
 * 对齐 ardot 设计稿「Frame 2147240020」选中节点样式：
 *
 * ardot 实际布局（428×80 外层 + 380×46 内层）：
 * - 外层 padding：24px 水平 / 17px 垂直（HORIZONTAL 居中）
 * - 内层 HORIZONTAL：icon(32×32) + gap 12px + 文字组(336×46)
 * - 文字组 VERTICAL：标题(h=24, line-height 24) + gap 3px + 面包屑(h=20, line-height 20)
 */
.share-panel-mobile-doc-info-card {
  width: 100%;
  flex-shrink: 0;
  display: flex;
  padding: var(--space-3) var(--space-4);
  align-items: center;
  gap: var(--space-3);
}
.share-panel-mobile-doc-info-icon-slot {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.share-panel-mobile-doc-info-kind-icon {
  /* emoji 模式：容器内居中显示 emoji 字符 */
  font-size: calc(20px * var(--font-scale));
  line-height: 1;
}
/* 空间图标容器：复用 PC 端 SpaceIcon 组件，用 CSS 把 16px 放大到 32px */
.share-panel-mobile-doc-info-space-icon {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  /* 覆盖 SpaceIcon PC 端的 16px 固定尺寸，适配移动端 32px 图标槽 */
}
.share-panel-mobile-doc-info-space-icon .space-icon-letter-pc {
  width: 32px;
  height: 32px;
  /* stylelint-disable-next-line font-token */
  font-size: 16px;
  border-radius: var(--radius-xl-val);
}
.share-panel-mobile-doc-info-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
}
.share-panel-mobile-doc-info-title {
  font-size: calc(17px * var(--font-scale));
  font-weight: 500;
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: calc(24px * var(--font-scale));
}
.share-panel-mobile-doc-info-breadcrumb {
  font-size: var(--fs-body);
  color: var(--text-tertiary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: calc(20px * var(--font-scale));
}
/* ===== AccessPermissionCard =====
 *
 * 对齐 ardot 选中节点「协作成员」Frame 协作成员(396×164)：
 * - 卡片 padding：0 顶 / 16 左右 / 12 底
 * - 标题区：44px 固定高（由通用 .share-panel-mobile-card-header 控制）
 * - 选项行：48px 高（上下 padding 12 + 24 文字行高），选项间无 gap 无分割线
 * - 选项 padding-left 0（与外层 16px 拼接，对齐 titlebar 左边距）
 */
.share-panel-mobile-access-card {
  background: var(--bg-default);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-2xl-val);
  padding: 0 var(--space-4) var(--space-3);
}
.share-panel-mobile-access-list {
  display: flex;
  flex-direction: column;
}
.share-panel-mobile-access-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  height: 48px;
  padding: var(--space-3) 0;
  background: transparent;
  border: none;
  text-align: left;
  cursor: pointer;
  transition: background-color 100ms ease;
}
.share-panel-mobile-access-item:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.share-panel-mobile-access-item-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-0-5);
  min-width: 0;
}
.share-panel-mobile-access-item-label {
  font-size: var(--fs-body);
  line-height: 24px;
  font-weight: 500;
  color: var(--text-primary);
}
.share-panel-mobile-access-item-desc {
  font-size: var(--fs-small);
  color: var(--text-tertiary);
}
.share-panel-mobile-access-item-check {
  font-size: calc(24px * var(--font-scale));
  line-height: 1;
  color: var(--success);
  flex-shrink: 0;
}
.share-panel-mobile-access-item-selected {
  background: var(--success-bg);
}
/* ===== AccessAndCollaboratorsCard =====
 *
 * 对齐 ardot 设计稿 Frame 2603:1568（396×128）：
 * - 外层卡片：white 底 + 圆角 + 1px 边框，padding 12px 16px
 * - 内含 2 行（VERTICAL 布局，无 gap，无分割线）
 * - 每行 48px 高，两端对齐（左标签 / 右摘要+箭头）
 * - 左标签：14px / lh=24 / weight 500 / 主色
 * - 右摘要文案：14px / lh=24 / 次要色
 * - 箭头：16×16 视觉，用 › 字符 20px 呈现
 * - 头像：24×24 圆形，重叠 4px（margin-left: -4px）
 */
.share-panel-mobile-access-collab-card {
  width: 100%;
  flex-shrink: 0;
  display: flex;
  padding: var(--space-3) var(--space-4);
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2);
  background: var(--wb-color-bg-tertiary-default);
  border-radius: var(--radius-4xl-val);
}
.share-panel-mobile-access-collab-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-3) 0;
  background: transparent;
  border: none;
  text-align: left;
  width: 100%;
  transition: opacity 100ms ease;
}
/* 访问权限行包裹（用于承载 popover 下拉相对定位） */
.share-panel-mobile-access-collab-row-wrap {
  position: relative;
  width: 100%;
}
/* 访问权限下拉浮层：贴着「访问权限」行下缘展开，宽度自适应内容 */
.share-panel-mobile-access-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 10;
  min-width: 220px;
  max-width: calc(100vw - 32px);
  margin-top: var(--space-1);
  padding: var(--space-1) 0;
  background: var(--bg-default);
  border-radius: var(--radius-lg);
  /* stylelint-disable-next-line design-system/no-hardcoded-colors, design-system/no-hardcoded-box-shadow -- 下拉双层浮层阴影，无对应 shadow token */
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}
.share-panel-mobile-access-dropdown-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--space-3) var(--space-4);
  background: transparent;
  border: none;
  text-align: left;
  cursor: pointer;
  transition: background 100ms ease;
}
.share-panel-mobile-access-dropdown-item:hover:not(:disabled),
.share-panel-mobile-access-dropdown-item:active:not(:disabled) {
  background: var(--fill-tertiary);
}
/* 低于 publicMinRole 的选项：置灰 + 禁用点击（对齐 pc 端 ROLE_LEVEL gate） */
.share-panel-mobile-access-dropdown-item:disabled {
  cursor: not-allowed;
}
.share-panel-mobile-access-dropdown-item:disabled .share-panel-mobile-access-dropdown-item-label {
  color: var(--text-quaternary);
}
.share-panel-mobile-access-dropdown-item-label {
  font-size: calc(17px * var(--font-scale));
  line-height: calc(24px * var(--font-scale));
  color: var(--text-primary);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.share-panel-mobile-access-dropdown-item-selected .share-panel-mobile-access-dropdown-item-label {
  color: var(--text-primary);
  font-weight: 400;
}
.share-panel-mobile-access-dropdown-item-check {
  margin-left: var(--space-3);
  color: var(--brand);
  font-size: calc(17px * var(--font-scale));
  line-height: 1;
}
.share-panel-mobile-access-collab-label {
  font-size: calc(17px * var(--font-scale));
  line-height: calc(24px * var(--font-scale));
  font-weight: 400;
  color: var(--text-primary);
  flex-shrink: 0;
}
.share-panel-mobile-access-collab-summary {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
  overflow: hidden;
}
.share-panel-mobile-access-collab-summary-text {
  font-size: calc(17px * var(--font-scale));
  line-height: calc(24px * var(--font-scale));
  color: var(--text-tertiary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 24px;
}
.share-panel-mobile-access-collab-arrow {
  color: var(--text-secondary);
  font-family: "PingFang SC";
  font-size: calc(17px * var(--font-scale));
  font-weight: 400;
  font-style: normal;
  text-decoration-line: none;
  line-height: calc(24px * var(--font-scale));
}
/* 头像堆（行 2 · 协作成员专用） */
.share-panel-mobile-access-collab-avatars {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.share-panel-mobile-access-collab-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid var(--bg-default);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: calc(var(--space-2) * -1);
}
.share-panel-mobile-access-collab-avatar:first-child {
  margin-left: 0;
}
.share-panel-mobile-access-collab-count {
  font-size: calc(14px * var(--font-scale));
  line-height: calc(24px * var(--font-scale));
  color: var(--text-tertiary);
  flex-shrink: 0;
  margin-left: var(--space-1);
}
/* ===== CollaboratorsCard =====
 * 独立卡组件（保留向下兼容，SharePanelMobile 已切到 AccessAndCollaboratorsCard）
 */
.share-panel-mobile-collaborators-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-3);
  background: var(--bg-default);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-4xl-val);
  cursor: pointer;
  width: 100%;
  text-align: left;
}
.share-panel-mobile-collaborators-title {
  font-size: calc(14px * var(--font-scale));
  font-weight: 500;
  color: var(--text-primary);
  flex-shrink: 0;
}
.share-panel-mobile-collaborators-summary {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex: 1;
  justify-content: flex-end;
}
.share-panel-mobile-collaborators-avatars {
  display: flex;
  align-items: center;
}
.share-panel-mobile-collaborators-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 2px solid var(--bg-default);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-strong);
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- 头像叠放偏移，视觉像素让步 */
  margin-left: calc(var(--space-1-5) * -1);
}
.share-panel-mobile-collaborators-avatar:first-child {
  margin-left: 0;
}
.share-panel-mobile-collaborators-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.share-panel-mobile-collaborators-avatar-initial {
  font-size: calc(11px * var(--font-scale));
  font-weight: 600;
  color: var(--text-allwhite);
}
.share-panel-mobile-collaborators-count {
  font-size: calc(13px * var(--font-scale));
  color: var(--text-secondary);
}
.share-panel-mobile-collaborators-arrow {
  font-size: calc(20px * var(--font-scale));
  color: var(--text-quaternary);
  line-height: 1;
}
/* ===== ShareActionsCard =====
 *
 * 对齐 Ardot 3699:908 「分享到」（分享 少 variant）：
 * - 卡片：白底 + 圆角，padding 12(上) 16(左右) 16(下)
 * - 标题「分享到」14px / lh=20 / opacity=0.6，与按钮行 gap 12px
 * - 按钮行：5 个按钮均分（space-between），每个 60×76
 * - 图标容器：44×44 圆形，背景 #F8F8F8
 * - 图标：24×24（内联 SVG）
 * - 标签：12px / lh=16 / opacity=0.9，与图标 gap 8px
 */
.share-panel-mobile-actions-card {
  width: 100%;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  padding: 0 var(--space-4) var(--space-4) var(--space-3);
  gap: var(--space-3);
  background: var(--wb-color-bg-tertiary-default);
  border-radius: var(--radius-4xl-val);
}
.share-panel-mobile-actions-title {
  padding-top: var(--space-4);
  font-size: calc(14px * var(--font-scale));
  line-height: calc(20px * var(--font-scale));
  font-weight: 400;
  color: var(--text-secondary);
  font-family: "PingFang SC";
}
.share-panel-mobile-actions-row {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  padding: var(--space-3) 0;
  gap: var(--space-6);
}
.share-panel-mobile-action-item {
  flex-shrink: 0;
  display: flex;
  padding: var(--space-1) 0;
  flex-direction: column;
  align-items: center;
}
.share-panel-mobile-action-item-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
}
.share-panel-mobile-action-icon {
  flex-shrink: 0;
  display: flex;
  /* stylelint-disable-next-line design-system/spacing-4px-multiple, font-token -- 图标容器 44×44，24 icon + 10 padding，视觉像素让步 */
  padding: calc(10px * var(--font-scale));
  justify-content: center;
  align-items: center;
  background: var(--bg-page);
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- 圆形图标容器，等价于 --radius-full */
  border-radius: 99px;
}
/* 单色图标（复制链接 / 二维码 / 更多）：跟随 text-primary */
.share-panel-mobile-action-icon-mono {
  color: var(--text-primary);
}
.share-panel-mobile-action-label {
  font-size: calc(12px * var(--font-scale));
  line-height: calc(16px * var(--font-scale));
  color: var(--text-primary);
  text-align: center;
  white-space: nowrap;
}
/* ===== 生成二维码弹窗 · .popup-dialog =====
 *
 * 对齐设计稿：
 * - overlay：黑色半透明遮罩，flex 底部对齐（移动端习惯从底部弹起）
 * - dialog：白底 + 上圆角，`padding: var(--space-6)`
 * - QR 卡：灰底 `var(--bg-page)` + 圆角 + 内白 QR 底板
 * - 下载按钮：全宽大黑按钮，与设计品牌色 `--brand` 一致
 */
/* .popup-dialog · Ardot node 1217:839
 * 底部升起 · 白底 + 顶部圆角 24 + clipsContent
 * header padding 24 24 0 · qr-card outer padding 12 24 0
 * qr-card 灰底 #F2F2F2 · qr 白板 200×200 · 1px border rgba(0,0,0,0.12)
 * primary-btn 380×56 · brand · Btn Primary Large
 * home-indicator 34 · env(safe-area-inset-bottom)
 */
.popup-dialog-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: var(--overlay-default);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
}
.popup-dialog {
  width: 100%;
  max-width: 480px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
  padding: 0;
  background: var(--bg-default);
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- sheet 顶部大圆角，无对应 token */
  border-top-left-radius: 24px;
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- sheet 顶部大圆角，无对应 token */
  border-top-right-radius: 24px;
  overflow: hidden;
  /* stylelint-disable-next-line design-system/no-hardcoded-colors, design-system/no-hardcoded-box-shadow -- sheet 浮层大范围模糊阴影，无对应 shadow token */
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.12);
}
@keyframes popup-dialog-in {
  from {
    transform: translateY(24px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
/* 拖动条 handle（Ardot: 40×6 圆角，默认 visible=false） */
.popup-dialog-handle {
  width: 40px;
  height: 6px;
  margin: var(--space-2) auto 0;
  background: var(--bg-strong);
  border-radius: var(--radius-full);
  flex-shrink: 0;
}
/* body: header + qr-card 主体区，垂直 gap 12 */
.popup-dialog-body {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
/* section: header + qr-card，紧凑 gap 0 */
.popup-dialog-section {
  display: flex;
  flex-direction: column;
  gap: 0;
}
/* Header */
.popup-dialog-header {
  padding: var(--space-6) var(--space-6) 0;
}
.popup-dialog-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  min-height: 24px;
}
.popup-dialog-title {
  margin: 0;
  font-size: calc(17px * var(--font-scale));
  line-height: calc(24px * var(--font-scale));
  font-weight: 500;
  color: var(--text-primary);
  font-family: "PingFang SC";
}
.popup-dialog-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--text-tertiary);
  flex-shrink: 0;
}
/* QR 卡片 */
.popup-dialog-qr-card-wrapper {
  padding: var(--space-3) var(--space-6) 0;
}
.popup-dialog-qr-card {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-3) 0;
  background: var(--bg-medium);
  border-radius: var(--radius-2xl-val);
  overflow: hidden;
}
.popup-dialog-qr-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-6) 0;
  width: 100%;
}
.popup-dialog-qr-doc-title {
  font-size: calc(16px * var(--font-scale));
  line-height: calc(22px * var(--font-scale));
  font-weight: 500;
  color: var(--text-primary);
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 90%;
  padding: 0 var(--space-3);
}
/* QR 白底板：200×200，1px border（Ardot 自定义内容 frame） */
.popup-dialog-qr-image-slot {
  width: 200px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-default);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  padding: var(--space-3);
  overflow: hidden;
  box-sizing: border-box;
}
.popup-dialog-qr-image {
  width: 176px;
  height: 176px;
  object-fit: contain;
  display: block;
}
.popup-dialog-qr-spinner {
  width: 32px;
  height: 32px;
  border: 3px solid var(--fill-secondary);
  border-top-color: var(--brand);
  border-radius: 50%;
  animation: popup-dialog-spin 800ms linear infinite;
}
@keyframes popup-dialog-spin {
  to {
    transform: rotate(360deg);
  }
}
.popup-dialog-qr-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  color: var(--text-tertiary);
  text-align: center;
}
.popup-dialog-qr-error p {
  margin: 0;
  font-size: calc(12px * var(--font-scale));
  line-height: calc(16px * var(--font-scale));
}
.popup-dialog-qr-tip {
  font-size: calc(14px * var(--font-scale));
  line-height: calc(20px * var(--font-scale));
  color: var(--text-primary);
  text-align: center;
}
/* 主按钮 · Btn Primary Large */
.popup-dialog-primary-btn-wrapper {
  padding: var(--space-3) var(--space-6) 0;
}
.popup-dialog-primary-btn {
  width: 100%;
  height: 56px;
  padding: var(--space-4) var(--space-6);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--brand);
  color: var(--text-allwhite);
  border: none;
  border-radius: var(--radius-full);
  font-size: calc(17px * var(--font-scale));
  line-height: calc(24px * var(--font-scale));
  font-weight: 500;
  font-family: "PingFang SC";
  cursor: pointer;
  transition: background-color 150ms ease;
}
.popup-dialog-primary-btn:hover:not(:disabled) {
  background: var(--brand-hover);
}
.popup-dialog-primary-btn:active:not(:disabled) {
  background: var(--brand-pressed);
}
.popup-dialog-primary-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
/* iOS Home Indicator 安全区 */
.popup-dialog-home-indicator {
  height: 34px;
  flex-shrink: 0;
  padding-bottom: env(safe-area-inset-bottom, 0);
}
/* .collaborators-dialog · Ardot node 2979:3121
 * 底部升起 · 白底 + 顶部圆角 24 · min-height 50vh · max-height 92vh
 * header padding 24 24 0 · subtitle 13/18 · list padding 12 24 0 可滚动
 * row 52 高：avatar 30 + name 17/24 · 右 perm 14/20 + chevron
 * home-indicator 34 · env(safe-area-inset-bottom)
 */
.collaborators-dialog-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: var(--overlay-default);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
}
.collaborators-dialog {
  width: 100%;
  max-width: 480px;
  min-height: 60vh;
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
  background: var(--bg-default);
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- sheet 顶部大圆角，无对应 token */
  border-top-left-radius: 24px;
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- sheet 顶部大圆角，无对应 token */
  border-top-right-radius: 24px;
  overflow: hidden;
  /* stylelint-disable-next-line design-system/no-hardcoded-colors, design-system/no-hardcoded-box-shadow -- sheet 浮层大范围模糊阴影，无对应 shadow token */
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.12);
  animation: popup-dialog-in 240ms ease-out;
}
/* Header */
.collaborators-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-6) var(--space-6) 0;
  gap: var(--space-2);
  min-height: 24px;
  flex-shrink: 0;
}
.collaborators-dialog-header-left {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
  flex: 1;
}
.collaborators-dialog-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--text-primary);
  flex-shrink: 0;
}
.collaborators-dialog-title {
  margin: 0;
  font-size: calc(17px * var(--font-scale));
  line-height: calc(24px * var(--font-scale));
  font-weight: 500;
  color: var(--text-primary);
  font-family: "PingFang SC";
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.collaborators-dialog-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--text-tertiary);
  flex-shrink: 0;
}
/* Subtitle */
.collaborators-dialog-subtitle {
  padding: var(--space-2) var(--space-6) 0;
  font-size: calc(13px * var(--font-scale));
  line-height: calc(18px * var(--font-scale));
  font-weight: 400;
  color: var(--text-tertiary);
  font-family: "PingFang SC";
  flex-shrink: 0;
}
/* List */
.collaborators-dialog-list {
  flex: 1;
  min-height: 0;
  padding: var(--space-3) var(--space-6) 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.collaborators-dialog-empty {
  padding: var(--space-8) 0;
  text-align: center;
  color: var(--text-quaternary);
  font-size: calc(14px * var(--font-scale));
  line-height: calc(20px * var(--font-scale));
}
/* Row */
.collaborators-dialog-row {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-height: 52px;
  /* stylelint-disable-next-line design-system/spacing-4px-multiple, font-token -- 行 52 高，30 avatar + 10×2 padding，视觉像素让步 */
  padding: calc(10px * var(--font-scale)) 0;
}
.collaborators-dialog-row-left {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  flex: 1;
}
.collaborators-dialog-row-name-wrap {
  display: flex;
  align-items: center;
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- name 与 badge 紧贴，6px 视觉像素让步 */
  gap: var(--space-1-5);
  min-width: 0;
  flex: 1;
  overflow: hidden;
}
.collaborators-dialog-row-name {
  font-size: calc(17px * var(--font-scale));
  line-height: calc(24px * var(--font-scale));
  font-weight: 400;
  color: var(--text-primary);
  font-family: "PingFang SC";
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.collaborators-dialog-row-badge {
  display: inline-flex;
  align-items: center;
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- badge 胶囊两侧 6px padding，视觉像素让步 */
  padding: 0 var(--space-1-5);
  height: 18px;
  border-radius: var(--radius-sm);
  background: var(--fill-primary);
  color: var(--text-tertiary);
  font-size: calc(11px * var(--font-scale));
  line-height: 1;
  font-weight: 400;
  flex-shrink: 0;
  white-space: nowrap;
}
/* 无下拉时的静态权限文字（owner / manager 改 manage 等场景） */
.collaborators-dialog-row-perm-static {
  padding: var(--space-0-5) var(--space-1);
  font-size: calc(14px * var(--font-scale));
  line-height: calc(20px * var(--font-scale));
  color: var(--text-quaternary);
  font-family: "PingFang SC";
  flex-shrink: 0;
}
/* Row perm 下拉入口 */
.collaborators-dialog-row-perm {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-0-5) var(--space-1);
  background: transparent;
  border: none;
  cursor: pointer;
  flex-shrink: 0;
}
.collaborators-dialog-row-perm:disabled {
  cursor: default;
}
.collaborators-dialog-row-perm-text {
  font-size: calc(14px * var(--font-scale));
  line-height: calc(20px * var(--font-scale));
  color: var(--text-tertiary);
  font-family: "PingFang SC";
}
.collaborators-dialog-row-perm-chev {
  color: var(--text-tertiary);
  transition: transform 150ms ease;
}
.collaborators-dialog-row-perm-chev.is-open {
  transform: rotate(180deg);
}
/* Perm dropdown（每行独立浮层）
 * 运行时会被 JS 改为 position: fixed，配合 top/right/bottom inline style
 * 突破 .collaborators-dialog-list (overflow-y: auto) 与 .collaborators-dialog
 * (overflow: hidden) 的裁剪，避免向上翻转时被 header/subtitle 遮挡。
 * z-index > overlay(1000) 保证浮层始终位于对话框之上。
 */
.collaborators-dialog-perm-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 1010;
  margin: var(--space-1) 0 0;
  padding: var(--space-1);
  list-style: none;
  min-width: 140px;
  background: var(--bg-default);
  border-radius: var(--radius-lg);
  border: 1px solid var(--border-default);
  /* stylelint-disable-next-line design-system/no-hardcoded-colors, design-system/no-hardcoded-box-shadow -- 下拉浮层阴影，无对应 shadow token */
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  /* 底部空间不足时向上弹出（JS 通过 rect 判定加 is-drop-up） */
}
.collaborators-dialog-perm-dropdown.is-drop-up {
  top: auto;
  bottom: 100%;
  margin: 0 0 var(--space-1);
  /* stylelint-disable-next-line design-system/no-hardcoded-colors, design-system/no-hardcoded-box-shadow -- 下拉浮层阴影（向上），无对应 shadow token */
  box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.12);
}
.collaborators-dialog-perm-option {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  background: transparent;
  border: none;
  cursor: pointer;
  border-radius: var(--radius-md);
  font-size: calc(14px * var(--font-scale));
  line-height: calc(20px * var(--font-scale));
  color: var(--text-primary);
  text-align: left;
  font-family: "PingFang SC";
  /* danger 选项（无权限）—— 对齐 pc 端 data-danger 红色语义 */
}
.collaborators-dialog-perm-option:hover:not(:disabled) {
  background: var(--fill-secondary);
}
.collaborators-dialog-perm-option.is-selected {
  color: var(--text-primary);
}
.collaborators-dialog-perm-option.is-danger {
  color: var(--error);
}
.collaborators-dialog-perm-option:disabled {
  color: var(--text-quaternary);
  cursor: not-allowed;
}
.collaborators-dialog-perm-option:disabled.is-danger {
  /* stylelint-disable-next-line design-system/no-hardcoded-colors -- disabled danger 半透明红，无对应 token */
  color: rgba(239, 68, 68, 0.4);
}
/* 超出 MAX_VISIBLE 的提示（对齐 pc 端 share-panel-collaborators-limit-tip） */
.collaborators-dialog-limit-tip {
  padding: var(--space-3) 0 var(--space-1);
  text-align: center;
  font-size: calc(12px * var(--font-scale));
  line-height: calc(16px * var(--font-scale));
  color: var(--text-quaternary);
}
/* iOS Home Indicator 安全区 */
.collaborators-dialog-home-indicator {
  height: 34px;
  flex-shrink: 0;
  padding-bottom: env(safe-area-inset-bottom, 0);
}
/* SegmentedTabs · Ardot node 2979:2341
 * 容器 46 高 · 4 padding · 10 radius · #F0F0F0
 * tab 38 高 · 8 radius · 16/22
 * 选中：白底 + shadow 0 1 4 rgba(0,0,0,0.06) · Medium 0.9
 * 未选中：透明 · Regular 0.4
 */
.share-panel-mobile-segmented {
  display: flex;
  width: 100%;
  padding: var(--space-1);
  gap: 0;
  background: var(--bg-medium);
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- 分段控件外层大圆角，无对应 token */
  border-radius: 16px;
  box-sizing: border-box;
  margin-bottom: var(--space-2);
}
.share-panel-mobile-segmented-item {
  flex: 1;
  min-width: 0;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-2) var(--space-4);
  background: transparent;
  border: none;
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- 分段控件 tab 圆角，无对应 token */
  border-radius: 12px;
  cursor: pointer;
  transition: background-color 150ms ease, box-shadow 150ms ease;
  box-sizing: border-box;
}
.share-panel-mobile-segmented-item.is-active {
  background: var(--bg-default);
  /* stylelint-disable-next-line design-system/no-hardcoded-colors, design-system/no-hardcoded-box-shadow -- 分段控件选中态精确投影，无对应 shadow token */
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.share-panel-mobile-segmented-item.is-active .share-panel-mobile-segmented-item-label {
  color: var(--text-primary);
  font-weight: 500;
}
.share-panel-mobile-segmented-item-label {
  font-size: calc(16px * var(--font-scale));
  line-height: calc(22px * var(--font-scale));
  font-weight: 400;
  color: var(--text-quaternary);
  font-family: "PingFang SC";
  white-space: nowrap;
  pointer-events: none;
}
/* PublicationCard · 发布为网站
 * 白底卡 · padding 16 · gap 12 · 4xl radius
 * header: 标题 15/22 Medium + desc 13/18 opacity 0.6 · 右侧 iOS switch
 * link 行：灰底胶囊 44 高 · ellipsis · 复制 icon
 * sync 行：info + text · 右侧同步按钮
 */
.share-panel-mobile-publication-card {
  width: 100%;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  padding: var(--space-4);
  gap: var(--space-3);
  background: var(--bg-default);
  border-radius: var(--radius-4xl-val);
  box-sizing: border-box;
}
.share-panel-mobile-publication-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}
.share-panel-mobile-publication-header-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.share-panel-mobile-publication-title {
  font-size: calc(17px * var(--font-scale));
  line-height: calc(24px * var(--font-scale));
  font-weight: 400;
  color: var(--text-primary);
  font-family: "PingFang SC";
}
.share-panel-mobile-publication-desc {
  font-size: calc(14px * var(--font-scale));
  line-height: calc(20px * var(--font-scale));
  font-weight: 400;
  color: var(--text-tertiary);
  font-family: "PingFang SC";
}
/* iOS 风格 switch —— 52×32，绿色系（对齐设计） */
.share-panel-mobile-publication-switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  cursor: pointer;
}
.share-panel-mobile-publication-switch input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  margin: 0;
}
.share-panel-mobile-publication-switch input:disabled {
  cursor: not-allowed;
}
.share-panel-mobile-publication-switch.is-disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.share-panel-mobile-publication-switch-track {
  position: relative;
  display: inline-block;
  width: 52px;
  height: 32px;
  border-radius: var(--radius-full);
  /* stylelint-disable-next-line design-system/no-hardcoded-colors -- iOS switch 关闭态灰色，无对应 token */
  background: rgba(0, 0, 0, 0.15);
  transition: background-color 200ms ease;
}
.share-panel-mobile-publication-switch.is-on .share-panel-mobile-publication-switch-track {
  /* stylelint-disable-next-line design-system/no-hardcoded-colors -- iOS 系统绿开关色（#34c759），无对应 token */
  background: #34c759;
}
.share-panel-mobile-publication-switch-thumb {
  position: absolute;
  top: var(--space-0-5);
  left: var(--space-0-5);
  width: 28px;
  height: 28px;
  border-radius: var(--radius-full);
  background: var(--bg-default);
  /* stylelint-disable-next-line design-system/no-hardcoded-colors, design-system/no-hardcoded-box-shadow -- iOS switch thumb 阴影，无对应 shadow token */
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  transition: transform 200ms ease;
}
.share-panel-mobile-publication-switch.is-on .share-panel-mobile-publication-switch-thumb {
  transform: translateX(20px);
}
/* 链接展示行（点击复制） */
.share-panel-mobile-publication-link {
  flex-shrink: 0;
  display: flex;
  padding: var(--space-2) var(--space-3);
  align-items: center;
  gap: var(--space-1);
  width: 100%;
  background: var(--bg-page);
  border: none;
  border-radius: var(--radius-2xl-val);
  box-sizing: border-box;
  transition: background-color 150ms ease;
}
.share-panel-mobile-publication-link:hover,
.share-panel-mobile-publication-link:active {
  background: var(--fill-primary);
}
.share-panel-mobile-publication-link-text {
  flex: 1;
  min-width: 0;
  font-size: calc(14px * var(--font-scale));
  line-height: calc(20px * var(--font-scale));
  color: var(--text-secondary);
  font-family: "PingFang SC";
  font-weight: 400;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
}
.share-panel-mobile-publication-link-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text-tertiary);
  flex-shrink: 0;
}
/* modified 态：同步行 */
.share-panel-mobile-publication-sync-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: var(--space-2) 0 0;
}
.share-panel-mobile-publication-sync-info {
  display: inline-flex;
  align-items: center;
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- info icon 与文字紧贴，6px 视觉像素让步 */
  gap: var(--space-1-5);
  color: var(--text-tertiary);
  font-size: calc(13px * var(--font-scale));
  line-height: calc(18px * var(--font-scale));
  font-family: "PingFang SC";
}
.share-panel-mobile-publication-sync-btn {
  height: 32px;
  padding: 0 var(--space-4);
  background: transparent;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-full);
  color: var(--text-primary);
  font-size: calc(13px * var(--font-scale));
  line-height: 1;
  font-family: "PingFang SC";
  cursor: pointer;
  transition: background-color 150ms ease, opacity 150ms ease;
}
.share-panel-mobile-publication-sync-btn:hover:not(:disabled) {
  background: var(--fill-secondary);
}
.share-panel-mobile-publication-sync-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/**
 * MoreActionsSheet 样式（复用/对齐 SharePanelMobile 的视觉体系）。
 *
 * 组件不控制外层 sheet 定位（sheet wrapper 在 workspace-page-layout 里
 * 负责底部对齐 + 圆角 + 动画），本容器只负责内部布局。
 */
.doc-more-actions-sheet {
  display: flex;
  flex-direction: column;
  width: 100%;
  flex: 0 0 auto;
  min-height: 40vh;
  max-height: 92vh;
  background: var(--bg-page);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- sheet 顶部大圆角，无对应 token，与分享面板一致 */
  border-radius: 30px;
  gap: var(--space-3);
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- 底部留白配合 iOS 手势区，视觉留白让步 */
  padding-bottom: calc(50px * var(--font-scale));
}
/* ===== 顶部（标题 + 关闭按钮，与分享面板一致） ===== */
.doc-more-actions-sheet-header {
  flex-shrink: 0;
  display: flex;
  padding: var(--space-6) var(--space-6) 0 var(--space-6);
  justify-content: space-between;
  align-items: center;
}
.doc-more-actions-sheet-title {
  color: var(--text-primary);
  font-family: "PingFang SC";
  font-size: calc(17px * var(--font-scale));
  font-weight: 500;
  line-height: 24px;
}
.doc-more-actions-sheet-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--text-tertiary);
  flex-shrink: 0;
}
/* ===== 文档信息卡（DocumentInfoCard 承载器：纯展示） ===== */
.doc-more-actions-sheet-doc-card {
  margin: 0 var(--space-2);
}
/* ===== 操作列表 ===== */
.doc-more-actions-sheet-list {
  list-style: none;
  padding: 0;
  margin: 0 var(--space-4);
  display: flex;
  flex-direction: column;
  background: var(--wb-color-bg-tertiary-default);
  border-radius: var(--radius-4xl-val);
  overflow: hidden;
}
.doc-more-actions-sheet-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
  padding: var(--space-4);
  background: transparent;
  border: none;
  text-align: left;
  cursor: pointer;
  transition: background-color 100ms ease;
}
.doc-more-actions-sheet-item:hover,
.doc-more-actions-sheet-item:active {
  background: var(--fill-tertiary);
}
.doc-more-actions-sheet-item-icon {
  flex-shrink: 0;
  color: var(--icon-primary);
}
/* 关联管理：RelationIconPC 自定义 SVG，缩放到与 Icon size="md"（20px）同规格 */
.doc-more-actions-sheet-item-svg-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  color: var(--icon-primary);
}
.doc-more-actions-sheet-item-svg-icon > svg {
  width: 20px;
  height: 20px;
}
.doc-more-actions-sheet-item-label {
  flex: 1;
  min-width: 0;
  font-size: calc(17px * var(--font-scale));
  line-height: calc(24px * var(--font-scale));
  font-weight: 400;
  color: var(--text-primary);
  font-family: "PingFang SC";
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/**
 * DocInfoSheet 样式（沿用 SharePanelMobile 的视觉语言）。
 */
.doc-info-sheet {
  display: flex;
  flex-direction: column;
  width: 100%;
  flex: 0 0 auto;
  min-height: 30vh;
  max-height: 92vh;
  background: var(--bg-page);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius -- sheet 顶部大圆角，无对应 token，与分享面板一致 */
  border-radius: 30px;
  gap: var(--space-3);
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- iOS 手势区留白 */
  padding-bottom: calc(50px * var(--font-scale));
}
.doc-info-sheet-header {
  flex-shrink: 0;
  display: flex;
  padding: var(--space-6) var(--space-6) 0 var(--space-6);
  justify-content: space-between;
  align-items: center;
  gap: var(--space-2);
}
.doc-info-sheet-title {
  flex: 1;
  min-width: 0;
  color: var(--text-primary);
  font-family: "PingFang SC";
  font-size: calc(17px * var(--font-scale));
  font-weight: 500;
  line-height: 24px;
}
.doc-info-sheet-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--icon-primary);
  flex-shrink: 0;
}
.doc-info-sheet-back:active {
  opacity: 0.6;
}
.doc-info-sheet-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.doc-info-sheet-list {
  list-style: none;
  padding: 0;
  margin: 0 var(--space-4);
  display: flex;
  flex-direction: column;
  background: var(--bg-default);
  border-radius: var(--radius-4xl-val);
  overflow: hidden;
}
.doc-info-sheet-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-4);
}
.doc-info-sheet-item-label {
  color: var(--text-primary);
  font-size: calc(17px * var(--font-scale));
  line-height: calc(24px * var(--font-scale));
  font-weight: 400;
  font-family: "PingFang SC";
  flex-shrink: 0;
}
.doc-info-sheet-item-value {
  flex: 1;
  min-width: 0;
  color: var(--text-tertiary);
  font-size: calc(17px * var(--font-scale));
  line-height: calc(24px * var(--font-scale));
  font-weight: 400;
  font-family: "PingFang SC";
  text-align: right;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/**
 * RelationPageMobile 样式（ardot 15476:452 / 15476:516 底部 drawer）。
 *
 * 组件不控制遮罩 / sheet 定位（wrapper 在 workspace-page-layout/mobile.less，
 * 复用 share-overlay + share-sheet 从底滑入），本文件只负责抽屉内部布局。
 * 设计稿关键值：抽屉 556 高、顶角 24、vertical gap 16、底安全区 34；顶栏 padding 20/20/24
 * gap 8；内容区左右 20 + 内部 gap 8；白卡 padding 16 / radius 16 / 图标 32；
 * 空态左右合计 40 + figure gap 12；底部主按钮 padding 16 / 24、radius 16。
 */
.relation-page-mobile {
  display: flex;
  flex-direction: column;
  width: 100%;
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- 设计稿抽屉 556px */
  height: min(calc(556px * var(--font-scale)), 80dvh);
  max-height: 92vh;
  /* 设计稿抽屉：vertical gap 16 + padding-bottom 34 */
  gap: var(--space-4);
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- 设计稿底安全区 34px 的一半 */
  padding-bottom: calc(17px * var(--font-scale));
  /* 设计稿抽屉底 #F2F2F2，workbuddy --bg-medium 精确一致 */
  background: var(--bg-medium);
  overflow: hidden;
}
/* ===== 顶栏（返回 + 左对齐标题 + 关闭，ardot 15476:453） ===== */
.relation-page-mobile-nav {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-6) var(--space-5) 0;
  background: var(--bg-medium);
}
.relation-page-mobile-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--icon-primary);
  flex-shrink: 0;
}
.relation-page-mobile-close:active {
  opacity: 0.6;
}
/* 顶栏返回箭头（ardot 15476:453）：点击返回上一级菜单 */
.relation-page-mobile-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--icon-primary);
  flex-shrink: 0;
}
.relation-page-mobile-back:active {
  opacity: 0.6;
}
/* 设计稿关闭 16×16 */
.relation-page-mobile-close {
  width: 16px;
  height: 16px;
}
.relation-page-mobile-close > svg {
  width: 16px;
  height: 16px;
}
.relation-page-mobile-title {
  flex: 1;
  min-width: 0;
  color: var(--text-primary);
  font-family: "PingFang SC";
  font-size: calc(17px * var(--font-scale));
  font-weight: 500;
  line-height: calc(24px * var(--font-scale));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* ===== 内容区（滚动容器，设计稿左右 20、与顶栏/底栏 gap 16） ===== */
.relation-page-mobile-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  display: flex;
  flex-direction: column;
  /* 设计稿内容区：左右 20、内部 gap 8（副标题↔卡片 / 卡片↔卡片） */
  gap: var(--space-2);
  padding: 0 var(--space-5);
}
/* ===== 副标题（「已关联 N 个文档」，ardot 15476:460）
   固定行：移出滚动区，与顶栏/底栏一样常驻，列表滚动时不动 ===== */
.relation-page-mobile-subtitle {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  /* 移出 body 后需自补设计稿内容区左右 20px */
  padding: 0 var(--space-5);
  /* 抵消外层 16px gap，把副标题↔列表还原为设计稿 8px */
  margin-bottom: calc(var(--space-2) - var(--space-4));
  /* stylelint-disable-next-line design-system/spacing-4px-multiple -- 设计稿副标题行 32px */
  height: calc(32px * var(--font-scale));
}
.relation-page-mobile-subtitle-text {
  /* DESIGN_FALLBACK: 设计稿次级文字灰阶为 rgba(0,0,0,0.7)，workbuddy 主题
     --text-secondary=0.6（web 体系遗留）不匹配，--icon-secondary=0.7 值精确一致 */
  color: var(--icon-secondary);
  font-family: "PingFang SC";
  font-size: calc(13px * var(--font-scale));
  font-weight: 400;
  line-height: calc(18px * var(--font-scale));
}
/* ===== 独立白卡列表（卡片间距 8，radius 16） ===== */
.relation-page-mobile-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.relation-page-mobile-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  padding: var(--space-4);
  background: var(--bg-default);
  border: none;
  /* workbuddy --radius-4xl-val = 16，对齐设计稿白卡 cornerRadius 16 */
  border-radius: var(--radius-4xl-val);
  text-align: left;
  cursor: pointer;
  font-family: "PingFang SC";
  transition: background-color 100ms ease;
}
.relation-page-mobile-item:hover,
.relation-page-mobile-item:active {
  background: var(--fill-tertiary);
}
.relation-page-mobile-item-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--icon-primary);
}
.relation-page-mobile-item-main {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}
.relation-page-mobile-item-title {
  color: var(--text-primary);
  font-family: "PingFang SC";
  font-size: calc(15px * var(--font-scale));
  font-weight: 400;
  line-height: calc(22px * var(--font-scale));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.relation-page-mobile-item-meta {
  color: var(--text-tertiary);
  font-family: "PingFang SC";
  font-size: calc(12px * var(--font-scale));
  font-weight: 400;
  line-height: calc(16px * var(--font-scale));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* ===== 加载 / 错误态 ===== */
.relation-page-mobile-loading,
.relation-page-mobile-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  flex: 1;
  padding: var(--space-8) 0;
  color: var(--text-tertiary);
  font-family: "PingFang SC";
  font-size: var(--fs-body);
}
.relation-page-mobile-loading-spin {
  animation: relation-page-mobile-spin 0.8s linear infinite;
}
@keyframes relation-page-mobile-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.relation-page-mobile-retry {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-1) var(--space-4);
  background: transparent;
  border: none;
  border-radius: var(--radius-md-val);
  color: var(--text-link);
  font-family: "PingFang SC";
  font-size: var(--fs-body);
  font-weight: 500;
  cursor: pointer;
}
.relation-page-mobile-retry:active {
  background: var(--fill-tertiary);
}
/* ===== 空态（64px empty-relation 插画，ardot 15476:525） ===== */
.relation-page-mobile-empty {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  /* 设计稿空态内容水平边距 40px；body 已有 20px，补 20px */
  padding: 0 var(--space-5);
}
.relation-page-mobile-empty-figure {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
}
.relation-page-mobile-empty-figure-icon {
  display: block;
  width: 64px;
  height: 64px;
  flex-shrink: 0;
}
.relation-page-mobile-empty-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* 标题↔描述间距 4px（设计稿 Frame 2119905415 gap:4） */
  gap: var(--space-1);
  text-align: center;
}
.relation-page-mobile-empty-title {
  margin: 0;
  /* DESIGN_FALLBACK: 设计稿 rgba(0,0,0,0.7)，workbuddy 主题 --text-secondary=0.6
     不匹配，--icon-secondary=0.7 值精确一致（同副标题） */
  color: var(--icon-secondary);
  font-family: "PingFang SC";
  font-size: calc(17px * var(--font-scale));
  font-weight: 500;
  line-height: calc(28px * var(--font-scale));
}
.relation-page-mobile-empty-desc {
  margin: 0;
  color: var(--text-tertiary);
  font-family: "PingFang SC";
  font-size: calc(14px * var(--font-scale));
  font-weight: 400;
  line-height: calc(22px * var(--font-scale));
}
/* ===== 底部主按钮（列表态 / 空态共用，ardot 15476:454） ===== */
.relation-page-mobile-footer {
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  /* 双 class 压过 ButtonPC .btn-lg-pc 的 radius-2xl(10) / 14px 字号 */
}
.relation-page-mobile-footer .relation-page-mobile-footer-cta {
  height: auto;
  padding: var(--space-4) var(--space-6);
  font-size: calc(17px * var(--font-scale));
  font-weight: 500;
  line-height: calc(24px * var(--font-scale));
  border-radius: var(--radius-4xl-val);
}

.workspace-page-layout-pc {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
  background: var(--bg-default);
  /* 让全文版本历史侧边栏的 absolute 以本容器为定位参照。否则会冒泡到
   * 更外层 positioned 祖先，让位 padding 也无法稳定作用在正文区。 */
  position: relative;
}
.workspace-page-layout-content-pc {
  display: flex;
  flex-direction: column;
  flex: 1;
  width: 100%;
  overflow: hidden;
  color: var(--text-primary);
  /* 让位过渡：全文版本历史侧栏宽度变化时，正文区平滑过渡，避免抖动。
   * 与 vh-sidebar-slide-in 200ms 对齐。 */
  transition: padding-right 200ms ease;
}
/* 预览态：关联面板展开查看内容时，内容区右侧让出面板宽度
   宽度由 CSS 变量 --relation-panel-width 控制（拖拽时直接写 DOM，不走 React） */
.workspace-page-layout-content-relation-preview-pc {
  padding-right: var(--relation-panel-width, 600px);
  /* 拖拽时 CSS 变量直接写 DOM，不需要 transition 追赶 */
  transition: none;
}
/* 全文版本历史侧栏打开时，正文区右侧让位（挤压而非覆盖）。
 * 用与共享 shell 同名的 --vh-sidebar-width，保证「侧栏宽度」与「让位
 * padding」始终一致；侧栏宽度变更时只需改 sidebar 一处。
 *
 * 这里只允许版本历史一个来源，且必须是单选择器：
 *  - 评论面板的让位走 SDK 编辑器内 padding（见 use-doc-page-layout.ts 的布局
 *    不变量）。把评论让位挪到本壳层，会让 padding 反过来改写窄屏判定观测到的
 *    宽度，与 ResizeObserver 构成反馈死循环。
 *  - 逗号选择器列表里一旦出现 :has()，内核不支持时整条规则（含版本历史让位）
 *    会被一起丢弃，版本历史让位静默失效。 */
.workspace-page-layout-history-open-pc .workspace-page-layout-content-pc {
  padding-right: var(--vh-sidebar-width, 320px);
}

.mobile-mini-program-float-button-wrapper {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 20;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0 var(--space-4) calc(env(safe-area-inset-bottom, 0px) + 40px);
  pointer-events: none;
}
.mobile-mini-program-float-button-inner {
  position: relative;
  pointer-events: auto;
}
.mobile-mini-program-float-button {
  display: inline-flex;
  gap: var(--space-2);
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: var(--space-2) var(--space-5);
  background: var(--button-floating-bg);
  color: var(--bg-default);
  border: none;
  border-radius: 14px;
  pointer-events: auto;
  cursor: pointer;
  transition: opacity 150ms ease;
}
.mobile-mini-program-float-button:active {
  opacity: 0.9;
}
.mobile-mini-program-float-button:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}
.mobile-mini-program-float-button__logo {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  object-fit: contain;
}
.mobile-mini-program-float-button__label {
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 22px;
  color: var(--text-primary-invert);
  white-space: nowrap;
}
.mobile-mini-program-float-button__arrow {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  transform: rotate(-90deg);
}
.mobile-mini-program-float-button__close {
  position: absolute;
  /* stylelint-disable-next-line design-system/spacing-4px-multiple */
  top: calc(-6px * var(--font-scale));
  /* stylelint-disable-next-line design-system/spacing-4px-multiple */
  right: calc(-6px * var(--font-scale));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  padding: 0;
  /* DESIGN_FALLBACK: 关闭按钮固定色，无对应语义 Token */
  background: #a3a3a3;
  color: var(--bg-default);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  transition: opacity 150ms ease;
}
.mobile-mini-program-float-button__close:active {
  opacity: 0.85;
}
.mobile-mini-program-float-button__close-icon {
  width: 12px;
  height: 12px;
}

/*
 * WorkspacePageLayoutMobile 样式
 *
 * 移动端布局与 pc.less 保持外壳结构一致（垂直 flex），但移除 PC 端特有能力：
 * - 无全文版本历史侧栏 → 不需要 `.workspace-page-layout-history-open-*` 让位
 * - 无关联面板 → 不需要 `.workspace-page-layout-content-relation-preview-*`
 * - 无宽度过渡动画 → 不需要 transition:padding-right
 *
 * 移动端专属考虑：
 * - 移动端主容器高度用 100dvh 而非 100%，避免 iOS Safari 地址栏折叠时视口高度
 *   跳变导致内容抖动（100% 依赖父容器高度传递，dvh 直接读实时视口）。
 */
.workspace-page-layout-mobile {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
  background: var(--bg-default);
  position: relative;
  /* 底部安全区：整体页面抬高，滚动过程中内容底部也不被系统手势条 / 操作栏覆盖。
   * 容器为 height:100% 且全局无 border-box reset，需补 box-sizing 让 padding
   * 压缩内容区而非撑破高度。 */
  box-sizing: border-box;
  padding-bottom: var(--safe-area-bottom, 0px);
}
/* 编辑态：底部工具栏（MobileBottomToolbar）需贴底定位，键盘弹起时若再叠加
 * 底部安全区 padding，部分安卓机会把工具栏顶偏（定位偏上），故编辑态取消安全区避让。 */
.workspace-page-layout-mobile-editing {
  padding-bottom: 0;
}
.workspace-page-layout-content-mobile {
  display: flex;
  flex-direction: column;
  flex: 1;
  width: 100%;
  overflow: hidden;
  color: var(--text-primary);
}
/* ===== 移动端分享面板：覆盖式浮窗 =====
 * z-index 说明：
 * - DocTitlebarMobile z-index=110（防止正文滚动时被遮盖）
 * - DirectorySheet z-index=10000（移动端底部抽屉）
 * - 分享浮窗需要盖过 titlebar，用 9999（略低于 DirectorySheet，因为二者互斥）
 */
.workspace-page-layout-mobile-share-overlay {
  position: absolute;
  inset: 0;
  z-index: 9999;
  background: var(--overlay-default);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  animation: workspace-mobile-share-overlay-fade-in 200ms ease;
}
.workspace-page-layout-mobile-share-sheet {
  background: var(--bg-weak);
  border-radius: var(--radius-3xl-val) var(--radius-3xl-val) 0 0;
  max-height: 90vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-3);
  animation: workspace-mobile-share-sheet-slide-up 240ms cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes workspace-mobile-share-overlay-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes workspace-mobile-share-sheet-slide-up {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}
/* 关联管理抽屉：底色 #F2F2F2（--bg-medium）、顶角 24（覆盖分享 sheet 的 3xl=14） */
.workspace-page-layout-mobile-relation-sheet {
  background: var(--bg-medium);
  border-radius: var(--radius-24px-val) var(--radius-24px-val) 0 0;
}

/* =========================================================================
 *  LandingTopbarPC — 资料库全屏落地页共用顶栏样式
 *
 *  布局由 logo + 分隔线 + 返回首页组成。
 *  高度 56px、纯品牌位、无背景/无底边框——落地页整体是「轻邀请卡」调性，
 *  顶栏不喧宾夺主。品牌区不做 hover 视觉态（仅作品牌标识），但保留点击热区；
 *  「返回首页」按钮带内边距 + 圆角 + hover 底色。
 * ========================================================================= */
.landing-topbar-pc {
  flex-shrink: 0;
  height: 56px;
  display: flex;
  align-items: center;
  gap: var(--space-3, 12px);
  padding: 0 var(--space-6, 24px);
}
.landing-topbar-brand-btn-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2, 8px);
  height: 100%;
  padding: 0 var(--space-4, 16px);
  margin-left: calc(-1 * var(--space-4, -16px));
  background: transparent;
  border: none;
  cursor: pointer;
}
.landing-topbar-brand-logo-pc {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  object-fit: contain;
}
/* 品牌标题：20px / Semibold / 28px。 */
.landing-topbar-brand-title-pc {
  font-size: calc(20px * var(--font-scale));
  font-weight: 600;
  line-height: 28px;
  color: var(--text-primary);
}
.landing-topbar-divider-pc {
  width: 1px;
  height: 20px;
  background: var(--border-default);
}
.landing-topbar-home-btn-pc {
  height: 28px;
  padding: 0 var(--space-2, 8px);
  font-size: var(--fs-caption);
  color: var(--text-secondary);
  background: transparent;
  border: none;
  border-radius: var(--radius-sm-val);
  cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease;
}
.landing-topbar-home-btn-pc:hover {
  background: var(--fill-secondary);
  color: var(--text-primary);
}
.landing-topbar-right-pc {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
}
/* 移动端：顶栏左右内边距收窄到 space-4 */
@media (max-width: 640px) {
  .landing-topbar-pc {
    padding: 0 var(--space-4, 16px);
  }
}

/* ====== 无权限异常页的内联申请卡片 ======
 *
 * 视觉真相源：workspace-exception 无权限态设计稿
 *   - 白色卡片居中，宽 400，圆角 16，阴影 level-2
 *   - 内部 vertical auto-layout，gap 20
 *   - 文件区（图标 40 + 文件名 h1 + 所有者 caption）
 *   - 「申请 [xxx 权限] ⌄」（inline flex，gap 4）
 *   - 灰底 textarea（radius 12，padding 12，min-height 120）
 *   - 常用语 caption row（灰字 + 填入链接）
 *   - 两个全宽按钮（h44）：主按钮胶囊黑底 + 次按钮描边
 *
 * checking / pending 复用同一卡片壳，仅内部内容切换（避免闪现空白）。
 */
.permission-request-card-pc {
  width: 100%;
  max-width: 400px;
  /* PC 端锁定最小高度 518：
   *
   * form 态（申请）与 pending 态（已申请）在同一卡片壳内切换文案时，
   * 内容自然高度会有差异（form 有 role 行 + textarea + 常用语；pending 只
   * 有状态行 + 只读 textarea，没常用语）。把卡片锁定成 min-height 518，
   * 配合下方 `.permission-request-card-actions-pc { margin-top: auto }` 把
   * 按钮组顶到底部，中间冗余空间自动填在按钮上方，让两态切换时按钮位置
   * 恒定（视觉不跳动），也保证 checking 短暂 loading 时卡片尺寸稳定。
   *
   * 用 min-height 而不是 height：极端超长文件名（word-break: break-all）
   * 触发多行时仍可撑高，不截断。
   *
   * 移动端也保留 min-height:518 与 actions margin-top:auto，保证 form/pending
   * 切换按钮位置一致；移动端视觉差异只做 padding / 阴影 / 背景收敛。
   */
  min-height: 518px;
  display: flex;
  flex-direction: column;
  gap: var(--space-5, 20px);
  padding: var(--space-9, 36px);
  /* DESIGN_FALLBACK: 设计稿卡片圆角 16px，token scale 最大 --radius-2xl-val=10px 不匹配 */
  /* stylelint-disable-next-line design-system/no-hardcoded-border-radius */
  border-radius: 16px;
  background: var(--bg-default);
  /* 阴影强度对齐设计稿：单独 `--wb-shadow-popup-large`（0.06~0.08 强度、y=24
   * 定向向下）在白底页面里几乎不可见，卡片"浮起感"丢失。
   *
   * 叠加 `--wb-shadow-dialog`（0 8px 48px -4px @0.12）：
   *   - y 偏移更小（8 vs 24）→ 顶部与两侧也能看到阴影带，贴合需求图的
   *     四周弥散观感
   *   - 强度更浓（@0.12 vs @0.08）→ 白底页面上可见度足够
   *   - 语义：popup-large 表征"页面大浮层"，dialog 表征"模态强度"，
   *     当前卡片位于全屏无权限异常页居中，两档语义均命中
   *
   * lint 规则 `design-system/no-hardcoded-box-shadow` 只校验起始 token 前缀，
   * 允许多个 `var(--wb-shadow-*)` 逗号叠加，无需 disable。 */
  box-shadow: var(--wb-shadow-popup-large), var(--wb-shadow-dialog);
  text-align: left;
}
/* ============ 文件区（图标 + 文件名 + 所有者） ============ */
.permission-request-card-file-pc {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2, 8px);
  margin-bottom: var(--space-3, 12px);
}
.permission-request-card-file-icon-pc {
  color: var(--icon-primary);
  flex-shrink: 0;
}
.permission-request-card-title-pc {
  margin: 0;
  color: var(--text-primary);
  font-size: calc(20px * var(--font-scale, 1));
  font-weight: var(--fw-medium, 500);
  line-height: 28px;
  word-break: break-all;
}
.permission-request-card-owner-pc {
  margin: calc(-1 * var(--space-1, -4px)) 0 0;
  color: var(--text-tertiary);
  font-size: var(--fs-caption);
  line-height: 20px;
}
/* ============ 「申请 [权限种类] ⌄」 ============ */
.permission-request-card-role-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1, 4px);
  font-size: var(--fs-body);
  line-height: 22px;
  color: var(--text-primary);
}
.permission-request-card-role-label-pc {
  color: var(--text-primary);
}
.permission-request-card-role-trigger-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-0-5, 2px);
  padding: 0;
  border: none;
  background: none;
  color: var(--text-primary);
  font-family: inherit;
  font-size: var(--fs-body);
  font-weight: var(--fw-semibold, 600);
  line-height: 22px;
  cursor: pointer;
  transition: color 150ms ease;
}
.permission-request-card-role-trigger-pc:hover {
  color: var(--brand-hover);
}
.permission-request-card-role-trigger-pc:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.permission-request-card-role-value-pc {
  white-space: nowrap;
}
.permission-request-card-role-arrow-pc {
  flex-shrink: 0;
  color: var(--icon-secondary);
}
.permission-request-card-role-menu-pc {
  z-index: 11001;
  width: auto;
  min-width: 112px;
  padding: var(--space-1);
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-lg-val);
  background: var(--bg-default);
  box-shadow: var(--wb-shadow-dialog);
}
.permission-request-card-role-menu-pc [data-slot="dropdown-menu-item"] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md-val);
  color: var(--text-primary);
  font-size: var(--fs-body);
  line-height: 20px;
  white-space: nowrap;
  transition: background-color 120ms ease;
}
.permission-request-card-role-menu-pc [data-slot="dropdown-menu-item"]:hover,
.permission-request-card-role-menu-pc [data-slot="dropdown-menu-item"]:focus {
  background: var(--fill-secondary);
  outline: none;
}
.permission-request-card-role-menu-pc [data-slot="dropdown-menu-item"][data-selected] {
  font-weight: 500;
}
/* ============ 申请理由 textarea ============ */
.permission-request-card-textarea-pc {
  width: 100%;
  min-height: 94px;
  margin-top: calc(-1 * var(--space-3, -12px));
  padding: var(--space-2) var(--space-2);
  /* PC 端设计稿：白底 + 1px 灰色描边（focus 变主色描边）。
   * 移动端在 media query 里覆盖为灰底无描边 + 更大圆角。 */
  border: var(--border-width-thin) solid var(--border-default);
  border-radius: var(--radius-xl-val);
  background: var(--bg-default);
  color: var(--text-primary);
  font-family: inherit;
  font-size: var(--fs-body);
  line-height: 20px;
  resize: none;
  outline: none;
  transition: border-color 150ms ease, background-color 150ms ease;
}
.permission-request-card-textarea-pc::-webkit-input-placeholder {
  color: var(--text-quaternary);
}
.permission-request-card-textarea-pc::placeholder {
  color: var(--text-quaternary);
}
.permission-request-card-textarea-pc:focus {
  background: var(--bg-default);
  border-color: var(--border-focus);
}
.permission-request-card-textarea-pc:disabled {
  cursor: not-allowed;
}
/* ============ 常用语 ============ */
.permission-request-card-quick-pc {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--space-1);
  font-size: var(--fs-small);
  line-height: 20px;
  margin-top: calc(-1 * var(--space-3, -12px));
}
.permission-request-card-quick-label-pc {
  color: var(--text-tertiary);
  white-space: nowrap;
  flex-shrink: 0;
}
.permission-request-card-quick-phrase-pc {
  padding: 0;
  border: none;
  background: none;
  color: var(--text-tertiary);
  font-family: inherit;
  line-height: 20px;
  cursor: pointer;
  transition: color 150ms ease;
}
.permission-request-card-quick-phrase-pc:hover {
  color: var(--brand);
  text-decoration: underline;
}
.permission-request-card-quick-phrase-pc:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
.permission-request-card-quick-fill-pc {
  padding: 0;
  border: none;
  background: none;
  color: var(--text-primary);
  font-family: inherit;
  font-weight: var(--fw-semibold, 600);
  line-height: 20px;
  cursor: pointer;
  transition: color 150ms ease;
}
.permission-request-card-quick-fill-pc:hover {
  color: var(--brand-hover);
}
.permission-request-card-quick-fill-pc:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
/* ============ pending 分支占位（对齐 form 常用语行高度） ============ *
 *
 * form 分支的「常用语」行 line-height:20（caption）；pending 分支不渲染这一行时
 * 少了 20px 高度 + 1 个 flex gap(20)。这里给出一个 height:20 的隐形占位子项，
 * 由父级 flex 的 gap 自动补上前后 20，总差异 = 20 + 20 = 40，与 form 完全对齐。
 *
 * 用 height 而非 min-height：占位纯粹是"补 form 缺失的一行"，本身不需要撑高。
 * pointer-events:none 防止意外抢焦点；aria-hidden 在 tsx 里已设。
 */
.permission-request-card-spacer-pc {
  height: 20px;
  pointer-events: none;
  visibility: hidden;
  margin-top: calc(-1 * var(--space-3, -12px));
}
/* ============ 按钮区（全宽） ============ */
.permission-request-card-actions-pc {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 12px);
  /* 与卡片 min-height:518 协同：把按钮组顶到卡片底部，中间富余空间
   * 自动落在按钮上方，实现「form ↔ pending 切换按钮位置不跳动」。
   * PC 与移动端都生效（移动端 media query 不 override）。 */
  margin-top: auto;
}
.permission-request-card-btn-primary-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 48px;
  padding: 0 var(--space-4);
  border: none;
  border-radius: var(--radius-xl-val);
  background: var(--button-primary-bg);
  color: var(--text-primary-invert);
  font-size: var(--fs-16);
  font-weight: var(--fw-semibold, 600);
  line-height: 22px;
  cursor: pointer;
  transition: background-color 150ms ease;
  /* 只对真实鼠标设备启用 hover 反馈，避免触屏 tap 后残留 hover 色
   * （移动 Safari / Chrome 的 sticky :hover 问题：tap 后 :hover 直到点击别处
   * 才清除，导致「申请权限」/「再次申请」按钮点完颜色不复原）。
   * 同仓库 drive-page 已采用 `hover: hover and pointer: fine` 组合作为约定。 */
}
@media (hover: hover) and (pointer: fine) {
  .permission-request-card-btn-primary-pc:hover {
    background: var(--button-primary-bg-hover);
  }
}
.permission-request-card-btn-primary-pc:active {
  background: var(--button-primary-bg-hover);
}
.permission-request-card-btn-primary-pc:disabled {
  background: var(--button-primary-bg-disabled);
  cursor: not-allowed;
}
.permission-request-card-btn-secondary-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 44px;
  padding: 0 var(--space-4);
  border: var(--border-width-thin) solid var(--border-primary, var(--border-default));
  border-radius: var(--radius-xl-val);
  background: var(--bg-default);
  color: var(--text-primary);
  font-size: var(--fs-16);
  font-weight: var(--fw-semibold, 600);
  line-height: 22px;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease;
  /* 同 primary 按钮：只对真实鼠标设备启用 hover 反馈，规避移动端 sticky :hover。 */
}
@media (hover: hover) and (pointer: fine) {
  .permission-request-card-btn-secondary-pc:hover {
    background: var(--fill-secondary);
    border-color: var(--border-strong);
  }
}
.permission-request-card-btn-secondary-pc:active {
  background: var(--fill-tertiary);
}
.permission-request-card-btn-secondary-pc:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
/* ============ pending 状态行「⏰ 已发送申请，等待审批」 ============ *
 *
 * 与 form 分支的「申请 [xxx 权限] ⌄」占同一位置（第二栏），保证 pending ↔ form
 * 切换时下方 textarea / 按钮不跳动；文本用 tertiary 色，图标同色。
 */
.permission-request-card-status-pc {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2, 8px);
  color: var(--text-tertiary);
  font-size: var(--fs-body);
  line-height: 22px;
}
.permission-request-card-status-icon-pc {
  flex-shrink: 0;
  color: var(--icon-secondary);
}
/* ============ 移动端响应式 ============ *
 * 移动端把卡片撑到接近视口宽度，同时收紧内边距与按钮高度；
 * 视觉参考「mobile 需求图」：白底、边距 16、按钮 44、按钮全宽。
 *
 * 注意：移动端**继承** PC 端的 `min-height:518` 与
 * `.permission-request-card-actions-pc { margin-top:auto }`，让 form / pending
 * 切换按钮位置也恒定不跳动（等价于 PC 效果）。之所以不 override 回 auto，是因为
 * pending 态没有常用语一行，若不锁高按钮会上移一行，造成小屏体验割裂。
 */
@media (max-width: 640px) {
  .permission-request-card-pc {
    max-width: 356px;
    min-height: 470px;
    padding: 0;
    box-shadow: none;
    background: transparent;
  }
  /* 移动端所有者行字号放大到 16px */
  .permission-request-card-owner-pc {
    font-size: var(--fs-16);
  }
  /* 移动端 textarea：灰底无描边、更大圆角（视觉参考 mobile 需求图）。
   * focus 也保持灰底 + 无描边，避免焦点时闪成白底描边（PC 才需要）。 */
  .permission-request-card-textarea-pc {
    border-color: transparent;
    background: var(--fill-secondary);
    /* DESIGN_FALLBACK: 移动端 textarea 设计圆角 12px，token scale 无 12px */
    /* stylelint-disable-next-line design-system/no-hardcoded-border-radius */
    border-radius: 12px;
    margin-top: calc(-1 * var(--space-2, -8px));
    font-size: var(--fs-16);
    padding: var(--space-3) var(--space-4);
  }
  .permission-request-card-textarea-pc:focus {
    background: var(--fill-secondary);
    border-color: transparent;
  }
  .permission-request-card-quick-pc {
    margin-top: calc(-1 * var(--space-2, -8px));
    font-size: var(--fs-body);
  }
  .permission-request-card-spacer-pc {
    margin-top: calc(-1 * var(--space-2, -8px));
  }
  .permission-request-card-actions-pc {
    margin-top: var(--space-5, 20px);
  }
  /* 移动端按钮：更大圆角（视觉参考 mobile 需求图）。 */
  .permission-request-card-btn-primary-pc,
  .permission-request-card-btn-secondary-pc {
    height: 56px;
    /* DESIGN_FALLBACK: 移动端按钮设计圆角 16px，token scale 最大 --radius-2xl-val=10px 不匹配 */
    /* stylelint-disable-next-line design-system/no-hardcoded-border-radius */
    border-radius: 16px;
  }
}

/* ====== 空间 / 文档访问异常全屏页 ======
 *
 * 无权限异常态用卡片式内联申请表单（PermissionRequestCardPC），
 * 视觉真相源见组件自身 .less；本文件只维护:
 *   - 页面外壳 / 顶栏 / body 居中容器
 *   - 其他异常态（delete / security / unsupported）的 empty 状态排版
 *   - 底部「返回 WorkBuddy 资料库」返回入口
 *   - 组织权限异常态的说明与主按钮
 *
 * 垂直节奏用显式 margin 而非容器 gap：设计稿里「标题 + 说明」是一个 gap 4 的
 * 子 frame，与外层 gap 12 不是同一档，用单一 gap 无法同时表达两档间距。
 */
.workspace-exception-page-pc {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  background-color: var(--wb-color-bg-secondary-default);
}
.workspace-exception-body-pc {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: auto;
  padding: var(--space-6, 24px);
}
.workspace-exception-content-pc {
  width: 100%;
  max-width: 360px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.workspace-exception-icon-pc {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  /* icon → 标题：设计稿 12 */
  margin-bottom: var(--space-3, 12px);
  color: var(--icon-tertiary);
}
/* 无权限（org 侧）用 48px 空态插图（empty-lock 自带 50% group 透明度），
 * 父级传 --text-disable 后有效浓度与设计稿 text/disable × 0.5 一致。
 * 其余异常态仍是 24 网格描边图标，保持 --icon-tertiary 不变。
 * 注：permission-denied 场景已改走 PermissionRequestCardPC 卡片，
 * 此处只影响 org-permission-denied。
 */
.workspace-exception-page-pc[data-exception-kind="org-permission-denied"] .workspace-exception-icon-pc {
  color: var(--text-disable);
}
.workspace-exception-title-pc {
  /* 标题 → 说明：设计稿 4 */
  margin: 0 0 var(--space-1, 4px);
  color: var(--text-secondary);
  font-size: var(--fs-section-title);
  font-weight: var(--fw-semibold);
  line-height: 22px;
}
.workspace-exception-desc-pc {
  /* 说明 → 按钮：设计稿 12 */
  margin: 0 0 var(--space-3, 12px);
  color: var(--text-tertiary);
  font-size: var(--fs-small);
  line-height: 20px;
}
/* 组织权限异常态的说明：两行文案（企业名 + 当前账号），
 * 关键词（文档所属企业名、当前登录账号）用 <strong> 加粗到 text/secondary，
 * 与设计稿的深浅对比保持一致。 */
.workspace-exception-org-desc-pc strong {
  color: var(--text-secondary);
  font-weight: var(--fw-semibold);
}
/* 主按钮（非权限异常场景的「返回首页」）—— 设计稿 button/primary */
.workspace-exception-action-pc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding: 0 var(--space-3, 12px);
  color: var(--text-primary-invert);
  font-size: var(--fs-body);
  font-weight: var(--fw-semibold);
  line-height: 22px;
  background: var(--button-primary-bg);
  border: none;
  border-radius: var(--radius-xl);
  cursor: pointer;
  transition: background-color 150ms ease;
}
.workspace-exception-action-pc:hover,
.workspace-exception-action-pc:active {
  background: var(--button-primary-bg-hover);
}
/* ============ 底部「返回 WorkBuddy 资料库」返回入口 ============ *
 * 仅无权限异常态渲染（顶栏已隐藏返回首页按钮，需要底部兜底）。
 * 视觉为安静的次要链接：小字、tertiary，hover 露出品牌色。
 */
.workspace-exception-footer-pc {
  display: flex;
  justify-content: center;
  padding: var(--space-6, 24px) var(--space-6, 24px) var(--space-8, 32px);
}
.workspace-exception-back-link-pc {
  padding: 0;
  border: none;
  background: none;
  color: var(--text-tertiary);
  font-family: inherit;
  font-size: var(--fs-caption);
  line-height: 20px;
  cursor: pointer;
  transition: color 150ms ease;
}
.workspace-exception-back-link-pc:hover {
  color: var(--text-primary);
}
/* UserAccountMenuPC 面板 z-index 抬升
 *
 * 该异常页 `.workspace-exception-page-pc` 通过 `createPortal` 挂到 body 且 z-index:10000
 * （见文件顶部 fixed 全屏覆盖），与 UserAccountMenuPC 面板（同样 portal 到 body，默认
 * z-index:2300）互为 body 直系兄弟。默认值下面板会被异常页整块盖住，导致点击命中的
 * 事件 target 落在异常页而非面板 —— usePopoverDismiss 判定"外部点击"直接关闭，
 * 二级菜单（外观切换、退出登录）不可用。
 *
 * 只在异常页场景把面板 z-index 抬到 10001，正好压过 10000；不动组件默认值，
 * 避免影响其它页面（如 workspace-page-layout / wb-home-page）与 apply-dialog 等
 * 11000+ 层级弹窗的既有堆叠关系。
 */
.workspace-exception-account-menu-panel-pc {
  z-index: 10001;
}

.workspace-page-loading-pc {
  padding: var(--space-12);
  color: var(--text-tertiary);
}
/**
 * 路由切换中间态全屏遮罩（与 WorkspaceExceptionPagePC 视觉对齐）。
 *
 * 用途：访问 `/d/:nodeId` 类深链时，session 还没反查到 spaceId、open 也还没回来，
 * 状态机派发为 `idle`（!spaceId）。此时若占位仅渲染在 `<Outlet />` 内部，
 * 用户会看到「侧边栏 + 加载占位」，等 open 返回 12607 切到 `visit-exception`
 * 全屏权限申请页时，视觉上会产生「侧栏先出 → 全屏覆盖」的跳变。
 *
 * 解决：让 idle 分支也用 fixed 全屏遮罩盖住侧栏，从「全屏 loading → 全屏
 * 异常访问页 / 全屏空间页」的过渡视觉连续。z-index 与 workspace-exception
 * 页一致（1000），保证盖住 main-layout 侧栏（默认 z-index 较低）。
 */
.workspace-page-fullscreen-loading-pc {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--bg-default);
  color: var(--text-tertiary);
  font-size: var(--font-size-md, 14px);
}

.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;
}

/* Template base styles for MindX app */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html,
body {
  width: 100%;
  height: 100%;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  overflow: hidden;
  overscroll-behavior: none;
}
#root {
  width: 100%;
  height: 100%;
}
/* 全局细滚动条：4px、淡灰色常驻、hover 时加深
 * 覆盖系统默认粗滚动条，所有可滚动区域统一风格（含 SDK portal 弹窗）。
 * scrollbar-width: thin 是标准属性，优先级高于 webkit 私有属性。
 */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--fill-primary) transparent;
}
*::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}
*::-webkit-scrollbar-thumb {
  background: var(--fill-primary);
  border-radius: var(--radius-sm-val);
}
*::-webkit-scrollbar-thumb:hover {
  background: var(--fill-secondary);
}
*::-webkit-scrollbar-track {
  background: transparent;
}

