/* ==========================================================================
   运营工作台 · Operations Workbench
   视觉规范来自参考稿 1:1 复刻：深色氛围底图 + 毛玻璃卡片 + 白色信息层级
   ========================================================================== */

:root {
  --wb-page: #d4d4d4;

  --wb-ink: #ffffff;
  --wb-ink-90: rgba(var(--wb-ink-rgb), .92);
  --wb-ink-75: rgba(var(--wb-ink-rgb), .75);
  --wb-ink-60: rgba(var(--wb-ink-rgb), .6);
  --wb-ink-45: rgba(var(--wb-ink-rgb), .45);

  --wb-glass: rgba(var(--wb-ink-rgb), .16);
  --wb-glass-2: rgba(var(--wb-ink-rgb), .22);
  --wb-glass-hover: rgba(var(--wb-ink-rgb), .26);
  --wb-hairline: rgba(var(--wb-ink-rgb), .16);
  --wb-blur: blur(22px) saturate(150%);
  --wb-shadow: 0 18px 40px rgba(4, 14, 16, .18), inset 0 1px 0 rgba(var(--wb-ink-rgb), .2);
  --wb-shadow-lift: 0 24px 52px rgba(4, 14, 16, .26), inset 0 1px 0 rgba(var(--wb-ink-rgb), .28);

  --wb-font: "Plus Jakarta Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
  --wb-ease: cubic-bezier(.22, .61, .36, 1);
}

* { box-sizing: border-box; }

html, body { height: 100%; }

body {
  margin: 0;
  background: var(--wb-page);
  color: var(--wb-ink);
  font-family: var(--wb-font);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.wb-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

.wb-icon { width: 20px; height: 20px; display: block; fill: none; }

.wb-iconbtn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--wb-glass);
  backdrop-filter: var(--wb-blur);
  -webkit-backdrop-filter: var(--wb-blur);
  color: var(--wb-ink-90);
  cursor: pointer;
  transition: background-color .2s var(--wb-ease), transform .2s var(--wb-ease);
}

.wb-iconbtn:hover { background: var(--wb-glass-hover); transform: translateY(-1px); }
.wb-iconbtn:active { transform: translateY(0); }

.wb-avatar {
  width: 46px;
  height: 46px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  overflow: hidden;
  background: #cfd6d8;
  cursor: pointer;
  box-shadow: 0 0 0 1px rgba(var(--wb-ink-rgb), .22);
  transition: transform .2s var(--wb-ease);
}

.wb-avatar:hover { transform: translateY(-1px); }
.wb-avatar__img { display: block; width: 100%; height: 100%; }
.wb-avatar__img svg { display: block; width: 100%; height: 100%; }

/* 内容两栏 */
.wb-content {
  flex: 1;
  min-height: 0;
  margin-top: 46px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 255px;
  column-gap: 20px;
  align-items: stretch;
}

/* ---------- 主视觉 ---------- */

.wb-chip {
  align-self: flex-start;
  padding: 6px 16px;
  border-radius: 999px;
  background: rgba(var(--wb-ink-rgb), .15);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: 13px;
  line-height: 1.35;
  color: var(--wb-ink-90);
  white-space: nowrap;
}

.wb-glasscard {
  position: relative;
  border-radius: 24px;
  background: linear-gradient(150deg, rgba(var(--wb-ink-rgb), .3), rgba(var(--wb-ink-rgb), .2));
  backdrop-filter: var(--wb-blur);
  -webkit-backdrop-filter: var(--wb-blur);
  box-shadow: var(--wb-shadow);
  transition: transform .25s var(--wb-ease), box-shadow .25s var(--wb-ease);
}

/* ---------- 状态与动效 ---------- */

.wb-chip {
  transition: opacity .3s var(--wb-ease);
}

.wb-content.is-switching .wb-chip {
  opacity: 0;
}

button:focus-visible,
a:focus-visible {
  outline: 2px solid rgba(var(--wb-ink-rgb), .8);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  * { transition-duration: .001ms !important; }
}

/* ---------- 自适应 ---------- */

@media (max-width: 1240px) {
  .wb-content { grid-template-columns: minmax(0, 1fr) 238px; column-gap: 16px; }
}

@media (max-width: 1080px) {
  .wb-content {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 26px;
    margin-top: 26px;
  }
}

@media (max-width: 820px) {
  .wb-iconbtn, .wb-avatar { width: 40px; height: 40px; }
  .wb-icon { width: 18px; height: 18px; }
  .wb-content { margin-top: 20px; }
}

@media (max-width: 520px) {
  /* 窄屏收掉头部那颗装饰性图标按钮 —— 但**不能连任务栏托盘里的 ME分身 小球一起收掉**
     （它也是第 2 个子节点；手机上没有 ⌘K，那颗小球是唯一的入口）。 */
  .wb-iconbtn:nth-child(2):not(.dk-orb) { display: none; }
}

/* ==========================================================================
   智能体工作室：虚拟办公室 / 我的团队 / 六维培养 / 人才市场
   ========================================================================== */

/* ---------- 头像下拉菜单 ---------- */

.wb-pop {
  position: absolute;
  top: 54px;
  right: 118px;
  z-index: 45;
  width: 272px;
  padding: 7px;
  border-radius: 16px;
  background: rgba(var(--wb-sheet-rgb), .95);
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
  box-shadow: 0 20px 48px rgba(2, 10, 10, .52), inset 0 0 0 1px rgba(var(--wb-ink-rgb), .12);
  animation: wbMenuIn .18s var(--wb-ease);
}

.wb-pop[hidden] { display: none; }
/* 面板整体收一档：这张浮层现在只在「敲了字」时出现，一行一行看，一屏装得下就行 */
.wb-pop__head { padding: 4px 9px 7px; font-size: 11px; color: var(--wb-ink-45); }
.wb-pop__group { padding: 7px 9px 3px; font-size: 10.5px; letter-spacing: .5px; color: var(--wb-ink-45); }
.wb-pop__empty { margin: 0; padding: 12px 9px; font-size: 11px; color: var(--wb-ink-45); text-align: center; }

.wb-pop__list { list-style: none; margin: 0; padding: 0; }
.wb-pop__list button {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 6px 9px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--wb-ink-90);
  font: inherit;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
  transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease);
}

.wb-pop__list button:hover { background: rgba(var(--wb-ink-rgb), .14); color: var(--wb-ink); }
.wb-pop__list .wb-icon { width: 14px; height: 14px; color: var(--wb-ink-60); flex: none; }
.wb-pop__list .wb-dot { width: 7px; height: 7px; border-radius: 50%; flex: none; }

.wb-pop__search {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 4px 6px;
  padding: 0 10px;
  height: 30px;
  border-radius: 999px;
  background: rgba(var(--wb-ink-rgb), .1);
}

.wb-pop__search .wb-icon { width: 14px; height: 14px; color: var(--wb-ink-45); }
.wb-pop__search input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--wb-ink); font: inherit; font-size: 12px; outline: none; }
.wb-pop__search input::placeholder { color: var(--wb-ink-45); }

.wb-pop__list--notice button { align-items: flex-start; }
.wb-pop__dot { width: 7px; height: 7px; margin-top: 5px; border-radius: 50%; flex: none; background: var(--wb-ink-45); }
.wb-pop__dot--wait { background: #f2b968; box-shadow: 0 0 8px rgba(242, 185, 104, .6); }
.wb-pop__dot--bad { background: #ff7f6d; box-shadow: 0 0 8px rgba(255, 127, 109, .6); }
.wb-pop__dot--ok { background: #7fd8c3; }
.wb-pop__notice { display: flex; flex-direction: column; min-width: 0; }
.wb-pop__notice b { font-size: 12px; font-weight: 500; color: var(--wb-ink); }
.wb-pop__notice i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }

.wb-pop__all {
  width: 100%;
  margin-top: 6px;
  padding: 8px 10px;
  border: 0;
  border-radius: 11px;
  background: rgba(var(--wb-ink-rgb), .07);
  color: var(--wb-ink-75);
  font: inherit;
  font-size: 11.5px;
  cursor: pointer;
}

.wb-pop__all:hover { background: rgba(var(--wb-ink-rgb), .14); color: var(--wb-ink); }

.wb-search__clear {
  width: 18px;
  height: 18px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(var(--wb-ink-rgb), .16);
  color: var(--wb-ink-75);
  font: inherit;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
}

.wb-search__clear:hover { background: rgba(var(--wb-ink-rgb), .3); color: var(--wb-ink); }

.wb-usermenu {
  position: absolute;
  top: 54px;
  right: 0;
  z-index: 40;
  width: 216px;
  padding: 8px;
  border-radius: 18px;
  background: rgba(var(--wb-sheet-rgb), .94);
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
  box-shadow: 0 20px 48px rgba(2, 10, 10, .52), inset 0 0 0 1px rgba(var(--wb-ink-rgb), .12);
  animation: wbMenuIn .18s var(--wb-ease);
}

.wb-usermenu[hidden] { display: none; }

@keyframes wbMenuIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.wb-usermenu__head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 8px 11px;
  border-bottom: 1px solid rgba(var(--wb-ink-rgb), .1);
}

.wb-usermenu__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: none;
  border-radius: 50%;
  background: radial-gradient(circle at 34% 28%, rgba(var(--wb-ink-rgb), .55), #7fd8c3);
  color: #10201d;
  font-size: 14px;
  font-weight: 600;
}

.wb-usermenu__id { display: flex; flex-direction: column; min-width: 0; }
.wb-usermenu__id b { font-size: 13px; color: var(--wb-ink); }
.wb-usermenu__id i { font-size: 11px; font-style: normal; color: var(--wb-ink-60); }

.wb-usermenu__list { list-style: none; margin: 6px 0 0; padding: 0; }

.wb-usermenu__list button {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  padding: 9px 10px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: var(--wb-ink-90);
  font: inherit;
  font-size: 12.5px;
  text-align: left;
  cursor: pointer;
  transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease);
}

.wb-usermenu__list button .wb-icon { width: 16px; height: 16px; color: var(--wb-ink-60); }
.wb-usermenu__list button:hover { background: rgba(var(--wb-ink-rgb), .14); color: var(--wb-ink); }
.wb-usermenu__list button:hover .wb-icon { color: var(--wb-ink); }
.wb-usermenu__list button.is-danger { color: #ff9e90; }
.wb-usermenu__list button.is-danger .wb-icon { color: #ff9e90; }
.wb-usermenu__list button.is-danger:hover { background: rgba(255, 127, 109, .16); }

/* ---------- 个人主页 ---------- */

.wb-profilegrid {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 14px;
}

.wb-profile__side { display: flex; flex-direction: column; gap: 10px; min-height: 0; }

.wb-profile__card { padding: 18px 16px 16px; border-radius: 22px; text-align: center; }
.wb-profile__card .wb-avatar-lg { width: 62px; height: 62px; font-size: 24px; }
.wb-profile__card h3 { margin: 10px 0 2px; font-size: 16px; font-weight: 600; }
.wb-profile__card p { margin: 0; font-size: 11.5px; color: var(--wb-ink-60); }
.wb-profile__tag { display: inline-flex; align-items: center; gap: 5px; margin-top: 8px; padding: 3px 10px; border-radius: 999px; background: rgba(127, 216, 195, .18); color: #a9efdd; font-size: 12.5px; }

.wb-profile__meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 12px; padding-top: 11px; border-top: 1px solid rgba(var(--wb-ink-rgb), .12); text-align: left; }
.wb-profile__meta i { display: block; font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-profile__meta b { font-size: 11.5px; color: var(--wb-ink); font-weight: 600; }

.wb-meter { padding: 14px 16px; border-radius: 20px; }
.wb-meter__head { display: flex; align-items: baseline; justify-content: space-between; font-size: 12px; color: var(--wb-ink); }
.wb-meter__head b { font-size: 18px; }
.wb-meter__bar { display: block; height: 5px; margin: 9px 0 8px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .16); overflow: hidden; }
.wb-meter__bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #7fd8c3, #b9f0e2); }
.wb-meter ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.wb-meter li { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--wb-ink-75); }
.wb-meter li .wb-icon { width: 13px; height: 13px; color: var(--wb-ink-45); }

.wb-wallet { padding: 14px 16px; border-radius: 20px; }
.wb-wallet__head { display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: var(--wb-ink-60); }
.wb-wallet__value { margin: 6px 0 0; font-size: 24px; font-weight: 600; color: var(--wb-ink); font-variant-numeric: tabular-nums; }
.wb-wallet__row { display: flex; gap: 14px; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(var(--wb-ink-rgb), .12); }
.wb-wallet__row div { flex: 1; }
.wb-wallet__row i { display: block; font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-wallet__row b { font-size: 12.5px; color: var(--wb-ink); font-weight: 600; }

.wb-profile__main { display: flex; flex-direction: column; gap: 10px; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding-right: 4px; scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .26) transparent; }

/* ---------- 个人资料：教育 / 工作 / 个人经历 ---------- */
.wb-profilehint {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 13px;
  border-radius: 12px;
  background: rgba(127, 216, 195, .12);
  color: #b6f0e2;
  font-size: 11.5px;
  line-height: 1.6;
}
.wb-profilehint .wb-icon { width: 15px; height: 15px; flex: none; }
.wb-profilehint b { color: var(--wb-ink); font-weight: 500; }

.wb-biolist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.wb-bio { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-bio__top { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.wb-bio__top b { font-size: 12.5px; font-weight: 500; color: var(--wb-ink); }
.wb-bio__meta { font-size: 11px; color: var(--wb-ink-45); }
.wb-bio__note { margin: 0; font-size: 11.5px; line-height: 1.7; color: var(--wb-ink-75); }
.wb-bio__acts { margin-left: auto; display: flex; gap: 4px; opacity: 0; transition: opacity .18s var(--wb-ease); }
.wb-bio:hover .wb-bio__acts { opacity: 1; }
.wb-bio__act { width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 7px; background: transparent; color: var(--wb-ink-45); font: inherit; font-size: 14px; line-height: 1; cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-bio__act:hover { background: rgba(var(--wb-ink-rgb), .16); color: var(--wb-ink); }
.wb-bio__act .wb-icon { width: 13px; height: 13px; }
.wb-bio--empty { font-size: 11.5px; color: var(--wb-ink-45); background: rgba(var(--wb-ink-rgb), .04); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .1); }
.wb-bio--new { background: rgba(var(--wb-ink-rgb), .05); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .14); }
.wb-bioform { display: flex; flex-direction: column; gap: 9px; width: 100%; }
.wb-bioform__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.wb-bioform__acts { display: flex; justify-content: flex-end; gap: 8px; }
.wb-profile__main::-webkit-scrollbar { width: 6px; }
.wb-profile__main::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .24); border-radius: 999px; }
.wb-profile__main::-webkit-scrollbar-track { background: transparent; }

.wb-panelblock { padding: 14px 16px; border-radius: 20px; display: flex; flex-direction: column; gap: 8px; flex: none; }
.wb-panelblock__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.wb-panelblock__head h3 { display: flex; align-items: center; gap: 7px; margin: 0; font-size: 13.5px; font-weight: 500; color: var(--wb-ink); }
.wb-panelblock__head h3 .wb-icon { width: 15px; height: 15px; color: var(--wb-ink-60); }
.wb-panelblock__note { margin: 0; font-size: 11px; color: var(--wb-ink-45); }
.wb-panelblock--danger { background: linear-gradient(150deg, rgba(255, 127, 109, .16), rgba(255, 127, 109, .07)); }

.wb-kv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.wb-kv--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.wb-switch { position: relative; display: inline-flex; align-items: center; width: 38px; height: 22px; flex: none; }
.wb-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.wb-switch span { position: absolute; inset: 0; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .18); transition: background-color .2s var(--wb-ease); }
.wb-switch span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .2s var(--wb-ease); }
.wb-switch input:checked + span { background: #5fc9b4; }
.wb-switch input:checked + span::after { transform: translateX(16px); }
.wb-switch input:focus-visible + span { outline: 2px solid rgba(var(--wb-ink-rgb), .8); outline-offset: 2px; }

.wb-devices { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.wb-devices li { display: flex; align-items: center; gap: 9px; padding: 7px 10px; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .06); font-size: 11.5px; color: var(--wb-ink-75); }
.wb-devices li .wb-icon { width: 15px; height: 15px; color: var(--wb-ink-60); flex: none; }
.wb-devices li b { color: var(--wb-ink); font-weight: 500; }
.wb-devices li em { margin-left: auto; font-style: normal; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-devices li .wb-tag { margin-left: auto; }

/* ---------- 视图容器 ---------- */

.wb-content--full {
  display: flex;
  flex-direction: column;
  margin-top: 26px;
}

.wb-content--board { display: flex; flex-direction: column; }

.wb-boardtabs {
  display: flex;
  gap: 6px;
  padding: 4px;
  margin-bottom: 10px;
  align-self: flex-start;
  border-radius: 999px;
  background: rgba(var(--wb-ink-rgb), .1);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.wb-boardtabs button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  padding: 0 14px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--wb-ink-60);
  font: inherit;
  font-size: 12.5px;
  cursor: pointer;
  transition: background-color .2s var(--wb-ease), color .2s var(--wb-ease);
}

.wb-boardtabs button .wb-icon { width: 15px; height: 15px; }
.wb-boardtabs button:hover { color: var(--wb-ink-90); }
.wb-boardtabs button.is-active { background: rgba(var(--wb-ink-rgb), .92); color: #16241f; font-weight: 600; }

.wb-boardbody {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 255px;
  column-gap: 20px;
  align-items: stretch;
}

.wb-view { display: flex; flex-direction: column; flex: 1; min-height: 0; }

/* ---------- 通用控件 ---------- */

.wb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 36px;
  padding: 0 16px;
  white-space: nowrap;   /* 窄屏上「立即同步」这种两个字的按钮不该折成两行 */
  border: 0;
  border-radius: 999px;
  background: rgba(var(--wb-ink-rgb), .16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: var(--wb-ink);
  font: inherit;
  font-size: 13px;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .2s var(--wb-ease), transform .2s var(--wb-ease), color .2s var(--wb-ease);
}

.wb-btn .wb-icon { width: 16px; height: 16px; }
.wb-btn:hover { background: rgba(var(--wb-ink-rgb), .28); transform: translateY(-1px); }
.wb-btn:active { transform: translateY(0); }
.wb-btn--ghost { background: rgba(var(--wb-ink-rgb), .09); color: var(--wb-ink-90); }
.wb-btn--ghost:hover { background: rgba(var(--wb-ink-rgb), .2); color: var(--wb-ink); }
.wb-btn--primary { background: rgba(var(--wb-ink-rgb), .94); color: #14251f; font-weight: 600; }
.wb-btn--primary:hover { background: #fff; }
.wb-btn--sm { height: 28px; padding: 0 12px; font-size: 12px; }
.wb-btn--sm .wb-icon { width: 14px; height: 14px; }

.wb-seg {
  display: flex;
  gap: 3px;
  padding: 3px;
  border-radius: 999px;
  background: rgba(var(--wb-ink-rgb), .1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.wb-seg button {
  height: 26px;
  padding: 0 12px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--wb-ink-60);
  font: inherit;
  font-size: 12px;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .2s var(--wb-ease), color .2s var(--wb-ease);
}

.wb-seg button:hover { color: var(--wb-ink); }
.wb-seg button.is-active { background: rgba(var(--wb-ink-rgb), .92); color: #16241f; font-weight: 600; }

.wb-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(var(--wb-ink-rgb), .13);
  font-size: 11.5px;
  color: var(--wb-ink-90);
}

.wb-tag .wb-icon { width: 12px; height: 12px; }
.wb-tag--ok { background: rgba(127, 216, 195, .2); color: #b6f0e2; }
.wb-tag--no { background: rgba(255, 127, 109, .18); color: #ffbdb2; }
.wb-tag--wait { background: rgba(242, 185, 104, .2); color: #ffd79a; }
.wb-tag--gift { background: rgba(255, 196, 120, .22); color: #ffd9a0; }

.wb-chiprow { display: flex; flex-wrap: wrap; gap: 6px; }
.wb-note { margin: 2px 0 0; font-size: 11.5px; line-height: 1.6; color: var(--wb-ink-45); }
.wb-empty { padding: 40px 0; text-align: center; color: var(--wb-ink-45); font-size: 13px; }

.wb-toast {
  position: absolute;
  left: 50%;
  bottom: 22px;
  z-index: 30;
  max-width: 70%;
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(10, 20, 20, .88);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 14px 34px rgba(2, 10, 10, .4), inset 0 1px 0 rgba(var(--wb-ink-rgb), .18);
  color: var(--wb-ink);
  font-size: 12.5px;
  opacity: 0;
  transform: translate(-50%, 12px);
  pointer-events: none;
  transition: opacity .24s var(--wb-ease), transform .24s var(--wb-ease);
}

.wb-toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* ---------- 视图头 ---------- */

.wb-viewhead {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}

.wb-viewhead__left { display: flex; align-items: center; gap: 14px; }
.wb-viewhead__title { margin: 0; font-size: 24px; font-weight: 500; letter-spacing: -.01em; color: var(--wb-ink); }
.wb-viewhead__sub { margin: 4px 0 0; font-size: 12.5px; color: var(--wb-ink-60); }
.wb-viewhead__tools { display: flex; align-items: center; gap: 8px; }

/* ---------- 虚拟办公室 ---------- */

/* 正面剖面版：房间铺满整块，顶部条 / 右侧栏 / 机位条浮在上面 */
.wb-office {
  --of-side: 252px;
  position: relative;
  flex: 1;
  min-height: 0;
  border-radius: 26px;
  overflow: hidden;
  background: radial-gradient(120% 92% at 50% 8%, #16333c, #0a151a 62%, #070f13);
  box-shadow: 0 22px 50px rgba(3, 12, 12, .34), inset 0 0 0 1px rgba(var(--wb-ink-rgb), .1);
}
.wb-office__scene { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.office-scene { transform-origin: 0 0; transition: transform .7s cubic-bezier(.22, .61, .36, 1); }
.office-desk { cursor: pointer; transition: filter .2s var(--wb-ease), opacity .3s var(--wb-ease); }
.office-desk.is-dim { opacity: .26; }
.office-desk:hover { filter: brightness(1.06) drop-shadow(0 0 12px rgba(140, 230, 255, .26)); }
.office-scene.is-live .of-seatperson { display: none; }
.office-scene.is-paused .of-actor { display: none; }
.of-actor { cursor: pointer; transition: filter .2s var(--wb-ease); }
.of-actor:hover { filter: brightness(1.12) drop-shadow(0 0 10px rgba(var(--wb-ink-rgb), .16)); }
.of-bub { pointer-events: none; }
/* 悬停工位浮出的配置卡：用 HTML 浮层画（永远在最上层，不会被旁边的桌子压住） */
.wb-office__tip {
  position: absolute; z-index: 6; width: 236px; pointer-events: none;
  padding: 10px 12px; border-radius: 12px; border: 1px solid rgba(140, 220, 240, .34);
  background: linear-gradient(180deg, rgba(9, 24, 33, .96), rgba(6, 16, 23, .94));
  box-shadow: 0 18px 40px rgba(0, 6, 12, .55);
  opacity: 0; transform: translateY(4px); transition: opacity .18s var(--wb-ease), transform .18s var(--wb-ease);
}
.wb-office__tip.is-on { opacity: 1; transform: translateY(0); }
.wb-office__tip h4 { margin: 0 0 7px; font-size: 12.5px; font-weight: 500; color: #eaf7fb; display: flex; align-items: center; gap: 6px; }
.wb-office__tip h4 i { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.wb-office__tip dl { margin: 0; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 2px 8px; }
.wb-office__tip dt { font-size: 10.5px; color: rgba(150, 190, 205, .9); }
.wb-office__tip dd { margin: 0; font-size: 11px; color: rgba(222, 240, 247, .92); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- 顶部条 ---------- */
.wb-office__top {
  position: absolute;
  left: 12px;
  top: 12px;
  right: calc(var(--of-side) + 24px);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 18px;
  padding: 10px 14px;
  border-radius: 18px;
}
.wb-office__brand { display: flex; align-items: center; flex-wrap: wrap; gap: 3px 9px; max-width: 330px; }
.wb-office__badge {
  display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px; border-radius: 999px;
  background: rgba(127, 216, 195, .16); color: #9ff0d8; font-size: 11px; letter-spacing: .04em;
}
.wb-office__badge .wb-icon { width: 12px; height: 12px; }
.wb-office__title { margin: 0; font-size: 17px; font-weight: 500; letter-spacing: -.01em; color: var(--wb-ink); }
.wb-office__sub { margin: 0; flex: 1 0 100%; font-size: 11.5px; color: var(--wb-ink-60); }
.wb-office__stats {
  list-style: none; display: flex; align-items: center; gap: 13px; margin: 0; padding: 0;
  font-size: 12px; color: var(--wb-ink-75);
}
.wb-office__stats li { display: flex; align-items: center; gap: 5px; }
.wb-office__stats i { width: 6px; height: 6px; border-radius: 50%; flex: none; }
.wb-office__stats b { color: var(--wb-ink); font-weight: 600; }
.wb-office__projf { display: flex; align-items: center; gap: 8px; }
.wb-office__projf-k { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: var(--wb-ink-60); white-space: nowrap; }
.wb-office__projf-k .wb-icon { width: 13px; height: 13px; }
.wb-office__projf-tip { margin: 0; font-size: 11.5px; color: var(--wb-ink-45); white-space: nowrap; }
.wb-office__topacts { display: flex; align-items: center; gap: 8px; margin-left: auto; }

.wb-office__live { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: var(--wb-ink-60); }
.wb-office__live i, .wb-office__livedot { width: 6px; height: 6px; border-radius: 50%; background: rgba(var(--wb-ink-rgb), .35); flex: none; }
.wb-office__live.is-on .wb-office__livedot, .wb-office__live i { background: #7fd8c3; box-shadow: 0 0 8px #7fd8c3; animation: wbPulse 2s infinite; }
.wb-officenow { font-size: 11px; color: var(--wb-ink-75); max-width: 210px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.wb-office__act {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 11px; border: 0; border-radius: 999px;
  background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink-75); font: inherit; font-size: 12px; cursor: pointer;
}
.wb-office__act .wb-icon { width: 13px; height: 13px; }
.wb-office__act:hover { background: rgba(var(--wb-ink-rgb), .18); color: var(--wb-ink); }
.wb-office__acts { display: flex; gap: 7px; margin-top: 10px; flex-wrap: wrap; }

/* ---------- 右侧栏：员工动态 / 员工档案 ---------- */
.wb-office__side {
  position: absolute; right: 12px; top: 12px; bottom: 12px; width: var(--of-side);
  display: flex; flex-direction: column; padding: 14px 12px 12px; border-radius: 20px; min-height: 0;
}
.wb-office__side-head { display: flex; align-items: center; gap: 8px; padding-bottom: 9px; border-bottom: 1px solid rgba(var(--wb-ink-rgb), .12); }
.wb-office__side-head > span:first-child { flex: 1; font-size: 13px; color: var(--wb-ink); }
.wb-office__collapse {
  width: 24px; height: 24px; display: grid; place-items: center; border: 0; border-radius: 8px;
  background: rgba(var(--wb-ink-rgb), .12); color: var(--wb-ink-75); cursor: pointer;
}
.wb-office__collapse:hover { background: rgba(var(--wb-ink-rgb), .24); color: var(--wb-ink); }
.wb-office__collapse .wb-icon { width: 15px; height: 15px; }
.wb-office__side-vlabel { display: none; font-size: 11px; color: var(--wb-ink-60); }
.wb-office__side.is-collapsed { width: 47px; padding: 12px 8px; }
.wb-office__side.is-collapsed .wb-office__side-head > span, .wb-office__side.is-collapsed .wb-office__feed,
.wb-office__side.is-collapsed .wb-office__prof { display: none; }
.wb-office__side.is-collapsed .wb-office__side-head { justify-content: center; border-bottom: 0; padding-bottom: 0; }
.wb-office__side.is-collapsed .wb-office__collapse { transform: rotate(180deg); }
.wb-office__side.is-collapsed .wb-office__side-vlabel { display: flex; }

.wb-office__feed { list-style: none; margin: 8px 0 0; padding: 0; flex: 1; min-height: 0; overflow-y: auto; }
.wb-office__feed li + li { margin-top: 3px; }
.wb-office__feed button {
  width: 100%; display: flex; align-items: center; gap: 8px; padding: 8px 9px; border: 0; border-radius: 12px;
  background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer;
}
.wb-office__feed button:hover { background: rgba(var(--wb-ink-rgb), .12); }
.wb-office__feed-main { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.wb-office__feed-main b { font-size: 12.5px; color: var(--wb-ink); font-weight: 500; display: flex; align-items: baseline; gap: 6px; min-width: 0; }
.wb-office__feed-act { font-size: 10.5px; font-style: normal; color: var(--wb-ink-45); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-office__feed-main i { font-size: 11px; font-style: normal; color: var(--wb-ink-60); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-office__feed-st { font-size: 11px; white-space: nowrap; }

.wb-office__prof { margin-top: 10px; display: flex; flex-direction: column; gap: 10px; flex: 1; min-height: 0; overflow-y: auto; }
.wb-office__prof-head { display: flex; align-items: center; gap: 9px; }
.wb-office__prof-id { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.wb-office__prof-id b { font-size: 14px; color: var(--wb-ink); }
.wb-office__prof-id i { font-size: 11px; font-style: normal; color: var(--wb-ink-60); }
.wb-office__prof-head em { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-style: normal; }
.wb-office__prof-head em i { width: 6px; height: 6px; border-radius: 50%; }
.wb-office__prof-task { margin: 0; font-size: 12px; line-height: 1.5; color: var(--wb-ink-75); }
.wb-office__cfg { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.wb-office__cfg li { display: flex; flex-direction: column; gap: 2px; padding: 7px 9px; border-radius: 11px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-office__cfg span { font-size: 10.5px; color: var(--wb-ink-45); }
.wb-office__cfg b { font-size: 12px; font-weight: 500; color: #eaf6fa; }
.wb-office__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.wb-office__chips em { padding: 3px 8px; border-radius: 999px; background: rgba(127, 216, 195, .16); color: #a9f0dc; font-size: 11px; font-style: normal; }

/* ---------- 机位 + 装修 ---------- */
.wb-office__cameras {
  position: absolute; left: 12px; bottom: 12px; display: flex; align-items: center; gap: 10px;
  padding: 8px 12px; border-radius: 16px;
}
.wb-office__cameras-label { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: var(--wb-ink-60); }
.wb-office__cameras-label .wb-icon { width: 13px; height: 13px; }
.wb-office__split { width: 1px; height: 18px; background: rgba(var(--wb-ink-rgb), .16); }
.wb-office__skinbtn {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 0; border-radius: 999px;
  background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink-75); font: inherit; font-size: 12px; cursor: pointer;
}
.wb-office__skinbtn:hover { background: rgba(var(--wb-ink-rgb), .18); color: var(--wb-ink); }
.wb-office__skinbtn .wb-icon { width: 13px; height: 13px; }
.wb-office__skins {
  position: absolute; left: 0; bottom: 46px; width: 258px; padding: 10px; border-radius: 16px;
  background: rgba(8, 18, 22, .95); box-shadow: 0 18px 40px rgba(3, 12, 12, .4), inset 0 0 0 1px rgba(var(--wb-ink-rgb), .12);
}
.wb-office__skins-head { font-size: 11px; color: var(--wb-ink-60); padding: 0 2px 8px; }
.wb-office__skins ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.wb-office__skins button {
  width: 100%; display: flex; align-items: center; gap: 9px; padding: 7px 8px; border: 0; border-radius: 11px;
  background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer;
}
.wb-office__skins button:hover { background: rgba(var(--wb-ink-rgb), .12); }
.wb-office__skins button.is-active { background: rgba(var(--wb-ink-rgb), .16); }

.wb-skin-swatch {
  width: 26px; height: 18px; flex: none; border-radius: 7px;
  background: linear-gradient(135deg, var(--a, #223234) 0 55%, var(--b, #26393a) 55% 100%);
  box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .18);
}
.wb-skin-text { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.wb-skin-text b { font-size: 12px; font-weight: 500; color: var(--wb-ink); }
.wb-skin-text i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-skin-check .wb-icon { width: 13px; height: 13px; color: #7fd8c3; }

/* 明亮风格（北欧白昼）下，浮层换成深色玻璃，保证文字可读 */
.wb-office.is-light .wb-glasscard {
  background: linear-gradient(150deg, rgba(16, 28, 30, .84), rgba(16, 28, 30, .7));
  box-shadow: 0 18px 40px rgba(30, 44, 44, .22), inset 0 1px 0 rgba(var(--wb-ink-rgb), .16);
}
.wb-office.is-light .wb-office__skins { background: rgba(var(--wb-sheet-rgb), .94); }

/* ---------- 我的团队 ---------- */

.wb-teamgrid {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.wb-agentcard {
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: 15px 16px;
  border: 0;
  border-radius: 22px;
  font: inherit;
  text-align: left;
  color: inherit;
  cursor: pointer;
}

.wb-agentcard:hover { transform: translateY(-2px); box-shadow: var(--wb-shadow-lift); }
.wb-agentcard__top { display: flex; align-items: center; gap: 9px; }

.wb-agentcard__id { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.wb-agentcard__id b { font-size: 14px; font-weight: 600; color: var(--wb-ink); }
.wb-agentcard__id i { font-size: 11px; font-style: normal; color: var(--wb-ink-60); }
.wb-agentcard__state { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; flex: none; }
.wb-agentcard__state i { width: 6px; height: 6px; border-radius: 50%; }

.wb-avatar-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  flex: none;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 28%, rgba(var(--wb-ink-rgb), .5), var(--c, #7fd8c3));
  color: #10201d;
  font-size: 15px;
  font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .35);
}

.wb-agentcard__task { font-size: 11.5px; color: var(--wb-ink-75); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.wb-progress { display: block; height: 4px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .14); overflow: hidden; }
.wb-progress i { display: block; height: 100%; border-radius: 999px; transition: width .4s var(--wb-ease); }

.wb-agentcard__mid { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-top: auto; }

.wb-miniradar { display: inline-flex; align-items: flex-end; gap: 3px; height: 32px; }
.wb-miniradar i { width: 6px; border-radius: 3px; background: linear-gradient(180deg, rgba(var(--wb-ink-rgb), .85), rgba(var(--wb-ink-rgb), .35)); }

.wb-agentcard__perf { display: flex; gap: 10px; text-align: right; }
.wb-agentcard__perf i { display: flex; flex-direction: column; font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-agentcard__perf b { font-size: 12px; color: var(--wb-ink); font-weight: 600; }

.wb-agentcard__tags { display: flex; flex-wrap: wrap; gap: 5px; }
.wb-agentcard__tags em { padding: 2px 8px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .1); font-size: 12.5px; font-style: normal; color: var(--wb-ink-75); }

.wb-agentcard--new {
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: rgba(var(--wb-ink-rgb), .06);
  border: 1px dashed rgba(var(--wb-ink-rgb), .26);
  box-shadow: none;
  color: var(--wb-ink-75);
  text-align: center;
}

.wb-agentcard--new:hover { background: rgba(var(--wb-ink-rgb), .12); }
.wb-agentcard__newicon { width: 26px; height: 26px; color: var(--wb-ink); }
.wb-agentcard--new b { font-size: 13.5px; color: var(--wb-ink); }
.wb-agentcard--new i { font-size: 11px; font-style: normal; max-width: 160px; }

/* ---------- 智能体详情 ---------- */

.wb-agentview { gap: 0; }

.wb-agentview__body {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 244px minmax(0, 1fr);
  gap: 14px;
}

.wb-agentview__side { display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: 10px; min-height: 0; }

.wb-profile { padding: 12px 14px; border-radius: 20px; text-align: center; }

.wb-avatar-lg {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 28%, rgba(var(--wb-ink-rgb), .55), var(--c, #7fd8c3));
  color: #10201d;
  font-size: 18px;
  font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .4), 0 8px 20px rgba(4, 14, 16, .25);
}

.wb-profile h3 { margin: 6px 0 1px; font-size: 14px; font-weight: 600; }
.wb-profile p { margin: 0; font-size: 11.5px; color: var(--wb-ink-60); }
.wb-profile__state { display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; font-size: 11px; }
.wb-profile__state i { width: 6px; height: 6px; border-radius: 50%; }

.wb-profile__perf {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
  margin: 9px 0 0;
  padding-top: 8px;
  border-top: 1px solid rgba(var(--wb-ink-rgb), .12);
}

.wb-profile__perf dt { font-size: 12px; color: var(--wb-ink-45); }
.wb-profile__perf dd { margin: 2px 0 0; font-size: 11.5px; font-weight: 600; color: var(--wb-ink); font-variant-numeric: tabular-nums; }

.wb-radarcard, .wb-vercard { padding: 12px 14px; border-radius: 20px; }
.wb-radarcard__head { display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: var(--wb-ink); }
.wb-radarcard__head em { font-size: 12.5px; font-style: normal; color: var(--wb-ink-45); }
.wb-radar { display: block; width: 100%; height: 132px; margin: 2px auto 0; }

.wb-verlist { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 5px; overflow: hidden; }
.wb-verlist li { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 5px; align-items: baseline; font-size: 12px; color: var(--wb-ink-60); }
.wb-verlist b { color: var(--wb-ink); font-size: 11px; }
.wb-verlist span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-verlist i { font-style: normal; color: var(--wb-ink-45); }

.wb-agentview__main { display: flex; flex-direction: column; gap: 10px; min-height: 0; }

.wb-dimtabs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }

.wb-dimtabs button {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 8px 4px 7px;
  border: 0;
  border-radius: 16px;
  background: rgba(var(--wb-ink-rgb), .1);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: var(--wb-ink-60);
  font: inherit;
  cursor: pointer;
  transition: background-color .2s var(--wb-ease), color .2s var(--wb-ease), transform .2s var(--wb-ease);
}

.wb-dimtabs button .wb-icon { width: 17px; height: 17px; }
.wb-dimtabs button b { font-size: 12px; font-weight: 500; }
.wb-dimtabs button i { font-size: 12px; font-style: normal; opacity: .7; }
.wb-dimtabs button:hover { background: rgba(var(--wb-ink-rgb), .2); color: var(--wb-ink); }
.wb-dimtabs button.is-active { background: rgba(var(--wb-ink-rgb), .92); color: #16241f; }
.wb-dimtabs button.is-active i { opacity: .6; }

.wb-dimpanel {
  flex: 1;
  min-height: 0;
  padding: 14px 16px;
  border-radius: 22px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(var(--wb-ink-rgb), .28) transparent;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.wb-dimpanel::-webkit-scrollbar { width: 6px; }
.wb-dimpanel::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .26); border-radius: 999px; }
.wb-dimpanel::-webkit-scrollbar-track { background: transparent; }

.wb-dimpanel__head { display: flex; align-items: baseline; justify-content: space-between; }
.wb-dimpanel__head h3 { margin: 0; font-size: 13.5px; font-weight: 500; color: var(--wb-ink); }
.wb-dimpanel__score { font-size: 11px; color: var(--wb-ink-60); }
.wb-dimpanel__score b { color: var(--wb-ink); font-size: 13px; }

.wb-field {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 12px;
  border-radius: 14px;
  background: rgba(var(--wb-ink-rgb), .07);
}

.wb-field--col { flex-direction: column; align-items: flex-start; gap: 7px; }
.wb-field.is-locked { background: rgba(var(--wb-ink-rgb), .04); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .08); }
.wb-field__line { display: flex; align-items: center; gap: 8px; width: 100%; }
.wb-field__masked { margin: 0; font-size: 11px; line-height: 1.5; color: var(--wb-ink-45); font-style: italic; }

.wb-field__src {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 8px;
  padding: 1px 8px;
  border-radius: 999px;
  background: rgba(var(--wb-ink-rgb), .1);
  font-size: 12px;
  white-space: nowrap;
  color: var(--wb-ink-45);
  vertical-align: middle;
}

.wb-field__src .wb-icon { width: 11px; height: 11px; }
.wb-field__src--over { background: rgba(127, 216, 195, .18); color: #a9efdd; }
.wb-field__src--lock { background: rgba(var(--wb-ink-rgb), .07); color: var(--wb-ink-45); }

.wb-fieldfoot { margin: 0; padding-top: 6px; font-size: 12px; line-height: 1.5; color: var(--wb-ink-45); border-top: 1px solid rgba(var(--wb-ink-rgb), .08); }

.wb-srcline { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 10px; padding-top: 9px; border-top: 1px solid rgba(var(--wb-ink-rgb), .12); }
.wb-srcline__k { font-size: 12px; color: var(--wb-ink-45); margin-right: 2px; }
.wb-srcline .wb-tag { font-size: 12px; padding: 2px 8px; }
.wb-tag--lock { background: rgba(var(--wb-ink-rgb), .08); color: var(--wb-ink-60); }
.wb-field__k { flex: none; width: 78px; font-size: 11.5px; color: var(--wb-ink-45); }
.wb-field--col .wb-field__k { width: auto; }
.wb-field__v { flex: 1; font-size: 12.5px; color: var(--wb-ink); min-width: 0; }
.wb-field__muted { font-size: 11px; color: var(--wb-ink-45); }

/* 可就地编辑的信息行（双击改备注 / 群名称） */
.wb-field--edit { cursor: text; transition: box-shadow .18s var(--wb-ease), background-color .18s var(--wb-ease); }
.wb-field--edit:hover { background: rgba(var(--wb-ink-rgb), .11); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .16); }
.wb-field--edit:hover .wb-field__v { color: var(--wb-ink); }
.wb-im__pen { flex: none; width: 24px; height: 24px; display: none; align-items: center; justify-content: center; border: 0; border-radius: 8px; background: transparent; color: var(--wb-ink-60); cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-im__pen .wb-icon { width: 13px; height: 13px; }
.wb-field--edit:hover .wb-im__pen { display: inline-flex; }
.wb-im__pen:hover { background: rgba(var(--wb-ink-rgb), .18); color: var(--wb-ink); }

.wb-fieldrow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }

/* ---------- 花名册：人事概览 + 名单表 ---------- */
/* ---------- 员工简历弹层 ---------- */
.wb-admin__ro { margin: 6px 0 0; font-size: 11px; color: #f2c46a; }
/* 只读视角（平台运营）：出厂设定的控件不可点，但列表切换与返回仍可用 */
.wb-adminview--readonly [data-act="admin-publish"],
.wb-adminview--readonly [data-act="admin-policy"],
.wb-adminview--readonly [data-act="admin-live"],
.wb-adminview--readonly [data-act="admin-settle"],
.wb-adminview--readonly [data-act="admin-salary"],
.wb-adminview--readonly [data-act="admin-trial"],
.wb-adminview--readonly [data-act="admin-trial-scope"],
.wb-adminview--readonly [data-act="admin-gift"] {
  pointer-events: none;
  opacity: .45;
}
.wb-modal__card--resume { width: min(880px, 94vw); max-height: 88vh; }
.wb-modal__sub { margin-left: 8px; font-size: 11px; color: var(--wb-ink-45); }
.wb-resume { display: grid; grid-template-columns: 268px minmax(0, 1fr); gap: 14px; overflow: auto; padding-right: 4px; }
.wb-resume__side { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 16px 14px; border-radius: 20px; background: rgba(var(--wb-ink-rgb), .06); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .07); }
.wb-resume__side h3 { margin: 8px 0 0; font-size: 16px; font-weight: 600; color: var(--wb-ink); }
.wb-resume__side > p { margin: 0 0 4px; font-size: 11.5px; color: var(--wb-ink-60); }
.wb-resume__facts { list-style: none; margin: 10px 0 0; padding: 10px 0 0; width: 100%; border-top: 1px solid rgba(var(--wb-ink-rgb), .1); display: flex; flex-direction: column; gap: 7px; }
.wb-resume__facts li { display: flex; align-items: flex-start; gap: 10px; font-size: 11.5px; }
.wb-resume__facts i { flex: none; width: 56px; font-style: normal; color: var(--wb-ink-45); }
.wb-resume__facts span { flex: 1; min-width: 0; color: var(--wb-ink); word-break: break-word; }
.wb-resume__main { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.wb-resume__block { padding: 13px 15px; border-radius: 18px; background: rgba(var(--wb-ink-rgb), .06); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .07); }
.wb-resume__block h4 { display: flex; align-items: center; gap: 7px; margin: 0 0 9px; font-size: 12.5px; font-weight: 500; color: var(--wb-ink); }
.wb-resume__block h4 .wb-icon { width: 15px; height: 15px; color: var(--wb-ink-60); }
.wb-resume__block .wb-radar { display: block; margin: 0 auto; max-width: 208px; }
.wb-resume__works { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.wb-resume__works li { display: flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--wb-ink-90); }
.wb-resume__works li .wb-icon { width: 13px; height: 13px; color: #a9efdd; flex: none; }
.wb-resume__works em { margin-left: auto; font-style: normal; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-resume__reviews { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.wb-resume__reviews li { display: flex; flex-direction: column; gap: 2px; padding-bottom: 9px; box-shadow: inset 0 -1px 0 rgba(var(--wb-ink-rgb), .07); }
.wb-resume__reviews li:last-child { padding-bottom: 0; box-shadow: none; }
.wb-resume__stars { font-size: 11px; color: #f2c46a; letter-spacing: 1px; }
.wb-resume__reviews b { font-size: 12px; font-weight: 500; color: var(--wb-ink); }
.wb-resume__reviews p { margin: 0; font-size: 11.5px; line-height: 1.6; color: var(--wb-ink-75); }
.wb-resume__pitch { margin: 0 0 8px; font-size: 11.5px; line-height: 1.7; color: var(--wb-ink-90); }

.wb-empstats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 14px 0 12px; flex: none; }
.wb-empstat { display: flex; flex-direction: column; gap: 3px; padding: 11px 14px; border-radius: 18px; background: rgba(var(--wb-ink-rgb), .06); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .07); }
.wb-empstat i { font-size: 12.5px; font-style: normal; color: var(--wb-ink-45); }
.wb-empstat b { font-size: 24px; font-weight: 600; color: var(--wb-ink); font-variant-numeric: tabular-nums; line-height: 1.15; }
.wb-empstat b em { margin-left: 2px; font-size: 11px; font-style: normal; font-weight: 400; color: var(--wb-ink-60); }
.wb-empstat span { font-size: 12.5px; color: var(--wb-ink-45); }

.wb-rosterbar { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; flex: none; }
.wb-rosterbar__count { font-size: 11.5px; color: var(--wb-ink-45); }
.wb-seg--right { margin-left: auto; }

.wb-rtwrap { flex: 1; min-height: 0; overflow: auto; border-radius: 20px; background: rgba(var(--wb-ink-rgb), .055); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .07); }
.wb-rt { width: 100%; border-collapse: collapse; }
.wb-rt th { position: sticky; top: 0; z-index: 2; padding: 10px 12px; text-align: left; font-size: 12.5px; font-weight: 500; color: var(--wb-ink-45); background: rgba(19, 31, 31, .92); white-space: nowrap; }
.wb-rt td { padding: 9px 12px; border-top: 1px solid rgba(var(--wb-ink-rgb), .07); font-size: 12px; color: var(--wb-ink-90); vertical-align: middle; }
.wb-rt tbody tr:hover td { background: rgba(var(--wb-ink-rgb), .05); }
.wb-rt__no { color: var(--wb-ink-60); font-variant-numeric: tabular-nums; white-space: nowrap; }
.wb-rt__who { display: flex; align-items: center; gap: 9px; }
.wb-rt__name { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.wb-rt__name b { font-size: 12.5px; font-weight: 500; color: var(--wb-ink); }
.wb-rt__name i { font-size: 12.5px; font-style: normal; color: var(--wb-ink-45); }
.wb-rt__work { display: inline-flex; align-items: center; gap: 6px; color: var(--wb-ink); white-space: nowrap; }
.wb-rt__work::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--c); flex: none; }
.wb-rt__task { display: block; margin-top: 3px; max-width: 220px; font-size: 12.5px; font-style: normal; color: var(--wb-ink-45); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-empstate { position: relative; display: inline-block; padding: 3px 10px 3px 18px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .08); color: var(--c); font-size: 11px; white-space: nowrap; }
.wb-empstate::before { content: ""; position: absolute; left: 7px; top: 50%; width: 6px; height: 6px; border-radius: 50%; background: var(--c); transform: translateY(-50%); }
.wb-rt__ops { text-align: right; white-space: nowrap; }
.wb-rt__ops .wb-btn { margin-left: 4px; height: 26px; padding: 0 10px; font-size: 11.5px; }
.wb-formfield.wb-formfield--inline { display: flex; flex-direction: row; align-items: center; gap: 8px; }
.wb-formfield.wb-formfield--inline > span { flex: none; white-space: nowrap; }
.wb-formfield.wb-formfield--inline .wb-input { width: 130px; }

.wb-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; width: 100%; }
.wb-list li { display: flex; align-items: flex-start; gap: 6px; font-size: 11.5px; line-height: 1.45; color: var(--wb-ink-90); }
.wb-list li .wb-icon { width: 13px; height: 13px; margin-top: 2px; flex: none; color: var(--wb-ink-60); }
.wb-list li b { color: var(--wb-ink); font-weight: 500; }
.wb-list--danger li .wb-icon { color: #ff9b8a; }
.wb-list--danger li { color: #ffd9d2; }

.wb-skillrow { padding: 7px 12px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .07); }
.wb-skillrow__head { display: flex; align-items: center; gap: 8px; }
.wb-skillrow__head .wb-icon { width: 15px; height: 15px; color: #b8a9f2; }
.wb-skillrow__head b { font-size: 12.5px; color: var(--wb-ink); }
.wb-skillrow__head em { font-size: 12.5px; font-style: normal; color: var(--wb-ink-45); }
.wb-skillrow__stat { margin-left: auto; font-size: 12.5px; color: var(--wb-ink-60); }
.wb-skillrow__stat b { color: var(--wb-ink); }
.wb-skillrow__params { margin: 4px 0 0; font-size: 11px; color: var(--wb-ink-75); }

.wb-refs { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; width: 100%; }
.wb-refs li { flex: 1; display: flex; flex-direction: column; gap: 4px; font-size: 12px; line-height: 1.3; color: var(--wb-ink-60); }
.wb-refs__thumb { display: block; height: 24px; border-radius: 8px; background: linear-gradient(135deg, rgba(var(--wb-ink-rgb), .28), rgba(var(--wb-ink-rgb), .08)); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .14); }

/* ---------- 审核与归因闭环 ---------- */

.wb-review { padding: 12px 16px 14px; border-radius: 22px; flex: none; }
.wb-review__head { display: flex; align-items: center; gap: 8px; }
.wb-review__head .wb-icon { width: 15px; height: 15px; color: var(--wb-ink-75); }
.wb-review__title { font-size: 12.5px; color: var(--wb-ink); flex: 1; }
.wb-review__body { margin: 8px 0 0; font-size: 11.5px; line-height: 1.6; color: var(--wb-ink-75); }
.wb-review__acts { display: flex; gap: 8px; margin-top: 10px; }

.wb-attr { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin-top: 10px; }

.wb-attr__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 8px 4px;
  border: 1px solid transparent;
  border-radius: 14px;
  background: rgba(var(--wb-ink-rgb), .08);
  color: var(--wb-ink-90);
  font: inherit;
  cursor: pointer;
  transition: background-color .2s var(--wb-ease), border-color .2s var(--wb-ease), transform .2s var(--wb-ease);
}

.wb-attr__item .wb-icon { width: 16px; height: 16px; }
.wb-attr__item b { font-size: 11.5px; font-weight: 500; }
.wb-attr__item i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-attr__item:hover { background: rgba(var(--wb-ink-rgb), .16); transform: translateY(-1px); }
.wb-attr__item.is-active { background: rgba(var(--wb-ink-rgb), .9); color: #16241f; border-color: var(--wb-ink); }
.wb-attr__item.is-active i { color: rgba(22, 36, 31, .6); }

.wb-suggest { margin-top: 10px; padding: 10px 12px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .08); }
.wb-suggest__tag { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: #b6f0e2; }
.wb-suggest__tag .wb-icon { width: 13px; height: 13px; }
.wb-suggest__text { margin: 6px 0 0; font-size: 12px; line-height: 1.6; color: var(--wb-ink); }
.wb-suggest__meta { margin: 5px 0 0; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-suggest--done { background: rgba(127, 216, 195, .14); }

/* ---------- 人才市场 ---------- */

.wb-marketview { position: relative; }

.wb-search {
  display: flex;
  align-items: center;
  gap: 7px;
  height: 32px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(var(--wb-ink-rgb), .1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.wb-search .wb-icon { width: 15px; height: 15px; color: var(--wb-ink-45); }
.wb-search input { width: 168px; border: 0; background: transparent; color: var(--wb-ink); font: inherit; font-size: 12.5px; outline: none; }
.wb-search input::placeholder { color: var(--wb-ink-45); }

/* v0.1.98 · BOSS直雇：三栏（名单 / 简历 / 侧栏）。
   宽屏三栏；1240px 以下侧栏折到简历下面铺一条；820px 以下竖着堆。 */
.wb-market3 {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 336px minmax(0, 1fr) 288px;
  gap: 12px;
}
.wb-market3__list { display: flex; flex-direction: column; padding: 10px; border-radius: 22px; min-height: 0; }
.wb-market3__detail { min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; padding-right: 2px; scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .24) transparent; }
.wb-market3__side { min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .24) transparent; }
.wb-market3__detail::-webkit-scrollbar, .wb-market3__side::-webkit-scrollbar { width: 6px; }
.wb-market3__detail::-webkit-scrollbar-thumb, .wb-market3__side::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .22); border-radius: 999px; }

.wb-market2__listhead { padding: 4px 8px 10px; font-size: 11.5px; color: var(--wb-ink-60); }
.wb-market2__listhead b { color: var(--wb-ink); }

.wb-talentlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; overflow-y: auto; min-height: 0; scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .24) transparent; }
.wb-talentlist::-webkit-scrollbar { width: 6px; }
.wb-talentlist::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .22); border-radius: 999px; }

.wb-talent {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  width: 100%;
  padding: 11px 12px;
  border: 1px solid transparent;
  border-radius: 16px;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color .18s var(--wb-ease), border-color .18s var(--wb-ease);
}

.wb-talent:hover { background: rgba(var(--wb-ink-rgb), .09); }
.wb-talent.is-selected { background: rgba(var(--wb-ink-rgb), .14); border-color: rgba(var(--wb-ink-rgb), .28); }

.wb-pub {
  display: inline-flex; align-items: center; gap: 6px; flex: none;
  height: 26px; padding: 0 10px; border: 0; border-radius: 8px; cursor: pointer;
  font-size: 11px; font-family: inherit;
  transition: background-color .16s var(--wb-ease), color .16s var(--wb-ease);
}
.wb-pub svg { width: 13px; height: 13px; }
.wb-pub--go { background: rgba(var(--wb-ink-rgb), .92); color: #14251f; font-weight: 600; }
.wb-pub--go:hover { background: #fff; }
.wb-pub--idle { background: rgba(var(--wb-ink-rgb), .08); color: var(--wb-ink-45); }
.wb-pub--idle:hover { background: rgba(var(--wb-ink-rgb), .13); color: var(--wb-ink-75); }
.wb-pub--ro { background: rgba(var(--wb-ink-rgb), .06); color: var(--wb-ink-45); }
.wb-pub__dot { width: 6px; height: 6px; border-radius: 50%; background: #ffb2a4; flex: none; }
.wb-admin__pubtip {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 6px 12px; border-radius: 999px;
  background: rgba(var(--wb-ink-rgb), .07);
  font-size: 11px; color: var(--wb-ink-60);
}
.wb-admin__pubtip svg { width: 14px; height: 14px; color: #f2b968; }
/* 「出厂设定已存本地」的说明胶囊 + 旁边的「恢复出厂设定」按钮 */
.wb-admin__savetip {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 6px 12px; border-radius: 999px;
  background: rgba(127, 216, 195, .12);
  box-shadow: inset 0 0 0 1px rgba(127, 216, 195, .22);
  font-size: 11px; color: var(--wb-ink-75); white-space: nowrap;
}
.wb-admin__savetip svg { width: 14px; height: 14px; color: #7fd8c3; }
.wb-adminview .wb-viewhead__tools { flex-wrap: wrap; justify-content: flex-end; }

/* ==========================================================================
   管理后台 · Agent 配置：身份证卡片 / 技能配置 / 对话测试
   页签版式的壳在 admin.css 里（.admcfg / .admrow / .admacc / .admside），
   这里只留三段真正复用的组件：身份证卡、技能编辑器、对话测试台。
   ========================================================================== */

/* ---------- 身份证 ---------- */
.wb-idcard {
  border-radius: 18px; overflow: hidden;
  background: linear-gradient(150deg, #1d3b39 0%, #16302f 46%, #102425 100%);
  box-shadow: inset 0 0 0 1px rgba(127, 216, 195, .26), 0 16px 34px rgba(4, 14, 14, .4);
}
.wb-idcard__band {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 14px;
  background: linear-gradient(90deg, rgba(127, 216, 195, .24), rgba(127, 216, 195, .04));
  border-bottom: 1px solid rgba(127, 216, 195, .18);
  font-size: 11px;
}
.wb-idcard__brand { font-weight: 600; letter-spacing: .1em; color: #d7fff4; }
.wb-idcard__ttl { color: var(--wb-ink-60); }
.wb-idcard__sn { margin-left: auto; font-size: 12.5px; color: var(--wb-ink-45); letter-spacing: .08em; }
.wb-idcard__sn b { color: #b6f0e2; font-weight: 600; }
/* v0.1.93：身份卡搬去「概览」之后，卡身与内容排布在 admin.css 的 .admidc 里（那一版更紧），
   这里只留卡壳共用的一层（面板 / 机关带 / 脚下那行），照片区与字段网格已随旧版删掉。 */
.wb-idf { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.wb-idf--wide { grid-column: span 2; }
.wb-idf__k { display: flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-idf__arch svg { width: 11px; height: 11px; opacity: .7; }
.wb-idf__in, .wb-idf__ro {
  width: 100%; min-width: 0; padding: 6px 9px; border: 0; border-radius: 8px;
  background: rgba(var(--wb-ink-rgb), .08); color: var(--wb-ink); font-size: 11.5px; font-family: inherit;
  text-overflow: ellipsis;
}
.wb-idf__in { outline: 0; transition: background-color .16s var(--wb-ease), box-shadow .16s var(--wb-ease); }
.wb-idf__in:focus { background: rgba(var(--wb-ink-rgb), .16); box-shadow: inset 0 0 0 1px rgba(127, 216, 195, .5); }
.wb-idf__in--area {
  resize: vertical; min-height: 46px; max-height: 140px; line-height: 1.55;
  text-overflow: clip; white-space: pre-wrap;
}
.wb-idf__ro { display: block; color: var(--wb-ink-90); white-space: nowrap; overflow: hidden; }

.wb-idcard__foot {
  display: flex; align-items: center; gap: 16px;
  padding: 9px 14px; border-top: 1px solid rgba(var(--wb-ink-rgb), .07);
  background: rgba(0, 0, 0, .16);
  font-size: 12.5px; color: var(--wb-ink-45);
}
.wb-idcard__barcode {
  margin-left: auto; width: 108px; height: 18px; border-radius: 3px; opacity: .5;
  background: repeating-linear-gradient(90deg, #dff7f0 0 2px, transparent 2px 4px, #dff7f0 4px 5px, transparent 5px 9px);
}
/* ---------- 出厂值的就地编辑（判断原则 / 语气 / 触发规则 / 记忆） ---------- */
.wb-valed { display: flex; flex-direction: column; gap: 6px; width: 100%; min-width: 0; }
.wb-valed__row { display: flex; align-items: center; gap: 6px; }
.wb-valed__row .wb-input { flex: 1; min-width: 0; height: 30px; font-size: 11.5px; }
.wb-valed .wb-btn { align-self: flex-start; height: 26px; padding: 0 10px; font-size: 11px; }
.wb-valed__del {
  flex: none; width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center;
  border: 0; border-radius: 8px; cursor: pointer; background: rgba(var(--wb-ink-rgb), .08); color: var(--wb-ink-60);
}
.wb-valed__del:hover { background: rgba(255, 143, 122, .24); color: #ffcfc6; }
.wb-valed__del svg { width: 12px; height: 12px; }
.wb-valed__empty { margin: 0; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-valed--text .wb-input { height: 30px; font-size: 11.5px; }
/* 自我介绍这种长文本给多行（v0.1.92：身份证那一组补上编辑器之后，这一项用它） */
.wb-valed__area { height: auto; min-height: 58px; padding: 7px 9px; line-height: 1.6; resize: vertical; }

/* ---------- 技能配置 ---------- */
.wb-skilledit {
  margin-top: 4px; padding: 11px 12px; border-radius: 14px;
  background: rgba(var(--wb-ink-rgb), .05); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .06);
  display: flex; flex-direction: column; gap: 10px;
}
.wb-skilledit__head { display: flex; align-items: center; gap: 8px; }
.wb-skilledit__head svg { width: 15px; height: 15px; color: var(--wb-ink-60); }
.wb-skilledit__head b { font-size: 12px; font-weight: 500; color: var(--wb-ink); }
.wb-skilledit__head em { font-size: 12.5px; font-style: normal; color: var(--wb-ink-45); }
.wb-skilledit__head .wb-btn { margin-left: auto; }
.wb-skilledit__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.wb-skilledit__row {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 8px 10px; border-radius: 11px; background: rgba(var(--wb-ink-rgb), .06);
}
.wb-skilledit__row.is-off { opacity: .5; }
.wb-skilledit__no { flex: none; width: 16px; font-size: 12px; color: var(--wb-ink-45); }
.wb-skilledit__name {
  flex: 1 1 150px; min-width: 120px; height: 26px; padding: 0 9px;
  border: 0; border-radius: 8px; outline: 0;
  background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink); font-size: 11.5px; font-family: inherit;
}
.wb-skilledit__name:focus { background: rgba(var(--wb-ink-rgb), .17); box-shadow: inset 0 0 0 1px rgba(127, 216, 195, .45); }
.wb-skilledit__num { display: flex; align-items: center; gap: 4px; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-skilledit__num input {
  width: 54px; height: 26px; padding: 0 6px; border: 0; border-radius: 8px; outline: 0;
  background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink); font-size: 11px; font-family: inherit;
}
.wb-skilledit__on, .wb-skilledit__del {
  flex: none; width: 26px; height: 26px; border: 0; border-radius: 8px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink-60);
  transition: background-color .16s var(--wb-ease), color .16s var(--wb-ease);
}
.wb-skilledit__on svg, .wb-skilledit__del svg { width: 13px; height: 13px; }
.wb-skilledit__on.is-on { background: rgba(127, 216, 195, .26); color: #d7fff4; }
.wb-skilledit__del:hover { background: rgba(255, 143, 122, .24); color: #ffcfc6; }
.wb-skilledit__group { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.wb-skilledit__gt { flex: none; width: 84px; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-chiprow--pick { flex: 1; }
.wb-chip--pick {
  height: 26px; padding: 0 11px; border: 0; border-radius: 999px; cursor: pointer;
  background: rgba(var(--wb-ink-rgb), .08); color: var(--wb-ink-60);
  font-size: 11px; font-family: inherit;
  transition: background-color .16s var(--wb-ease), color .16s var(--wb-ease);
}
.wb-chip--pick:hover { background: rgba(var(--wb-ink-rgb), .15); }
.wb-chip--pick.is-on { background: rgba(127, 216, 195, .24); color: #d7fff4; box-shadow: inset 0 0 0 1px rgba(127, 216, 195, .38); }
.wb-chip--pick[disabled] { cursor: default; opacity: .75; }

/* ---------- 对话测试 ---------- */
.wb-test {
  position: sticky; top: 0;
  display: flex; flex-direction: column; gap: 10px;
  padding: 13px 14px; border-radius: 20px;
  min-height: 420px; max-height: calc(100vh - 190px);
}
.wb-test__head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.wb-test__head svg { width: 15px; height: 15px; color: #b6f0e2; }
.wb-test__head b { font-size: 13px; color: var(--wb-ink); }
.wb-test__head em { font-size: 12.5px; font-style: normal; color: var(--wb-ink-45); }
.wb-test__log {
  flex: 1; min-height: 180px; overflow-y: auto;
  display: flex; flex-direction: column; gap: 10px;
  padding: 10px; border-radius: 14px; background: rgba(0, 0, 0, .2);
  scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .24) transparent;
}
.wb-test__log::-webkit-scrollbar { width: 6px; }
.wb-test__log::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .22); border-radius: 999px; }
.wb-test__empty { margin: auto; text-align: center; color: var(--wb-ink-45); font-size: 11px; line-height: 1.8; }
.wb-test__empty svg { width: 22px; height: 22px; color: #f2b968; margin-bottom: 6px; }
.wb-test__empty b { color: var(--wb-ink-75); }
.wb-test__msg { display: flex; gap: 8px; max-width: 100%; }
.wb-test__msg p { margin: 0; font-size: 11.5px; line-height: 1.75; white-space: pre-wrap; word-break: break-word; }
.wb-test__msg--me { justify-content: flex-end; }
.wb-test__msg--me p {
  padding: 7px 11px; border-radius: 12px 12px 3px 12px;
  background: rgba(var(--wb-ink-rgb), .9); color: #14251f;
}
.wb-test__msg--ai > div { min-width: 0; }
.wb-test__msg--ai p {
  padding: 8px 11px; border-radius: 12px 12px 12px 3px;
  background: rgba(var(--wb-ink-rgb), .08); color: var(--wb-ink-90);
}
.wb-avatar-sm {
  flex: none; width: 24px; height: 24px; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--c) 34%, transparent);
  color: var(--wb-ink); font-size: 11px;
}
.wb-test__refs { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.wb-test__ref {
  padding: 2px 7px; border-radius: 999px;
  background: rgba(127, 216, 195, .16); color: #b6f0e2; font-size: 12px;
}
.wb-test__typing { display: inline-flex; align-items: center; gap: 4px; color: var(--wb-ink-45); font-size: 11px; }
.wb-test__typing i {
  width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .5;
  animation: wbTestDot 1s infinite ease-in-out;
}
.wb-test__typing i:nth-child(2) { animation-delay: .18s; }
.wb-test__typing i:nth-child(3) { animation-delay: .36s; }
@keyframes wbTestDot { 0%, 100% { opacity: .25; transform: translateY(0); } 50% { opacity: .9; transform: translateY(-2px); } }
.wb-test__presets { display: flex; flex-wrap: wrap; gap: 6px; }
.wb-test__presets button {
  height: 26px; padding: 0 10px; border: 0; border-radius: 999px; cursor: pointer;
  background: rgba(var(--wb-ink-rgb), .09); color: var(--wb-ink-75);
  font-size: 12.5px; font-family: inherit;
  transition: background-color .16s var(--wb-ease);
}
.wb-test__presets button:hover { background: rgba(var(--wb-ink-rgb), .18); color: var(--wb-ink); }
.wb-test__input { display: flex; align-items: center; gap: 7px; }
.wb-test__input input {
  flex: 1; min-width: 0; height: 34px; padding: 0 11px; border: 0; border-radius: 10px; outline: 0;
  background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink); font-size: 11.5px; font-family: inherit;
}
.wb-test__input input:focus { background: rgba(var(--wb-ink-rgb), .17); box-shadow: inset 0 0 0 1px rgba(127, 216, 195, .45); }
.wb-test__input button {
  flex: none; height: 34px; padding: 0 14px; border: 0; border-radius: 10px; cursor: pointer;
  background: rgba(var(--wb-ink-rgb), .92); color: #14251f; font-size: 11.5px; font-weight: 600; font-family: inherit;
}
.wb-test__input button:hover { background: #fff; }
.wb-test__note { margin: 0; font-size: 12px; color: var(--wb-ink-45); }
.wb-profile__id { margin: -2px 0 4px; font-size: 12.5px; color: var(--wb-ink-60); }

.wb-talent__avatar {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: 50%;
  background: radial-gradient(circle at 34% 28%, rgba(var(--wb-ink-rgb), .5), var(--c, #7fd8c3));
  color: #10201d;
  font-size: 15px;
  font-weight: 600;
}

.wb-talent__online {
  position: absolute;
  right: -1px;
  bottom: -1px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #6fe0a8;
  box-shadow: 0 0 0 2px rgba(20, 32, 32, .9), 0 0 8px #6fe0a8;
}

.wb-talent__main { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.wb-talent__line1 { display: flex; align-items: baseline; gap: 7px; min-width: 0; }
.wb-talent__line1 b { font-size: 13.5px; color: var(--wb-ink); flex: none; white-space: nowrap; }
.wb-talent__line1 .wb-tag { flex: none; white-space: nowrap; }
.wb-talent__line1 em { font-size: 11.5px; font-style: normal; color: var(--wb-ink-75); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-talent__line2 { font-size: 11.5px; color: var(--wb-ink-45); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-talent__tags { display: flex; gap: 4px; margin-top: 2px; }
.wb-talent__tags em { padding: 1px 7px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .1); font-size: 11px; font-style: normal; white-space: nowrap; color: var(--wb-ink-60); }
.wb-talent__pay { flex: none; font-size: 12px; color: var(--wb-ink-90); text-align: right; max-width: 92px; line-height: 1.45; }
.wb-talent__pay em { display: block; margin-top: 2px; font-style: normal; font-size: 10.5px; color: var(--wb-ink-45); }
.wb-talent__lv {
  position: absolute; left: -3px; top: -3px;
  padding: 0 5px; border-radius: 999px;
  background: rgba(20, 32, 32, .92); color: #cfe9e2;
  font-size: 9.5px; font-style: normal; line-height: 14px; letter-spacing: .02em;
}
.wb-talent__foot { display: flex; align-items: center; gap: 6px; margin-top: 3px; }
.wb-talent__foot em { font-style: normal; font-size: 10.5px; color: var(--wb-ink-45); flex: none; }
.wb-talent__bar { flex: 1; height: 3px; min-width: 24px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .14); overflow: hidden; }
.wb-talent__bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #7fe3d0, #b6e08a); }

.wb-market2__detail { min-height: 0; display: flex; }

.wb-cand { flex: 1; min-height: 0; overflow-y: auto; padding: 16px 18px; border-radius: 22px; display: flex; flex-direction: column; gap: 12px; scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .24) transparent; }
.wb-cand::-webkit-scrollbar { width: 6px; }
.wb-cand::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .22); border-radius: 999px; }

.wb-cand__head { display: flex; align-items: center; gap: 13px; }
.wb-cand__head .wb-avatar-lg { width: 54px; height: 54px; font-size: 21px; }
.wb-cand__id { flex: 1; min-width: 0; }
.wb-cand__id h3 { display: flex; align-items: center; gap: 7px; margin: 0; font-size: 17px; font-weight: 600; }
.wb-cand__id p { margin: 4px 0 0; font-size: 11.5px; color: var(--wb-ink-60); }
.wb-cand__match { text-align: right; flex: none; }
.wb-cand__match b { display: block; font-size: 20px; color: #a9efdd; font-weight: 600; }
.wb-cand__match i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }

.wb-cand__pay { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 10px 13px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .07); }
.wb-cand__pay span { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--wb-ink-90); }
.wb-cand__pay .wb-icon { width: 14px; height: 14px; color: var(--wb-ink-60); }

.wb-cand__acts { display: flex; flex-wrap: wrap; gap: 8px; }

.wb-cand__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.wb-cand__stats > div { padding: 9px 11px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .07); }
.wb-cand__stats i { display: block; font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-cand__stats b { font-size: 13px; color: var(--wb-ink); font-weight: 600; }

.wb-cand__cols { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 12px; }
.wb-cand__col { display: flex; flex-direction: column; gap: 7px; }
.wb-cand__col h4 { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 12px; font-weight: 500; color: var(--wb-ink); }
.wb-cand__col h4 .wb-icon { width: 14px; height: 14px; color: var(--wb-ink-60); }
.wb-cand__col .wb-radar { height: 138px; margin: 0; }

.wb-cand__works ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.wb-cand__works li { display: flex; align-items: center; gap: 9px; padding: 7px 10px; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-cand__works li span:last-child { display: flex; flex-direction: column; min-width: 0; }
.wb-cand__works li b { font-size: 12px; font-weight: 500; color: var(--wb-ink); }
.wb-cand__works li i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-work__thumb { width: 34px; height: 26px; flex: none; border-radius: 7px; background: linear-gradient(135deg, rgba(var(--wb-ink-rgb), .3), rgba(var(--wb-ink-rgb), .08)); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .14); }

.wb-cand__reviews ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.wb-cand__reviews li { padding: 8px 11px; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-cand__reviews li b { font-size: 11px; color: var(--wb-ink); font-weight: 500; }
.wb-stars { margin-left: 7px; font-size: 12px; color: #f2b968; letter-spacing: 1px; }
.wb-cand__reviews li p { margin: 4px 0 0; font-size: 11px; line-height: 1.55; color: var(--wb-ink-75); }
.wb-cand__note { margin: 0; font-size: 12.5px; line-height: 1.6; color: var(--wb-ink-45); }

/* ---------- 对话面板（打招呼 / 查看简历 / 追问） ---------- */

.wb-chat {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 20;
  width: min(396px, 100%);
  height: 452px;
  display: flex;
  flex-direction: column;
  border-radius: 20px;
  background: rgba(var(--wb-sheet-rgb), .95);
  animation: wbMenuIn .2s var(--wb-ease);
}

.wb-chat__head { display: flex; align-items: center; gap: 9px; padding: 12px 12px 10px; border-bottom: 1px solid rgba(var(--wb-ink-rgb), .1); }
.wb-chat__id { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.wb-chat__id b { font-size: 12.5px; color: var(--wb-ink); }
.wb-chat__id i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-chat__close { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border: 0; border-radius: 8px; background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink-60); cursor: pointer; }
.wb-chat__close .wb-icon { width: 14px; height: 14px; transform: rotate(90deg); }
.wb-chat__close:hover { background: rgba(var(--wb-ink-rgb), .2); color: var(--wb-ink); }

.wb-chat__list { list-style: none; margin: 0; padding: 12px; flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .22) transparent; }
.wb-chat__list::-webkit-scrollbar { width: 6px; }
.wb-chat__list::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .2); border-radius: 999px; }
.wb-chat__msg { display: flex; }
.wb-chat__msg--me { justify-content: flex-end; }

.wb-chat__bubble { max-width: 82%; padding: 8px 12px; border-radius: 14px; font-size: 11.5px; line-height: 1.6; }
.wb-chat__msg--agent .wb-chat__bubble { background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink); border-top-left-radius: 5px; }
.wb-chat__msg--me .wb-chat__bubble { background: rgba(127, 216, 195, .22); color: #eafffa; border-top-right-radius: 5px; }

.wb-chat__resume { width: 100%; max-width: 100%; background: rgba(var(--wb-ink-rgb), .08); padding: 10px 12px; }
.wb-chat__resume-head { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--wb-ink); }
.wb-chat__resume-head .wb-icon { width: 14px; height: 14px; color: var(--wb-ink-60); }
.wb-chat__resume-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 10px; margin: 8px 0; }
.wb-chat__resume-body div { display: flex; flex-direction: column; }
.wb-chat__resume-body i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-chat__resume-body span { font-size: 11px; color: var(--wb-ink); }
.wb-chat__resume-bars { display: flex; margin-bottom: 9px; }

.wb-chat__works { display: flex; flex-direction: column; gap: 5px; width: 100%; max-width: 100%; background: rgba(var(--wb-ink-rgb), .08); }
.wb-chat__work { display: block; padding: 6px 9px; border-radius: 9px; background: rgba(var(--wb-ink-rgb), .07); font-size: 11px; color: var(--wb-ink-90); }

.wb-chat__quick { display: flex; flex-wrap: wrap; gap: 5px; padding: 0 12px 8px; }
.wb-chat__quick button { padding: 5px 10px; border: 1px solid rgba(var(--wb-ink-rgb), .18); border-radius: 999px; background: transparent; color: var(--wb-ink-75); font: inherit; font-size: 12.5px; cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-chat__quick button:hover { background: rgba(var(--wb-ink-rgb), .16); color: var(--wb-ink); }

.wb-chat__input { display: flex; align-items: center; gap: 8px; padding: 9px 12px 11px; border-top: 1px solid rgba(var(--wb-ink-rgb), .1); }
.wb-chat__input input { flex: 1; height: 30px; padding: 0 12px; border: 0; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink); font: inherit; font-size: 11.5px; outline: none; }
.wb-chat__input input::placeholder { color: var(--wb-ink-45); }

/* ---------- 录用确认 ---------- */

/* ---------- 管理后台：出厂设定 ---------- */

/* ---------- 项目管理 ---------- */

/* ---------- 消息中心（桌面聊天） ---------- */

.wb-artifact { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius: 13px; background: rgba(var(--wb-ink-rgb), .07); }
.wb-artifact__thumb { width: 38px; height: 30px; flex: none; border-radius: 8px; background: linear-gradient(135deg, rgba(var(--wb-ink-rgb), .3), rgba(var(--wb-ink-rgb), .08)); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .14); }
.wb-artifact__id { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.wb-artifact__id b { font-size: 12px; color: var(--wb-ink); font-weight: 500; }
.wb-artifact__id i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-artifact__id em { font-size: 12.5px; font-style: normal; color: var(--wb-ink-60); margin-top: 3px; }

.wb-timeline { list-style: none; margin: 0; padding: 0 0 0 6px; display: flex; flex-direction: column; gap: 9px; }
.wb-timeline li { display: grid; grid-template-columns: 10px 62px minmax(0, 1fr); align-items: baseline; gap: 8px; position: relative; }
.wb-timeline li:not(:last-child)::before { content: ""; position: absolute; left: 4px; top: 14px; bottom: -9px; width: 1px; background: rgba(var(--wb-ink-rgb), .14); }
.wb-timeline__dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(var(--wb-ink-rgb), .5); }
.wb-timeline b { font-size: 12.5px; color: var(--wb-ink-45); font-weight: 400; }
.wb-timeline span:last-child { font-size: 11.5px; color: var(--wb-ink-90); }

.wb-im { position: relative; }

/* 微聊里就地打开的「配置」（v0.1.95）：右半那一栏换成这位员工的六维配置页。
   微聊窗口通常不宽，所以窄栏里把左边那张名片 / 雷达收起来，只留要改的那些行；
   窗口拉宽（≥860px）再把它放回来。返回落在他的员工资料页上，不跳 App。 */
.wb-imcfg { display: flex; flex-direction: column; min-height: 0; overflow: hidden; container-type: inline-size; }
.wb-imcfg .wb-agentview__body { grid-template-columns: minmax(0, 1fr); }
.wb-imcfg .wb-agentview__side { display: none; }
.wb-imcfg .wb-agentview__main { min-height: 0; overflow: auto; }
.wb-imcfg .wb-viewhead { flex-wrap: wrap; align-items: center; row-gap: 10px; }
.wb-imcfg .wb-viewhead__tools { flex-wrap: wrap; }
@container (min-width: 860px) {
  .wb-imcfg .wb-agentview__body { grid-template-columns: 224px minmax(0, 1fr); }
  .wb-imcfg .wb-agentview__side { display: grid; }
}

/* 会话列表 + 对话区 = 一整块（中间只留一条分隔线）；资料 / 文件不再占栏，改成浮层 */
.wb-im__body {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 252px minmax(0, 1fr);
  border-radius: 22px;
  background: rgba(var(--wb-ink-rgb), .07);
  backdrop-filter: var(--wb-blur);
  -webkit-backdrop-filter: var(--wb-blur);
  box-shadow: var(--wb-shadow);
  overflow: hidden;
}
/* 在微聊自己的窗口里，这一块不再是一张浮起来的圆角卡：铺满四边、去掉外阴影 */
.dk-win[data-app="chat"] .wb-im__body { border-radius: 0; box-shadow: none; }

.wb-im__list { display: flex; flex-direction: column; min-height: 0; border-right: 1px solid rgba(var(--wb-ink-rgb), .1); overflow: hidden; }

.wb-im__listhead { display: flex; align-items: center; justify-content: space-between; padding: 11px 12px 2px; font-size: 11.5px; color: var(--wb-ink-45); }
.wb-im__new { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border: 0; border-radius: 8px; background: rgba(var(--wb-ink-rgb), .12); color: var(--wb-ink-75); cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-im__new:hover { background: rgba(var(--wb-ink-rgb), .24); color: var(--wb-ink); }
.wb-im__new .wb-icon { width: 14px; height: 14px; }

/* 群成员列表 */
.wb-memlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.wb-memlist li { display: flex; align-items: center; gap: 8px; padding: 5px 6px; border-radius: 11px; }
.wb-memlist li:hover { background: rgba(var(--wb-ink-rgb), .07); }
.wb-mem__id { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.wb-mem__id b { font-size: 11.5px; color: var(--wb-ink); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-mem__id i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-mem__btn { display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; border: 0; border-radius: 6px; background: transparent; color: var(--wb-ink-45); font: inherit; font-size: 12px; cursor: pointer; }
.wb-mem__btn:hover { background: rgba(var(--wb-ink-rgb), .16); color: var(--wb-ink); }
.wb-mem__btn .wb-icon { width: 12px; height: 12px; }

.wb-tag--src { background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink-75); font-size: 12px; padding: 1px 7px; }

/* 备注编辑 */
.wb-remarkedit { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; padding: 10px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .07); }
.wb-remarkedit .wb-formfield span { font-size: 12.5px; }
.wb-remarkedit .wb-input { height: 30px; }

/* 建群 / 加人 选择器 */
.wb-pickgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; max-height: 300px; overflow-y: auto; padding-right: 2px; }
.wb-pick { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid transparent; border-radius: 13px; background: rgba(var(--wb-ink-rgb), .06); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: background-color .18s var(--wb-ease), border-color .18s var(--wb-ease); }
.wb-pick:hover { background: rgba(var(--wb-ink-rgb), .12); }
.wb-pick.is-on { border-color: rgba(127, 216, 195, .6); background: rgba(127, 216, 195, .16); }
.wb-pick__id { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.wb-pick__id b { font-size: 11.5px; color: var(--wb-ink); font-weight: 500; }
.wb-pick__id i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-pick__tick .wb-icon { width: 14px; height: 14px; color: #7fd8c3; }
.wb-pickrow { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.wb-pickrow > span { font-size: 12.5px; color: var(--wb-ink-45); }
.wb-pickrow .wb-tag { cursor: pointer; }

/* @ 选择器 */
.wb-mention { position: absolute; left: 12px; bottom: calc(100% + 8px); z-index: 40; width: 240px; max-height: 240px; overflow-y: auto; padding: 8px; border-radius: 16px; background: rgba(var(--wb-sheet-rgb), .96); backdrop-filter: blur(20px); box-shadow: 0 18px 44px rgba(2, 10, 10, .5), inset 0 0 0 1px rgba(var(--wb-ink-rgb), .12); animation: wbMenuIn .16s var(--wb-ease); }
.wb-mention__head { padding: 4px 8px 8px; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-mention ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.wb-mention button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 6px 8px; border: 0; border-radius: 10px; background: transparent; color: var(--wb-ink); font: inherit; font-size: 11.5px; text-align: left; cursor: pointer; }
.wb-mention button:hover { background: rgba(var(--wb-ink-rgb), .14); }
.wb-mention button i { display: block; font-size: 12px; font-style: normal; color: var(--wb-ink-45); }

.wb-im__search { display: flex; align-items: center; gap: 7px; margin: 10px 10px 6px; padding: 0 11px; height: 30px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .1); }
.wb-im__search .wb-icon { width: 14px; height: 14px; color: var(--wb-ink-45); }
.wb-im__search input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--wb-ink); font: inherit; font-size: 12px; outline: none; }
.wb-im__search input::placeholder { color: var(--wb-ink-45); }

.wb-im__convs { list-style: none; margin: 0; padding: 4px 6px 8px; overflow-y: auto; min-height: 0; scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .22) transparent; }

.wb-im__tabs { display: flex; gap: 3px; margin: 8px 10px 4px; padding: 3px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .08); }
.wb-im__tabs button { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 5px; height: 26px; border: 0; border-radius: 999px; background: transparent; color: var(--wb-ink-60); font: inherit; font-size: 11.5px; cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-im__tabs button:hover { color: var(--wb-ink); }
.wb-im__tabs button.is-active { background: rgba(var(--wb-ink-rgb), .92); color: #16241f; font-weight: 600; }
.wb-im__tabs i { font-style: normal; font-size: 12px; opacity: .7; }
.wb-im__convs::-webkit-scrollbar { width: 6px; }
.wb-im__convs::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .2); border-radius: 999px; }

.wb-conv { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border: 0; border-radius: 14px; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: background-color .18s var(--wb-ease); }
.wb-conv:hover { background: rgba(var(--wb-ink-rgb), .1); }
.wb-conv.is-active { background: rgba(var(--wb-ink-rgb), .16); }

.wb-conv__av { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: none; border-radius: 12px; background: radial-gradient(circle at 34% 28%, rgba(var(--wb-ink-rgb), .5), var(--c, #7fd8c3)); color: #10201d; font-size: 15px; font-weight: 600; }
.wb-conv__av--sm { width: 32px; height: 32px; border-radius: 10px; font-size: 13px; }

/* 平台通知：小喇叭头像，暖色 + 微光，和员工/群聊区分开 */
.wb-conv__av--notice {
  background: linear-gradient(140deg, #ffd08a, #f0a44a);
  color: #3a2408;
  box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .35), 0 0 14px rgba(240, 164, 74, .35);
}

.wb-conv__av--notice .wb-icon { width: 21px; height: 21px; }
.wb-conv__av--notice.wb-conv__av--sm .wb-icon { width: 17px; height: 17px; }

/* 群聊九宫格头像 */
.wb-gav { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 0; background: rgba(120, 140, 145, .5); border-radius: 12px; }
.wb-gav.wb-conv__av--sm { border-radius: 10px; }
.wb-gav__row { display: flex; align-items: center; justify-content: center; gap: 1px; }
.wb-gav__c { display: flex; align-items: center; justify-content: center; border-radius: 3px; font-style: normal; font-weight: 700; color: #10201d; overflow: hidden; }
.wb-gav.wb-conv__av--sm .wb-gav__c { border-radius: 2px; }
.wb-gav .wb-conv__badge { top: -5px; right: -5px; }
.wb-gav__more { position: absolute; right: 1px; bottom: 1px; padding: 0 3px; border-radius: 5px; background: rgba(10, 20, 20, .82); color: var(--wb-ink); font-size: 8px; font-style: normal; font-weight: 600; }

.wb-conv__badge { position: absolute; top: -6px; right: -6px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: #c82a1c; color: var(--wb-ink); font-size: 11.5px; font-weight: 600; font-style: normal; line-height: 19px; text-align: center; box-shadow: 0 0 0 2px rgba(16, 28, 28, .9); }

.wb-conv__main { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.wb-conv__main b { font-size: 12.5px; color: var(--wb-ink); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-conv__main i { font-size: 12.5px; font-style: normal; color: var(--wb-ink-45); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-conv__meta { font-size: 12px; color: var(--wb-ink-45); flex: none; align-self: flex-start; }

.wb-im__thread { position: relative; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }

.wb-im__head { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid rgba(var(--wb-ink-rgb), .1); }
.wb-im__headav { flex: none; display: inline-flex; padding: 0; border: 0; border-radius: 11px; background: transparent; cursor: pointer; transition: transform .18s var(--wb-ease), box-shadow .18s var(--wb-ease); }
.wb-im__headav:hover { transform: translateY(-1px); box-shadow: 0 0 0 3px rgba(var(--wb-ink-rgb), .18); }
.wb-im__headid { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.wb-im__headtext { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.wb-im__headtext b { font-size: 13.5px; color: var(--wb-ink); font-weight: 500; }
.wb-im__headrow { display: flex; align-items: center; gap: 6px; min-width: 0; }
.wb-im__headtext b[data-title-edit] { cursor: text; border-radius: 4px; padding: 1px 3px; margin-left: -3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transition: background-color .18s var(--wb-ease); }
.wb-im__headid:hover .wb-im__headtext b[data-title-edit] { background: rgba(var(--wb-ink-rgb), .12); }
/* 统一的「双击可就地编辑」铅笔暗示：默认隐身，悬停那一块才浮出来 */
.wb-editpen { flex: none; width: 13px; height: 13px; color: var(--wb-ink-60); opacity: 0; transition: opacity .18s var(--wb-ease); }
.wb-editpen .wb-icon { width: 13px; height: 13px; }
.wb-im__headid:hover .wb-editpen,
.wb-field--edit:hover .wb-editpen,
.wb-im__personname:hover .wb-editpen { opacity: .85; }
.wb-im__titleinput { width: 220px; height: 26px; padding: 0 9px; border: 1px solid rgba(var(--wb-ink-rgb), .4); border-radius: 8px; background: rgba(var(--wb-ink-rgb), .12); color: var(--wb-ink); font: inherit; font-size: 13px; outline: none; }
.wb-im__titleinput::placeholder { color: var(--wb-ink-45); }
.wb-im__headhint { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-im__headtext i { font-size: 12.5px; font-style: normal; color: var(--wb-ink-45); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 聊天框右上角「…」菜单 */
.wb-im__more { flex: none; width: 32px; height: 28px; border: 0; border-radius: 9px; background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink-75); font: inherit; font-size: 15px; line-height: 1; letter-spacing: 1px; cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-im__more:hover, .wb-im__more[aria-expanded="true"] { background: rgba(var(--wb-ink-rgb), .24); color: var(--wb-ink); }

.wb-im__menu { position: absolute; top: 54px; right: 14px; z-index: 30; width: 236px; padding: 6px; border-radius: 16px; background: rgba(var(--wb-sheet-rgb), .96); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); box-shadow: 0 18px 44px rgba(2, 10, 10, .5), inset 0 0 0 1px rgba(var(--wb-ink-rgb), .12); animation: wbMenuIn .16s var(--wb-ease); }
.wb-im__menu button { display: flex; align-items: center; gap: 9px; width: 100%; padding: 8px 10px; border: 0; border-radius: 11px; background: transparent; color: var(--wb-ink-90); font: inherit; text-align: left; cursor: pointer; transition: background-color .18s var(--wb-ease); }
.wb-im__menu button:hover { background: rgba(var(--wb-ink-rgb), .14); }
.wb-im__menu button .wb-icon { width: 15px; height: 15px; color: var(--wb-ink-60); flex: none; }
.wb-im__menu button > span { display: flex; flex-direction: column; min-width: 0; }
.wb-im__menu button b { font-size: 12.5px; color: var(--wb-ink); font-weight: 500; }
.wb-im__menu button i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-im__menu button.is-danger { color: #ff9e90; }
.wb-im__menu button.is-danger .wb-icon, .wb-im__menu button.is-danger b { color: #ff9e90; }

.wb-im__msgs { list-style: none; margin: 0; padding: 16px 16px 10px; flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 14px; scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .22) transparent; }
.wb-im__msgs::-webkit-scrollbar { width: 6px; }
.wb-im__msgs::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .2); border-radius: 999px; }

.wb-msg { display: flex; gap: 9px; align-items: flex-start; }
.wb-msg--me { justify-content: flex-end; }
.wb-msg--sys { justify-content: center; }
.wb-msg--sys span { padding: 3px 12px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .08); color: var(--wb-ink-45); font-size: 12.5px; }

.wb-msg__av { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: none; border-radius: 9px; background: radial-gradient(circle at 34% 28%, rgba(var(--wb-ink-rgb), .45), var(--c, #7fd8c3)); color: #10201d; font-size: 12px; font-weight: 600; }
.wb-msg__av--btn { padding: 0; border: 0; font-family: inherit; cursor: pointer; transition: transform .18s var(--wb-ease), box-shadow .18s var(--wb-ease); }
.wb-msg__av--btn:hover { transform: translateY(-1px); box-shadow: 0 0 0 3px rgba(var(--wb-ink-rgb), .2); }
button.wb-avatar-sm { padding: 0; border: 0; font-family: inherit; cursor: pointer; transition: transform .18s var(--wb-ease), box-shadow .18s var(--wb-ease); }
button.wb-avatar-sm:hover { transform: translateY(-1px); box-shadow: 0 0 0 3px rgba(var(--wb-ink-rgb), .2); }
.wb-msg__body { display: flex; flex-direction: column; gap: 4px; max-width: 68%; }
.wb-msg--me .wb-msg__body { align-items: flex-end; }
.wb-msg__who { font-size: 12.5px; color: var(--wb-ink-45); }
.wb-msg__time { font-size: 12px; color: var(--wb-ink-45); }

.wb-iconbtn__badge { position: absolute; top: 5px; right: 5px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: #c82a1c; color: var(--wb-ink); font-size: 11.5px; font-weight: 600; line-height: 19px; text-align: center; box-shadow: 0 0 0 2px rgba(20, 32, 32, .55); }

.wb-bubble { padding: 9px 13px; border-radius: 14px; font-size: 12.5px; line-height: 1.6; background: rgba(var(--wb-ink-rgb), .12); color: var(--wb-ink); border-top-left-radius: 5px; word-break: break-word; }
.wb-msg--me .wb-bubble { background: linear-gradient(135deg, #63c9b2, #4aa895); color: #07201b; border-top-left-radius: 14px; border-top-right-radius: 5px; }

/* ---------- 微聊 · 引用 / 已读回执 / 正在输入 ---------- */
/* 消息行要能挂「已读」弹层 */
.wb-msg { position: relative; }
/* 气泡里被引用的那条：一行摘要，点一下跳回原消息 */
.wb-quote { display: flex; align-items: baseline; gap: 6px; margin: -1px 0 6px; padding: 5px 8px; border-radius: 8px;
  border-left: 2px solid rgba(var(--wb-ink-rgb), .5); background: rgba(0, 0, 0, .16); font-size: 11px; line-height: 1.45;
  color: rgba(var(--wb-ink-rgb), .78); cursor: pointer; transition: background-color .16s var(--wb-ease); }
.wb-quote:hover { background: rgba(0, 0, 0, .26); }
.wb-quote i { flex: none; font-style: normal; font-weight: 600; color: rgba(var(--wb-ink-rgb), .95); }
.wb-msg--me .wb-quote { border-left-color: rgba(7, 32, 27, .45); background: rgba(7, 32, 27, .14); color: rgba(7, 32, 27, .78); }
.wb-msg--me .wb-quote:hover { background: rgba(7, 32, 27, .22); }
.wb-msg--me .wb-quote i { color: #07201b; }
/* 气泡外那一行：时间 + 已读 + 引用（鼠标移上去才显形，平时保持干净） */
.wb-msg__meta { display: flex; align-items: center; gap: 7px; }
.wb-msg--me .wb-msg__meta { flex-direction: row-reverse; }
.wb-msg__act { display: inline-flex; align-items: center; gap: 3px; padding: 1px 6px; border: 0; border-radius: 999px;
  background: transparent; color: var(--wb-ink-45); font: inherit; font-size: 12px; line-height: 1.6; cursor: pointer;
  opacity: 0; transition: opacity .16s var(--wb-ease), background-color .16s var(--wb-ease), color .16s var(--wb-ease); }
.wb-msg:hover .wb-msg__act, .wb-msg__act:focus-visible { opacity: 1; }
.wb-msg__act:hover { background: rgba(var(--wb-ink-rgb), .14); color: var(--wb-ink); }
.wb-msg__act .wb-icon { width: 11px; height: 11px; }
/* 已读回执：一个小圆饼 —— 读的人占多少就填多少（飞书那种手感），平时不抢眼，鼠标移上去才亮 */
.wb-msg__read { display: inline-flex; align-items: center; gap: 4px; padding: 1px 5px; border: 0; border-radius: 999px;
  background: transparent; color: var(--wb-ink-45); font: inherit; font-size: 12px; line-height: 1.6; cursor: pointer;
  transition: background-color .16s var(--wb-ease), color .16s var(--wb-ease); }
.wb-msg__read:hover { background: rgba(var(--wb-ink-rgb), .14); color: var(--wb-ink); }
.wb-msg__read.is-read { color: #8fe0cc; }
.wb-msg__readn { font-variant-numeric: tabular-nums; letter-spacing: .2px; }
.wb-readpie { display: block; width: 13px; height: 13px; flex: none; }
.wb-readpie__track { fill: none; stroke: currentColor; stroke-width: 1.6; opacity: .42; }
.wb-readpie__fill { fill: currentColor; }
/* 点「已读」展开的小卡片：谁读了、几点读的、还有谁没读 */
.wb-readpop { position: absolute; z-index: 30; top: calc(100% + 6px); right: 0; width: 178px; padding: 9px 10px 8px;
  border-radius: 13px; background: rgba(var(--wb-sheet-rgb), .97); backdrop-filter: blur(18px);
  box-shadow: 0 18px 40px rgba(2, 10, 10, .55), inset 0 0 0 1px rgba(var(--wb-ink-rgb), .12); animation: wbMenuIn .16s var(--wb-ease); }
.wb-readpop__head { display: flex; align-items: baseline; gap: 6px; padding-bottom: 6px; }
.wb-readpop__head b { font-size: 11px; color: #b6f0e0; font-weight: 600; }
.wb-readpop__head span { margin-left: auto; font-size: 12px; color: var(--wb-ink-45); }
.wb-readpop__sub { padding: 6px 0 4px; font-size: 12px; color: var(--wb-ink-45); }
.wb-readpop__none { margin: 0 0 6px; font-size: 12px; line-height: 1.55; color: var(--wb-ink-45); }
.wb-readpop__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.wb-readpop__list li { display: flex; align-items: center; gap: 7px; font-size: 11px; color: var(--wb-ink); }
.wb-readpop__av { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; flex: none;
  border-radius: 6px; background: radial-gradient(circle at 34% 28%, rgba(var(--wb-ink-rgb), .45), var(--c, #7fd8c3)); color: #10201d; font-size: 12px; font-weight: 600; }
.wb-readpop__close { width: 100%; margin-top: 7px; padding: 4px 0; border: 0; border-radius: 8px; background: rgba(var(--wb-ink-rgb), .08);
  color: var(--wb-ink-60); font: inherit; font-size: 12.5px; cursor: pointer; }
.wb-readpop__close:hover { background: rgba(var(--wb-ink-rgb), .16); color: var(--wb-ink); }
/* 点引用块跳回原消息时闪一下 */
.wb-msg.is-flash .wb-bubble, .wb-msg.is-flash .wb-msgcard { animation: wbMsgFlash 1.2s var(--wb-ease); }
@keyframes wbMsgFlash {
  0%, 100% { box-shadow: 0 0 0 0 rgba(127, 226, 200, 0); }
  22% { box-shadow: 0 0 0 4px rgba(127, 226, 200, .45); }
}
/* 输入框上方的引用条 */
.wb-im__quote { display: flex; align-items: center; gap: 7px; padding: 6px 9px; border-radius: 10px;
  background: rgba(var(--wb-ink-rgb), .07); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .08); }
.wb-im__quoteico { display: inline-flex; color: #8fe0cc; }
.wb-im__quoteico .wb-icon { width: 13px; height: 13px; }
.wb-im__quotetext { flex: 1; min-width: 0; font-size: 12.5px; line-height: 1.5; color: var(--wb-ink-60);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-im__quotetext b { margin-right: 6px; color: #b6f0e0; font-weight: 600; }
.wb-im__quotex { flex: none; width: 18px; height: 18px; border: 0; border-radius: 6px; background: transparent;
  color: var(--wb-ink-45); font: inherit; font-size: 13px; line-height: 1; cursor: pointer; }
.wb-im__quotex:hover { background: rgba(var(--wb-ink-rgb), .16); color: var(--wb-ink); }
/* 顶栏昵称旁：对方正在输入（hidden 的规则要写在后面，否则会被 display 覆盖掉） */
.wb-im__sub[hidden] { display: none; }
.wb-im__headtext .wb-im__typing { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-style: normal; color: #8fe0cc; }
.wb-im__headtext .wb-im__typing[hidden] { display: none; }
.wb-im__typingdot { width: 6px; height: 6px; flex: none; border-radius: 50%; background: #8fe0cc; animation: wbTyping 1.1s ease-in-out infinite; }
@keyframes wbTyping {
  0%, 100% { opacity: .25; transform: scale(.8); }
  50% { opacity: 1; transform: scale(1); }
}
.wb-mention__empty { margin: 0; padding: 6px 8px 8px; font-size: 12.5px; line-height: 1.55; color: var(--wb-ink-45); }

.wb-msgcard { width: 320px; max-width: 100%; padding: 11px 13px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .1); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .12); display: flex; flex-direction: column; gap: 8px; }
.wb-msgcard--blocked { background: rgba(255, 127, 109, .14); box-shadow: inset 0 0 0 1px rgba(255, 127, 109, .3); }
.wb-msgcard__top { display: flex; align-items: center; gap: 7px; }
.wb-msgcard__top .wb-icon { width: 15px; height: 15px; color: var(--wb-ink-75); }
.wb-msgcard__top b { font-size: 12px; color: var(--wb-ink); font-weight: 500; flex: 1; min-width: 0; }
.wb-msgcard__meta { margin: 0; font-size: 12.5px; color: var(--wb-ink-60); }
.wb-msgcard__top--btn { width: 100%; border: 0; background: transparent; padding: 0; font: inherit; text-align: left; cursor: pointer; }
.wb-msgcard__top--btn:hover b { color: #b6f0e0; text-decoration: underline; }
.wb-msgcard__top--btn .wb-msgcard__go { flex: 0 0 auto; font-size: 12px; color: var(--wb-ink-45); }
.wb-msgcard__top--btn:hover .wb-msgcard__go { color: #b6f0e0; }
.wb-msgcard__top--btn .wb-icon:last-child { width: 12px; height: 12px; color: var(--wb-ink-45); }
.wb-msgcard__rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 10px; }
.wb-msgcard__rows div { display: flex; flex-direction: column; }
.wb-msgcard__rows i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-msgcard__rows span { font-size: 11px; color: var(--wb-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-msgcard__acts { display: flex; gap: 7px; }

.wb-im__composer { position: relative; border-top: 1px solid rgba(var(--wb-ink-rgb), .1); padding: 9px 12px 11px; display: flex; flex-direction: column; gap: 7px; }
.wb-im__tools { display: flex; gap: 4px; }
.wb-im__tool { display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; border: 0; border-radius: 8px; background: transparent; color: var(--wb-ink-60); cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-im__tool:hover { background: rgba(var(--wb-ink-rgb), .14); color: var(--wb-ink); }
.wb-im__tool .wb-icon { width: 16px; height: 16px; }

.wb-im__composer textarea { width: 100%; border: 0; background: transparent; color: var(--wb-ink); font: inherit; font-size: 12.5px; line-height: 1.6; resize: none; outline: none; }
.wb-im__composer textarea::placeholder { color: var(--wb-ink-45); }
.wb-im__sendrow { display: flex; align-items: center; justify-content: space-between; }
.wb-im__hint { font-size: 12px; color: var(--wb-ink-45); }

/* 资料 / 文件：不占栏，需要时才贴着右下角浮出来（往卡片外沿探出一点，像从界面里弹出来的一张卡） */
.wb-im__info {
  position: absolute;
  /* 只压住对话区：上面留出会话头（标题 + 两颗按钮）、下面留出输入框 */
  /* 微聊现在铺满窗口：浮层贴窗口右边留 12px，别被窗口的圆角裁掉 */
  top: 68px; right: 12px; bottom: 150px;
  z-index: 45;
  width: 332px;
  display: flex; flex-direction: column; gap: 10px;
  min-height: 0;
  padding: 12px 12px 14px;
  border-radius: 20px;
  background: rgba(12, 23, 23, .95);
  backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px);
  box-shadow: 0 28px 64px rgba(2, 10, 10, .58), inset 0 0 0 1px rgba(var(--wb-ink-rgb), .13);
  overflow-y: auto;
  scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .22) transparent;
  animation: wbFloatIn .2s var(--wb-ease);
}
@keyframes wbFloatIn { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
/* 输入框上方多了一条引用条时，输入条会变高，浮层跟着往上让一点 */
.wb-im.is-quoted .wb-im__info { bottom: 198px; }
.wb-im__info::-webkit-scrollbar { width: 6px; }
.wb-im__info::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .2); border-radius: 999px; }
/* 浮层把对话区右半边压住时，别把消息卡的按钮也一起挡住 */
.wb-im__info .wb-panelblock { background: rgba(var(--wb-ink-rgb), .05); }
.wb-im__infoclose { position: absolute; top: 8px; right: 10px; z-index: 5; width: 26px; height: 26px; border: 0; border-radius: 9px; background: rgba(var(--wb-ink-rgb), .14); color: var(--wb-ink-75); font: inherit; font-size: 16px; line-height: 1; cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-im__infoclose:hover { background: rgba(var(--wb-ink-rgb), .28); color: var(--wb-ink); }
.wb-im__info > .wb-btn:first-of-type { align-self: flex-start; }
.wb-im__infotitle { display: flex; align-items: center; gap: 6px; margin: 0 0 2px; font-size: 12.5px; font-weight: 500; color: var(--wb-ink); }

/* ---------- 右栏页签 + 聊天文件 ---------- */
.wb-im__tabs { display: flex; align-items: center; gap: 6px; padding-right: 36px; }
.wb-im__tab { display: inline-flex; align-items: center; padding: 5px 11px; border: 0; border-radius: 9px; background: rgba(var(--wb-ink-rgb), .09); color: var(--wb-ink-60); font: inherit; font-size: 11.5px; cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-im__tab:hover { background: rgba(var(--wb-ink-rgb), .16); color: var(--wb-ink); }
.wb-im__tab.is-on { background: rgba(var(--wb-ink-rgb), .24); color: var(--wb-ink); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .16); }
.wb-im__tab i { font-style: normal; margin-left: 4px; font-size: 12px; opacity: .8; }

.wb-im__filelist { display: flex; flex-direction: column; gap: 9px; }
.wb-im__fileshead h3 { display: flex; align-items: center; gap: 6px; margin: 0 0 3px; font-size: 12.5px; font-weight: 500; color: var(--wb-ink); }
.wb-im__fileshead h3 .wb-icon { width: 14px; height: 14px; color: var(--wb-ink-75); }
.wb-im__fileshead h3 i { font-style: normal; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-im__fileshead p { margin: 0; font-size: 12.5px; line-height: 1.7; color: var(--wb-ink-60); }
.wb-im__filefilter { display: flex; flex-wrap: wrap; gap: 5px; }
.wb-im__filefilter button { padding: 3px 9px; border: 0; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .08); color: var(--wb-ink-60); font: inherit; font-size: 12.5px; cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-im__filefilter button:hover { background: rgba(var(--wb-ink-rgb), .16); color: var(--wb-ink); }
.wb-im__filefilter button.is-on { background: rgba(127, 216, 195, .24); color: #d7fff4; box-shadow: inset 0 0 0 1px rgba(127, 216, 195, .38); }

ul.wb-files { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.wb-files__empty { font-size: 12.5px; color: var(--wb-ink-45); padding: 6px 2px; }
.wb-files__row { width: 100%; display: flex; align-items: center; gap: 9px; padding: 8px 9px; border: 0; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .06); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: background-color .18s var(--wb-ease), transform .18s var(--wb-ease); }
.wb-files__row:hover { background: rgba(var(--wb-ink-rgb), .15); transform: translateX(-2px); }
.wb-files__id { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
.wb-files__id b { font-size: 11.5px; font-weight: 500; color: var(--wb-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-files__id i { font-style: normal; font-size: 12px; color: var(--wb-ink-45); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-files__go { flex: 0 0 auto; font-size: 12px; color: var(--wb-ink-45); }
.wb-files__row:hover .wb-files__go { color: #b6f0e0; }

/* 文件格式色块 */
.wb-filebadge { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 11px; background: var(--c); color: rgba(10, 24, 22, .82); font-size: 11.5px; font-weight: 700; letter-spacing: .2px; box-shadow: inset 0 -7px 12px rgba(0, 0, 0, .14); }
.wb-filebadge--sm { width: 24px; height: 24px; border-radius: 7px; font-size: 10.5px; }

/* 预览：头部 / 舞台 / 信息 / 操作 */
.wb-fpv { display: flex; flex-direction: column; gap: 9px; }
.wb-fpv__back { align-self: flex-start; display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px 3px 6px; border: 0; border-radius: 8px; background: rgba(var(--wb-ink-rgb), .09); color: var(--wb-ink-75); font: inherit; font-size: 12.5px; cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-fpv__back:hover { background: rgba(var(--wb-ink-rgb), .18); color: var(--wb-ink); }
.wb-fpv__back .wb-icon { width: 12px; height: 12px; }
.wb-fpv__head { display: flex; align-items: center; gap: 9px; }
.wb-fpv__id { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.wb-fpv__id b { font-size: 11.5px; font-weight: 500; color: var(--wb-ink); line-height: 1.45; }
.wb-fpv__id i { font-style: normal; font-size: 12px; color: var(--wb-ink-45); }
.wb-fpv__stage { border-radius: 14px; background: rgba(8, 18, 17, .48); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .1); padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.wb-fpv__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 10px; }
.wb-fpv__facts span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wb-fpv__facts i { font-style: normal; font-size: 12px; color: var(--wb-ink-45); }
.wb-fpv__facts b { font-size: 12.5px; font-weight: 500; color: var(--wb-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-fpv__acts { display: flex; flex-wrap: wrap; gap: 7px; }
.wb-fpv__note { margin: 0; }

/* 文档 / PDF：白纸示意 */
.wb-fpv__paper { display: flex; flex-direction: column; gap: 9px; padding: 12px 11px; border-radius: 10px; background: rgba(var(--wb-ink-rgb), .95); color: #16302b; }
.wb-fpv__ptag { font-size: 11.5px; color: rgba(22, 48, 43, .58); }
.wb-fpv__plines { display: flex; flex-direction: column; gap: 9px; }
.wb-fpv__psec { display: flex; flex-direction: column; gap: 5px; }
.wb-fpv__ph { font-size: 12.5px; font-weight: 600; color: #0f2b26; }
.wb-fpv__psec i { display: block; height: 5px; border-radius: 3px; background: rgba(22, 48, 43, .16); }
.wb-fpv__pfoot { font-size: 11.5px; color: rgba(22, 48, 43, .48); text-align: right; }
.wb-fpv__phead { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.wb-fpv__phead b { font-size: 11px; font-weight: 600; color: #0f2b26; }
.wb-fpv__phead i { font-style: normal; font-size: 11.5px; color: rgba(22, 48, 43, .55); white-space: nowrap; }
.wb-fpv__bars { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.wb-fpv__bars li { display: grid; grid-template-columns: 62px 1fr 32px; align-items: center; gap: 6px; }
.wb-fpv__bars span { font-size: 12px; color: rgba(22, 48, 43, .72); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-fpv__bars i { display: block; height: 7px; border-radius: 999px; background: linear-gradient(90deg, #7fd8c3, #4fa9d8); }
.wb-fpv__bars b { font-size: 12px; font-weight: 500; color: rgba(22, 48, 43, .68); text-align: right; }
.wb-fpv__pnote { margin: 0; font-size: 12px; line-height: 1.75; color: rgba(22, 48, 43, .74); border-top: 1px solid rgba(22, 48, 43, .12); padding-top: 8px; }
.wb-fpv__pgstrip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.wb-fpv__pg { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 5px 3px; border: 0; border-radius: 8px; background: rgba(var(--wb-ink-rgb), .07); color: var(--wb-ink-60); font: inherit; font-size: 11.5px; cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-fpv__pg i { display: block; width: 100%; height: 16px; border-radius: 4px; background: rgba(var(--wb-ink-rgb), .28); }
.wb-fpv__pg:hover { background: rgba(var(--wb-ink-rgb), .16); color: var(--wb-ink); }
.wb-fpv__pg.is-on { background: rgba(127, 216, 195, .22); color: #d7fff4; box-shadow: inset 0 0 0 1px rgba(127, 216, 195, .38); }
.wb-fpv__pg.is-on i { background: rgba(var(--wb-ink-rgb), .55); }

/* 表格 */
.wb-fpv__sheet { display: flex; flex-direction: column; gap: 7px; }
.wb-fpv__srange { align-self: flex-start; padding: 2px 7px; border-radius: 999px; background: rgba(127, 216, 195, .16); color: #9fe6d3; font-size: 11.5px; }
.wb-fpv__sheet table { width: 100%; border-collapse: collapse; font-size: 11.5px; table-layout: fixed; }
.wb-fpv__sheet th, .wb-fpv__sheet td { padding: 4px 5px; text-align: left; border-bottom: 1px solid rgba(var(--wb-ink-rgb), .08); color: rgba(var(--wb-ink-rgb), .86); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-fpv__sheet thead th { font-weight: 500; color: var(--wb-ink-45); background: rgba(var(--wb-ink-rgb), .05); }
.wb-fpv__sheet tbody th { width: 20px; font-weight: 400; color: var(--wb-ink-45); }
.wb-fpv__ssum th, .wb-fpv__ssum td { background: rgba(127, 216, 195, .1); color: #b6f0e0; font-weight: 600; }

/* 设计稿 */
.wb-fpv__canvas { display: flex; align-items: flex-end; gap: 9px; height: 132px; padding: 9px; border-radius: 10px; background: repeating-linear-gradient(45deg, rgba(var(--wb-ink-rgb), .05) 0 8px, rgba(var(--wb-ink-rgb), 0) 8px 16px), rgba(var(--wb-ink-rgb), .04); }
.wb-fpv__board { display: flex; align-items: flex-end; justify-content: center; padding-bottom: 5px; border-radius: 7px; }
.wb-fpv__board b { font-size: 8.5px; font-weight: 500; color: rgba(12, 26, 24, .8); background: rgba(var(--wb-ink-rgb), .74); padding: 1px 5px; border-radius: 5px; }
.wb-fpv__board--a { background: linear-gradient(160deg, #b8a9f2, #8fd0e8); }
.wb-fpv__board--b { background: linear-gradient(160deg, #7fd8c3, #9fe6d3); }
.wb-fpv__layers { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.wb-fpv__layers li { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--wb-ink-75); }
.wb-fpv__layers .wb-icon { width: 11px; height: 11px; color: var(--wb-ink-45); }

/* 图片 / 视频 / 音频 */
.wb-fpv__shot { display: flex; align-items: center; min-height: 112px; padding: 18px 13px; border-radius: 10px; background: linear-gradient(150deg, #2a4d63, #1d6b63 58%, #244a45); }
.wb-fpv__shotart { display: flex; flex-direction: column; gap: 6px; }
.wb-fpv__shotart b { font-size: 13px; font-weight: 600; color: var(--wb-ink); line-height: 1.45; }
.wb-fpv__shotart i { font-style: normal; font-size: 12px; color: rgba(var(--wb-ink-rgb), .7); }
.wb-fpv__player { position: relative; height: 118px; border-radius: 10px; background: radial-gradient(circle at 50% 42%, rgba(var(--wb-ink-rgb), .16), rgba(var(--wb-ink-rgb), 0) 62%), #10201d; display: flex; align-items: center; justify-content: center; }
.wb-fpv__play { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(var(--wb-ink-rgb), .92); color: #10201d; }
.wb-fpv__tri { width: 16px; height: 16px; margin-left: 2px; }
.wb-fpv__play--sm { width: 26px; height: 26px; }
.wb-fpv__play--sm .wb-fpv__tri { width: 12px; height: 12px; }
.wb-fpv__pbar { position: absolute; left: 10px; right: 10px; bottom: 21px; height: 4px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .24); }
.wb-fpv__pbar i { display: block; height: 100%; border-radius: 999px; background: #7fd8c3; }
.wb-fpv__time { position: absolute; right: 10px; bottom: 6px; font-size: 12px; font-weight: 500; color: rgba(var(--wb-ink-rgb), .75); }
.wb-fpv__time--dark { position: static; color: var(--wb-ink-60); }
.wb-fpv__shots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.wb-fpv__shots span { height: 34px; border-radius: 7px; }
.wb-fpv__shots span:nth-child(1) { background: linear-gradient(140deg, #f2b968, #ff8b78); }
.wb-fpv__shots span:nth-child(2) { background: linear-gradient(140deg, #7fd8c3, #4fa9d8); }
.wb-fpv__shots span:nth-child(3) { background: linear-gradient(140deg, #b8a9f2, #8fd0e8); }
.wb-fpv__subs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.wb-fpv__subs li { font-size: 12px; color: var(--wb-ink-75); }
.wb-fpv__wave { display: flex; align-items: center; gap: 9px; }
.wb-fpv__bars-mini { flex: 1; display: flex; align-items: center; gap: 2px; height: 34px; min-width: 0; }
.wb-fpv__bars-mini i { flex: 1; border-radius: 2px; background: rgba(108, 198, 240, .68); }

/* 压缩包 / 文本 */
.wb-fpv__ziphead { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; font-size: 12.5px; color: var(--wb-ink-60); }
.wb-fpv__ziphead .wb-icon { width: 13px; height: 13px; color: var(--wb-ink-45); }
.wb-fpv__zipitems { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.wb-fpv__zipitems li { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--wb-ink); min-width: 0; }
.wb-fpv__zipitems li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-fpv__zipitems li i { margin-left: auto; font-style: normal; font-size: 12px; color: var(--wb-ink-45); white-space: nowrap; }
.wb-fpv__text { margin: 0; padding: 10px; border-radius: 10px; background: rgba(8, 18, 17, .6); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; line-height: 1.85; color: rgba(var(--wb-ink-rgb), .82); white-space: pre-wrap; word-break: break-word; max-height: 230px; overflow: auto; }
.wb-im__person { display: flex; align-items: center; gap: 11px; margin-bottom: 4px; }
.wb-im__person > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wb-im__personname { display: flex; align-items: center; gap: 6px; min-width: 0; border-radius: 6px; padding: 1px 5px; margin-left: -5px; cursor: text; transition: background-color .18s var(--wb-ease); }
.wb-im__personname:hover { background: rgba(var(--wb-ink-rgb), .11); }
.wb-im__person b { font-size: 14px; color: var(--wb-ink); font-weight: 600; }
.wb-im__person i { font-size: 12.5px; font-style: normal; color: var(--wb-ink-60); }
.wb-im__acts { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 6px; }

/* ========== 项目画廊 · 手风琴（收起是一排竖条，鼠标停一下那块就抽出来）==========
   参数照 reactbits 的 AccordionGallery：展开量 = r(n-1)/(1-r)（r = .52），
   封面宽 = 可见宽 × 1.22，两侧 ±8° 倾斜，视差 = 相距格数 × 封面宽 × .03。 */
.wb-projbox { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.wb-projgalwrap { flex: 1; min-height: 0; max-height: 560px; display: flex; gap: 12px; }

.wb-pgadd {
  flex: none;
  width: 74px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 14px 0;
  border: 1px dashed rgba(var(--wb-ink-rgb), .26);
  border-radius: 18px;
  background: rgba(var(--wb-ink-rgb), .05);
  color: var(--wb-ink-75);
  font: inherit;
  cursor: pointer;
  transition: background-color .2s var(--wb-ease), color .2s var(--wb-ease);
}

.wb-pgadd:hover { background: rgba(var(--wb-ink-rgb), .13); color: var(--wb-ink); }
.wb-pgadd .wb-icon { width: 22px; height: 22px; }
.wb-pgadd b { writing-mode: vertical-rl; letter-spacing: .16em; font-size: 13px; color: var(--wb-ink); font-weight: 600; }

.wb-projgal {
  --pg-ease: cubic-bezier(.215, .61, .355, 1);
  --pg-grow: 2.167;
  --pg-media: 420px;
  flex: 1;
  min-width: 0;
  height: 100%;
  min-height: 320px;
  display: flex;
  gap: 12px;
  perspective: 1400px;
}

.wb-pgpanel {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  border-radius: 18px;
  background: #0e1a19;
  box-shadow: 0 12px 26px rgba(3, 12, 14, .26);
  transform: rotateY(8deg);
  transform-style: preserve-3d;
  cursor: pointer;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}

.wb-pgpanel.is-on { flex-grow: var(--pg-grow); transform: rotateY(0deg); box-shadow: 0 20px 44px rgba(3, 12, 14, .36); }
.wb-pgpanel.is-right { transform: rotateY(-8deg); }
.wb-pgpanel.is-left { transform: rotateY(8deg); }
.wb-projgal.is-anim .wb-pgpanel { transition: flex-grow .55s var(--pg-ease), transform .55s var(--pg-ease), box-shadow .55s var(--pg-ease); }

/* 封面：不是照片，是「行业色 + 品牌首字 + 细网格」画出来的一张宽图。
   它比格子宽（×1.22）并居中，所以收起时看到的是大图的一竖条 —— 切换时像整张图在平移。 */
.wb-pgpanel__frame { position: absolute; inset: 0; display: block; }

.wb-pgpanel__media {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: var(--pg-media);
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(circle at 64% 20%, rgba(var(--wb-ink-rgb), .24), transparent 56%),
    linear-gradient(148deg, var(--pg-c1, #7fd8c3), var(--pg-c2, #14302a));
  transform: translateX(calc(-50% + var(--pg-shift, 0px)));
  filter: saturate(.5) brightness(.78);
  transition: filter .55s var(--pg-ease), transform .55s var(--pg-ease);
}

.wb-pgpanel__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(var(--wb-ink-rgb), .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--wb-ink-rgb), .07) 1px, transparent 1px);
  background-size: 36px 36px;
}

.wb-pgpanel__media b { font-size: 164px; font-weight: 600; letter-spacing: -.06em; color: rgba(var(--wb-ink-rgb), .16); }
.wb-pgpanel.is-on .wb-pgpanel__media { filter: none; }

.wb-pgpanel__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(4, 12, 14, .92) 2%, rgba(4, 12, 14, .4) 44%, rgba(4, 12, 14, .1) 100%);
  opacity: .52;
  transition: opacity .55s var(--pg-ease);
}

.wb-pgpanel.is-on .wb-pgpanel__veil { opacity: 0; }

/* 收起时露在外面的那行竖排字 + 完成度；展开后让位给下面的正文 */
.wb-pgpanel__spine {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 18px 0 20px;
  pointer-events: none;
  transition: opacity .3s var(--pg-ease) .2s;
}

.wb-pgpanel__spine b {
  writing-mode: vertical-rl;
  max-height: 58%;
  font-size: 14px;
  letter-spacing: .1em;
  color: rgba(var(--wb-ink-rgb), .94);
  overflow: hidden;
  white-space: nowrap;
}

.wb-pgpanel__spine i { writing-mode: vertical-rl; font-style: normal; font-size: 12px; color: rgba(var(--wb-ink-rgb), .58); }
.wb-pgpanel.is-on .wb-pgpanel__spine { opacity: 0; transition-delay: 0s; }

.wb-pgpanel__body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
  max-width: 470px;
  padding: 20px;
  pointer-events: none;
}

.wb-pgpanel.is-on .wb-pgpanel__body { pointer-events: auto; }

.wb-pgpanel__body > * {
  opacity: 0;
  transform: translateX(-14px);
  transition: opacity .4s var(--pg-ease), transform .5s var(--pg-ease);
}

.wb-pgpanel.is-on .wb-pgpanel__body > * { opacity: 1; transform: none; }
.wb-pgpanel.is-on .wb-pgpanel__body > *:nth-child(1) { transition-delay: .1s; }
.wb-pgpanel.is-on .wb-pgpanel__body > *:nth-child(2) { transition-delay: .16s; }
.wb-pgpanel.is-on .wb-pgpanel__body > *:nth-child(3) { transition-delay: .22s; }
.wb-pgpanel.is-on .wb-pgpanel__body > *:nth-child(4) { transition-delay: .28s; }
.wb-pgpanel.is-on .wb-pgpanel__body > *:nth-child(5) { transition-delay: .34s; }
.wb-pgpanel.is-on .wb-pgpanel__body > *:nth-child(6) { transition-delay: .4s; }

.wb-pgpanel__top { display: flex; align-items: center; gap: 9px; }

.wb-pgpanel__mark {
  flex: none;
  width: 3px;
  height: 20px;
  border-radius: 999px;
  background: #a9efdd;
  box-shadow: 0 0 12px rgba(169, 239, 221, .7);
}

.wb-pgpanel__top b { font-size: 17px; font-weight: 600; color: var(--wb-ink); }
.wb-pgpanel__sub { font-size: 12.5px; color: var(--wb-ink-60); }

.wb-pgpanel__kpis { display: flex; gap: 20px; }
.wb-pgpanel__kpis span { display: flex; flex-direction: column; }
.wb-pgpanel__kpis i { font-size: 11.5px; font-style: normal; color: var(--wb-ink-45); }
.wb-pgpanel__kpis b { font-size: 15px; font-weight: 600; color: var(--wb-ink); font-variant-numeric: tabular-nums; }

.wb-pgpanel__body .wb-progress { width: 236px; }
.wb-pgpanel__body .wb-progress i { background: linear-gradient(90deg, #7fd8c3, #c8f6ea); }

.wb-pgpanel__facts { display: flex; flex-wrap: wrap; gap: 5px 16px; font-size: 12px; color: var(--wb-ink-60); }
.wb-pgpanel__facts i { display: inline-flex; align-items: center; gap: 5px; font-style: normal; }
.wb-pgpanel__facts .wb-icon { width: 13px; height: 13px; flex: none; }

.wb-pgpanel__acts { display: flex; gap: 8px; margin-top: 4px; }

.wb-projdetail {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-content: start;
  align-items: start;
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(var(--wb-ink-rgb), .24) transparent;
}

.wb-projdetail::-webkit-scrollbar { width: 6px; }
.wb-projdetail::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .22); border-radius: 999px; }
.wb-projdetail > .wb-panelblock:first-child,
.wb-projdetail > .wb-panelblock:nth-child(2),
.wb-projdetail > .wb-panelblock:nth-child(3),
.wb-projdetail > .wb-panelblock:nth-child(4) { grid-column: 1 / -1; }

.wb-projaccounts { display: flex; flex-wrap: wrap; gap: 8px; }
.wb-acc { display: flex; flex-direction: column; gap: 2px; padding: 8px 12px; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .07); }
.wb-acc b { font-size: 11px; color: #a9efdd; font-weight: 500; }
.wb-acc i { font-size: 11.5px; font-style: normal; color: var(--wb-ink); }
.wb-acc em { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }

.wb-projmetrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.wb-metric-tile { padding: 9px 11px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .07); }
.wb-metric-tile i { display: block; font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-metric-tile b { font-size: 15px; color: var(--wb-ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.wb-metric-tile b em { font-size: 12px; font-style: normal; color: var(--wb-ink-60); margin-left: 1px; }
.wb-metric-tile span { display: block; font-size: 12px; color: #a9efdd; }

.wb-projgoal { margin: 4px 0 2px; }
.wb-projtrend { display: flex; flex-direction: column; gap: 4px; }
.wb-projtrend__k { font-size: 12px; color: var(--wb-ink-45); }
/* 项目趋势线（studio.js 的 sparkSVG）：只有「项目管理 · 项目档案」在用 */
.wb-projtrend .wb-spark { display: block; width: 100%; height: 92px; padding-top: 28px; }

.wb-tablewrap { overflow-x: auto; }
.wb-table { width: 100%; border-collapse: collapse; font-size: 11.5px; }
.wb-table th { padding: 7px 10px; font-weight: 500; font-size: 12.5px; color: var(--wb-ink-45); text-align: left; border-bottom: 1px solid rgba(var(--wb-ink-rgb), .12); white-space: nowrap; }
.wb-table td { padding: 8px 10px; color: var(--wb-ink-90); border-bottom: 1px solid rgba(var(--wb-ink-rgb), .06); }
.wb-table td b { color: var(--wb-ink); font-weight: 500; }
.wb-table tbody tr:last-child td { border-bottom: 0; }
.wb-td-r { text-align: right; font-variant-numeric: tabular-nums; }

.wb-audrow { display: flex; align-items: flex-start; gap: 10px; }
.wb-audk { flex: none; width: 72px; font-size: 11px; color: var(--wb-ink-45); padding-top: 2px; }

.wb-hits { display: flex; flex-direction: column; gap: 5px; }
.wb-hit { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 7px 10px; border-radius: 10px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-hit b { font-size: 11.5px; color: var(--wb-ink); font-weight: 500; }
.wb-hit i { font-size: 12.5px; font-style: normal; color: var(--wb-ink-60); }

.wb-projteam { display: flex; flex-wrap: wrap; gap: 8px; }
/* 只读的「谁在做这件事」小卡：原来是按钮，现在不给它按钮的假象 */
.wb-miniagent { display: flex; align-items: center; gap: 8px; padding: 7px 11px; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .07); }
.wb-miniagent > span:nth-child(2) { display: flex; flex-direction: column; }
.wb-miniagent b { font-size: 11.5px; color: var(--wb-ink); font-weight: 500; }
.wb-miniagent i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-miniagent__st { font-size: 12px; }

/* ---------- 创建项目弹层 ---------- */

.wb-modal { position: absolute; inset: 0; z-index: 40; display: flex; align-items: center; justify-content: center; background: rgba(4, 12, 12, .55); backdrop-filter: blur(3px); border-radius: 22px; animation: wbMenuIn .16s var(--wb-ease); }
.wb-modal__card { width: min(620px, 100%); max-height: 100%; overflow-y: auto; padding: 18px 20px; border-radius: 22px; background: rgba(var(--wb-sheet-rgb), .96); display: flex; flex-direction: column; gap: 12px; }
.wb-modal__head { display: flex; align-items: center; justify-content: space-between; }
.wb-modal__head b { font-size: 15px; color: var(--wb-ink); }
.wb-modal__tip { margin: 0; font-size: 12.5px; line-height: 1.6; color: var(--wb-ink-45); }
.wb-modal__acts { display: flex; justify-content: flex-end; gap: 8px; }
.wb-formgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.wb-formfield { display: flex; flex-direction: column; gap: 5px; }
.wb-formfield span { font-size: 11px; color: var(--wb-ink-60); }
.wb-formfield .wb-input { width: 100%; height: 32px; }

/* 平台基建（platform.js）还在用这一套行样式 —— 它和 Agent 配置页的 .admrow 是同一种东西，
   两段保持同一套行距，后台里才不会一段一个样。 */
.wb-admfield { display: flex; align-items: center; gap: 10px; padding: 5px 8px; border-radius: 10px; }
.wb-admfield:hover { background: rgba(var(--wb-ink-rgb), .05); }
.wb-admfield__k { flex: none; width: 92px; font-size: 11px; color: var(--wb-ink-60); }
.wb-admfield__v { flex: 1; min-width: 0; font-size: 11.5px; color: var(--wb-ink-90); overflow: hidden; text-overflow: ellipsis; }

.wb-seg--tiny { padding: 2px; gap: 2px; }
.wb-seg--tiny button { height: 22px; padding: 0 9px; font-size: 12.5px; }

.wb-input {
  height: 26px;
  padding: 0 9px;
  border: 1px solid rgba(var(--wb-ink-rgb), .16);
  border-radius: 8px;
  background: rgba(var(--wb-ink-rgb), .08);
  color: var(--wb-ink);
  font: inherit;
  font-size: 11.5px;
  outline: none;
  transition: border-color .18s var(--wb-ease), background-color .18s var(--wb-ease);
}

.wb-input:focus { border-color: rgba(var(--wb-ink-rgb), .5); background: rgba(var(--wb-ink-rgb), .14); }
.wb-input::placeholder { color: var(--wb-ink-45); }
.wb-input--num { width: 66px; text-align: right; font-variant-numeric: tabular-nums; }

.wb-hire { position: absolute; inset: 0; z-index: 30; display: flex; align-items: center; justify-content: center; background: rgba(4, 12, 12, .5); backdrop-filter: blur(3px); border-radius: 22px; animation: wbMenuIn .16s var(--wb-ease); }
.wb-hire__card { width: min(420px, 100%); max-height: 100%; overflow-y: auto; padding: 16px 18px; border-radius: 22px; background: rgba(var(--wb-sheet-rgb), .96); display: flex; flex-direction: column; gap: 11px; }
.wb-hire__head { display: flex; align-items: center; gap: 10px; }
.wb-hire__head > div { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.wb-hire__head b { font-size: 13.5px; color: var(--wb-ink); }
.wb-hire__head i { font-size: 12.5px; font-style: normal; color: var(--wb-ink-45); }
.wb-hire__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.wb-hire__row > span:first-child { font-size: 11.5px; color: var(--wb-ink-60); flex: none; }
.wb-hire__note { font-size: 11px; color: var(--wb-ink-90); text-align: right; }
.wb-hire__tip { margin: 0; font-size: 12.5px; line-height: 1.6; color: var(--wb-ink-45); }
.wb-hire__acts { display: flex; justify-content: flex-end; gap: 8px; }

.wb-marketgrid {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.wb-listing { display: flex; flex-direction: column; gap: 9px; padding: 15px 16px; border-radius: 22px; }
.wb-listing:hover { transform: translateY(-2px); box-shadow: var(--wb-shadow-lift); }
.wb-listing__top { display: flex; align-items: center; gap: 9px; }
.wb-listing__id { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.wb-listing__id b { font-size: 13.5px; font-weight: 600; color: var(--wb-ink); }
.wb-listing__id i { font-size: 11px; font-style: normal; color: var(--wb-ink-60); }
.wb-listing__level { padding: 2px 9px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .14); font-size: 12.5px; color: var(--wb-ink); }
.wb-listing__bars { display: flex; }
.wb-listing__tags { display: flex; flex-wrap: wrap; gap: 5px; }
.wb-listing__tags em { padding: 2px 8px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .1); font-size: 12.5px; font-style: normal; color: var(--wb-ink-75); }
.wb-listing__meta { display: flex; align-items: center; justify-content: space-between; font-size: 11px; color: var(--wb-ink-60); margin-top: auto; }
.wb-listing__buy { display: flex; align-items: center; gap: 8px; padding-top: 9px; border-top: 1px solid rgba(var(--wb-ink-rgb), .12); }
.wb-listing__buy b { font-size: 16px; color: var(--wb-ink); font-weight: 600; margin-right: auto; }

/* ---------- 投屏模式 ---------- */

/* 投屏模式：画面之外的东西全部让开，只留办公室本身。
   办公室是独立的一层窗口，所以标记直接落在 .wb-office 上。 */
.wb-office.is-screen .wb-office__top,
.wb-office.is-screen .wb-office__side,
.wb-office.is-screen .wb-office__cameras { opacity: 0; pointer-events: none; }
.wb-office.is-screen .wb-office__cameras { display: none; }

/* ---------- 写作规则 · 工作流 · 知识库 ---------- */

.wb-tabcount { margin-left: 6px; padding: 0 6px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .16); font-size: 12px; }
.wb-boardtabs button.is-active .wb-tabcount { background: rgba(20, 37, 31, .12); }

.wb-rules { display: grid; grid-template-columns: 232px minmax(0, 1fr) 262px; gap: 14px; align-items: start; }

.wb-rules__side { padding: 12px; display: flex; flex-direction: column; gap: 8px; }
.wb-rules__sidehead { font-size: 12.5px; color: var(--wb-ink-45); padding: 0 4px; }
.wb-rulesetlist { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 0; list-style: none; }
.wb-ruleset { display: flex; align-items: center; gap: 9px; width: 100%; padding: 9px 10px; border: 0; border-radius: 13px; background: transparent; color: var(--wb-ink-90); font: inherit; text-align: left; cursor: pointer; transition: background-color .18s var(--wb-ease); }
.wb-ruleset:hover { background: rgba(var(--wb-ink-rgb), .1); }
.wb-ruleset.is-active { background: rgba(var(--wb-ink-rgb), .18); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .16); }
.wb-ruleset__ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 9px; background: rgba(var(--wb-ink-rgb), .12); color: var(--wb-ink-75); }
.wb-ruleset__ico .wb-icon { width: 14px; height: 14px; }
.wb-ruleset__ico.is-on { background: rgba(127, 216, 195, .2); color: #b6f0e2; }
.wb-ruleset__main { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.wb-ruleset__main b { font-size: 12.5px; font-weight: 500; color: var(--wb-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-ruleset__main i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-ruleset em { flex: none; font-size: 11px; font-style: normal; color: var(--wb-ink-60); font-variant-numeric: tabular-nums; }

.wb-rules__main { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.wb-rules__main .wb-panelblock { padding: 16px 18px; }
.wb-rules__info { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.wb-rules__info .wb-panelblock { padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.wb-rules__inline { display: flex; flex-wrap: wrap; gap: 8px; }

.wb-rulegroup + .wb-rulegroup { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(var(--wb-ink-rgb), .1); }
.wb-rulegroup__head { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }
.wb-rulegroup__head .wb-icon { width: 15px; height: 15px; color: var(--wb-ink-60); }
.wb-rulegroup__head h4 { margin: 0; font-size: 12.5px; font-weight: 500; color: var(--wb-ink); }
.wb-rulegroup__head span { margin-left: auto; font-size: 12px; color: var(--wb-ink-45); }

.wb-rulelist { display: flex; flex-direction: column; gap: 7px; margin: 0; padding: 0; list-style: none; }
.wb-rule { display: flex; align-items: flex-start; gap: 11px; padding: 10px 12px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .06); transition: background-color .18s var(--wb-ease); }
.wb-rule:hover { background: rgba(var(--wb-ink-rgb), .1); }
.wb-rule.is-off { opacity: .5; }
.wb-rule__sw { flex: none; position: relative; width: 32px; height: 19px; margin-top: 1px; border: 0; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .2); cursor: pointer; transition: background-color .2s var(--wb-ease); }
.wb-rule__sw i { position: absolute; top: 3px; left: 3px; width: 13px; height: 13px; border-radius: 50%; background: rgba(var(--wb-ink-rgb), .8); transition: transform .2s var(--wb-ease), background-color .2s var(--wb-ease); }
.wb-rule__sw[aria-checked="true"] { background: rgba(127, 216, 195, .45); }
.wb-rule__sw[aria-checked="true"] i { transform: translateX(13px); background: #eafff9; }
.wb-rule__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.wb-rule__line { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.wb-rule__line b { font-size: 12.5px; font-weight: 500; color: var(--wb-ink); }
.wb-rule__main p { margin: 0; font-size: 11.5px; line-height: 1.6; color: var(--wb-ink-75); }
.wb-rule__del { flex: none; width: 22px; height: 22px; border: 0; border-radius: 7px; background: transparent; color: var(--wb-ink-45); font: inherit; font-size: 14px; line-height: 1; cursor: pointer; opacity: 0; transition: opacity .18s var(--wb-ease), background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-rule:hover .wb-rule__del { opacity: 1; }
.wb-rule__del:hover { background: rgba(255, 127, 109, .22); color: #ffbdb2; }

.wb-undobar { display: flex; align-items: center; gap: 9px; margin: 0 0 10px; padding: 8px 12px; border-radius: 12px; background: rgba(127, 216, 195, .14); color: #b6f0e2; font-size: 11.5px; }
.wb-undobar .wb-icon { width: 14px; height: 14px; }
.wb-undobar span { flex: 1; }

.wb-rulemini { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; }
.wb-rulemini li { display: flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--wb-ink-75); }
.wb-rulemini li b { font-weight: 500; color: var(--wb-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-rulemini li i { font-style: normal; font-size: 12px; color: var(--wb-ink-45); flex: none; }
.wb-rulemini li .wb-tag { flex: none; }
.wb-rulemini__more { color: var(--wb-ink-45); font-size: 12.5px; }
.wb-rulemini--tall li { align-items: flex-start; padding: 7px 9px; border-radius: 11px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-rulemini--tall li b { white-space: normal; }

/* 工作流步骤 */
.wb-wflist { display: flex; flex-direction: column; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: wf; }
.wb-wfstep { position: relative; display: flex; gap: 12px; padding: 0 0 14px; }
.wb-wfstep:last-child { padding-bottom: 0; }
.wb-wfstep__no { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 9px; background: rgba(var(--wb-ink-rgb), .14); color: var(--wb-ink); font-size: 11px; font-variant-numeric: tabular-nums; z-index: 1; }
.wb-wfstep::before { content: ""; position: absolute; left: 12px; top: 26px; bottom: 0; width: 1px; background: rgba(var(--wb-ink-rgb), .16); }
.wb-wfstep:last-child::before { display: none; }
.wb-wfstep__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 7px; padding: 9px 12px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-wfstep__top { display: flex; align-items: center; gap: 8px; }
.wb-wfstep__top > b { font-size: 12.5px; font-weight: 500; color: var(--wb-ink); }
.wb-wfstep__top .wb-input { flex: 1; max-width: 260px; height: 28px; }
.wb-wfstep__who { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px 3px 4px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink-90); font-size: 11px; }
.wb-wfstep__who .wb-icon { width: 13px; height: 13px; }
.wb-wfstep__del { flex: none; margin-left: auto; width: 22px; height: 22px; border: 0; border-radius: 7px; background: transparent; color: var(--wb-ink-45); font: inherit; font-size: 14px; line-height: 1; cursor: pointer; opacity: 0; transition: opacity .18s var(--wb-ease), background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-wfstep:hover .wb-wfstep__del { opacity: 1; }
.wb-wfstep__del:hover { background: rgba(255, 127, 109, .22); color: #ffbdb2; }
.wb-wfstep__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 14px; }
.wb-wfstep__grid span { display: flex; gap: 7px; font-size: 11px; color: var(--wb-ink-75); min-width: 0; }
.wb-wfstep__grid span i { flex: none; width: 48px; font-style: normal; color: var(--wb-ink-45); }
.wb-wfstep--new .wb-wfstep__no { background: rgba(127, 216, 195, .3); color: #ddfff6; }
.wb-wfstep--new .wb-wfstep__body { background: rgba(127, 216, 195, .12); flex-direction: row; align-items: center; flex-wrap: wrap; }
.wb-avatar-xs { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 6px; background: rgba(var(--wb-ink-rgb), .22); color: var(--wb-ink); font-size: 11.5px; }

/* 生效预览弹窗 */
.wb-modal__card--wide { width: min(880px, 100%); }
.wb-modal__spacer { flex: 1; }
.wb-preview2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 14px; }
.wb-preview2__col { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.wb-preview2__col h4 { display: flex; align-items: center; gap: 7px; margin: 0; font-size: 12px; font-weight: 500; color: var(--wb-ink-75); }
.wb-preview2__col h4 .wb-icon { width: 14px; height: 14px; }
.wb-preview2__sample { margin: 0; max-height: 320px; overflow: auto; padding: 13px 14px; border-radius: 14px; background: rgba(0, 0, 0, .3); color: #eaf6f3; font-family: var(--wb-font); font-size: 11.5px; line-height: 1.75; white-space: pre-wrap; }

/* 知识库 */
.wb-kbtools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 11px; }
.wb-kbtools .wb-search { flex: none; }
.wb-kbtools .wb-chiprow { gap: 5px; }
.wb-kbtools .wb-tag { cursor: pointer; border: 0; font-family: inherit; }
.wb-kblist { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.wb-kbcard { display: flex; align-items: flex-start; gap: 12px; width: 100%; padding: 12px 14px; border: 0; border-radius: 15px; background: rgba(var(--wb-ink-rgb), .06); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: background-color .18s var(--wb-ease), transform .18s var(--wb-ease); }
.wb-kbcard:hover { background: rgba(var(--wb-ink-rgb), .12); transform: translateY(-1px); }
.wb-kbcard__ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 11px; background: rgba(var(--wb-ink-rgb), .12); color: var(--wb-ink-75); }
.wb-kbcard__ico .wb-icon { width: 16px; height: 16px; }
.wb-kbcard__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.wb-kbcard__line { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.wb-kbcard__line b { font-size: 12.5px; font-weight: 500; color: var(--wb-ink); }
.wb-kbcard__sum { font-size: 11.5px; line-height: 1.6; color: var(--wb-ink-75); }
.wb-kbcard__meta { font-size: 12px; color: var(--wb-ink-45); }
.wb-kbcard__used { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 1px; }
.wb-kbcard__used b { font-size: 15px; color: var(--wb-ink); font-variant-numeric: tabular-nums; }
.wb-kbcard__used i { font-size: 12px; font-style: normal; color: var(--wb-ink-45); }
.wb-kbmeta { display: flex; flex-wrap: wrap; gap: 14px; padding: 9px 12px; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .06); font-size: 12.5px; color: var(--wb-ink-60); }
.wb-kbmeta span { display: inline-flex; align-items: center; gap: 5px; }
.wb-kbmeta .wb-icon { width: 13px; height: 13px; }
.wb-input--area { height: auto; padding: 8px 10px; line-height: 1.6; resize: vertical; font-family: inherit; }

/* ---------- 项目资料库：长文档案（公司简介 / 产品信息 / 调研报告 / 常见问题…） ---------- */
.wb-docsec__tip { display: flex; align-items: flex-start; gap: 7px; margin: 0 0 12px; padding: 9px 12px; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .05); font-size: 11px; line-height: 1.65; color: var(--wb-ink-60); }
.wb-docsec__tip .wb-icon { flex: none; width: 14px; height: 14px; margin-top: 1px; }
.wb-docsec__todo { color: var(--wb-amber, #f2b968); font-weight: 500; }
.wb-docsec__note { font-size: 12.5px; color: var(--wb-ink-45); }
.wb-doctools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 12px; }
.wb-doctools .wb-search { flex: 0 1 260px; }
.wb-docgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: 10px; }
.wb-doccard { display: flex; flex-direction: column; gap: 7px; padding: 12px 13px; border: 1px solid rgba(var(--wb-ink-rgb), .1); border-radius: 15px; background: rgba(var(--wb-ink-rgb), .055); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: background-color .18s var(--wb-ease), transform .18s var(--wb-ease), border-color .18s var(--wb-ease); }
.wb-doccard:hover { background: rgba(var(--wb-ink-rgb), .12); border-color: rgba(var(--wb-ink-rgb), .2); transform: translateY(-1px); }
.wb-doccard--todo { border-style: dashed; border-color: rgba(242, 185, 104, .42); }
.wb-doccard__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.wb-doccard__kind { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--wb-ink-60); }
.wb-doccard__kind .wb-icon { width: 13px; height: 13px; }
.wb-doccard__title { font-size: 13px; font-weight: 500; line-height: 1.45; color: var(--wb-ink); }
.wb-doccard__sum { font-size: 11px; line-height: 1.6; color: var(--wb-ink-75); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.wb-doccard__meta { margin-top: auto; font-size: 12px; color: var(--wb-ink-45); }
.wb-docread { max-height: min(56vh, 620px); overflow-y: auto; padding: 16px 18px; border-radius: 15px; background: rgba(var(--wb-ink-rgb), .05); }
.wb-docread h4 { margin: 16px 0 7px; font-size: 12.5px; font-weight: 500; color: var(--wb-ink); }
.wb-docread h4:first-child { margin-top: 0; }
.wb-docread p { margin: 0 0 8px; font-size: 12px; line-height: 1.85; color: var(--wb-ink-75); }
.wb-docread__list { margin: 0 0 10px; padding-left: 18px; }
.wb-docread__list li { font-size: 12px; line-height: 1.85; color: var(--wb-ink-75); }
.wb-docread__q { display: flex; gap: 7px; margin: 12px 0 3px !important; font-size: 12.5px !important; color: var(--wb-ink) !important; }
.wb-docread__q b, .wb-docread__a b { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 17px; height: 17px; margin-top: 2px; border-radius: 6px; font-size: 12px; font-weight: 600; }
.wb-docread__q b { background: rgba(127, 216, 195, .2); color: #7fd8c3; }
.wb-docread__a { display: flex; gap: 7px; margin: 0 0 12px !important; }
.wb-docread__a b { background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink-60); }
.wb-doced { display: flex; flex-direction: column; gap: 12px; }
.wb-doced__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: start; }
.wb-doced__tpl { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-doced__tpl button { cursor: pointer; }
.wb-doced__tplnote { color: var(--wb-ink-45); }
.wb-doced__area { min-height: 300px; font-size: 12px; line-height: 1.9; }
.wb-doced__hint { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-doced__hint .wb-icon { width: 13px; height: 13px; }
.wb-formgrid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wb-btn--danger { color: #ffbdb2; }
.wb-btn--danger:hover { background: rgba(255, 127, 109, .2); }

/* ---------- 我的企业 ---------- */

.wb-boardtabs--sub { margin-top: -4px; }
.wb-boardtabs--sub button { height: 26px; padding: 0 11px; font-size: 11.5px; }
.wb-boardbody--cop { display: block; overflow: visible; }
.wb-cop { display: flex; flex-direction: column; gap: 12px; }
.wb-cop .wb-panelblock { padding: 16px 18px; }
.wb-cop__hero { display: flex; flex-direction: column; gap: 13px; }
.wb-cop__brand { display: flex; align-items: center; gap: 12px; }
.wb-cop__logo { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .16); color: var(--wb-ink); }
.wb-cop__logo .wb-icon { width: 22px; height: 22px; }
.wb-cop__brand > div { flex: 1; min-width: 0; }
.wb-cop__brand h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 3px; font-size: 17px; font-weight: 600; color: var(--wb-ink); }
.wb-cop__brand p { margin: 0; font-size: 12px; color: var(--wb-ink-60); }
.wb-cop__intro { margin: 0; font-size: 12.5px; line-height: 1.75; color: var(--wb-ink-90); }
.wb-copmetrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }

.wb-svggrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.wb-svgcard { display: flex; flex-direction: column; gap: 8px; padding: 14px 15px; border: 0; border-radius: 16px; background: rgba(var(--wb-ink-rgb), .07); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: background-color .18s var(--wb-ease), transform .18s var(--wb-ease); }
.wb-svgcard:hover { background: rgba(var(--wb-ink-rgb), .13); transform: translateY(-1px); }
.wb-svgcard__top { display: flex; align-items: center; gap: 8px; }
.wb-svgcard__top b { font-size: 14px; font-weight: 600; color: var(--wb-ink); }
.wb-svgcard__price { display: flex; align-items: baseline; gap: 8px; font-size: 15px; color: #a9efdd; font-variant-numeric: tabular-nums; }
.wb-svgcard__price i { font-style: normal; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-svgcard__desc { font-size: 11.5px; line-height: 1.65; color: var(--wb-ink-75); }
.wb-svgcard__foot { display: flex; align-items: center; gap: 6px; padding-top: 8px; border-top: 1px solid rgba(var(--wb-ink-rgb), .1); font-size: 12.5px; color: var(--wb-ink-45); }
.wb-svgcard__foot .wb-icon { width: 13px; height: 13px; }

/* 敬请期待（未开放的三块） */
.wb-soon { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 420px; padding: 40px 24px; border-radius: 22px; background: rgba(var(--wb-ink-rgb), .06); box-shadow: var(--wb-shadow); text-align: center; }
.wb-soon__ico { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 17px; background: rgba(var(--wb-ink-rgb), .12); color: var(--wb-ink-75); }
.wb-soon__ico .wb-icon { width: 26px; height: 26px; }
.wb-soon b { font-size: 22px; font-weight: 600; color: var(--wb-ink); letter-spacing: 1px; }
.wb-soon__desc { margin: 0; max-width: 430px; font-size: 12.5px; line-height: 1.8; color: var(--wb-ink-75); }
.wb-soon__line { width: 56px; height: 1px; background: rgba(var(--wb-ink-rgb), .22); }
.wb-soon__now { margin: 0; max-width: 430px; font-size: 11px; line-height: 1.8; color: var(--wb-ink-45); }
.wb-soon__acts { display: flex; gap: 8px; margin-top: 4px; }

/* 「更多功能」= 一页收拢排期中的功能（原盈利模型 + 原经营数据都并到这里） */
.wb-soon--list { justify-content: flex-start; min-height: 0; padding: 34px 24px 28px; }
.wb-soon--list > * { width: 100%; max-width: 620px; }
.wb-soon--list > .wb-soon__ico { width: 52px; }
.wb-soon--list .wb-soon__desc { max-width: 560px; }
.wb-morelist { display: flex; flex-direction: column; gap: 6px; width: 100%; margin: 4px 0 0; padding: 0; list-style: none; text-align: left; }
.wb-morelist li { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 11px 13px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .05); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .05); transition: background-color .18s var(--wb-ease); }
.wb-morelist li:hover { background: rgba(var(--wb-ink-rgb), .1); }
.wb-morelist__ico { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .09); color: var(--wb-ink-75); }
.wb-morelist__ico .wb-icon { width: 18px; height: 18px; }
.wb-morelist__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.wb-morelist__text b { font-size: 12.5px; font-weight: 500; color: var(--wb-ink); }
.wb-morelist__text i { font-style: normal; font-size: 11px; line-height: 1.6; color: var(--wb-ink-45); }

/* 企业资料 · 服务案例：先占位，等项目结项后自动沉淀真实案例 */
.wb-caseghost { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.wb-caseghost__card { display: flex; flex-direction: column; gap: 7px; padding: 13px 14px 11px; border-radius: 14px; border: 1px dashed rgba(var(--wb-ink-rgb), .16); background: rgba(var(--wb-ink-rgb), .025); }
.wb-caseghost__tag { align-self: flex-start; padding: 2px 8px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .08); font-size: 12px; color: var(--wb-ink-60); letter-spacing: .2px; }
.wb-caseghost__l { display: block; height: 8px; border-radius: 4px; background: linear-gradient(90deg, rgba(var(--wb-ink-rgb), .13), rgba(var(--wb-ink-rgb), .05)); }
.wb-caseghost__foot { margin-top: 2px; padding-top: 8px; border-top: 1px solid rgba(var(--wb-ink-rgb), .08); font-size: 12px; color: var(--wb-ink-45); }

/* 三个入口条：企业资料等页面在用 */
.wb-soonstrip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.wb-soonstrip button { display: flex; flex-direction: column; gap: 3px; padding: 11px 12px; border: 0; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .06); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: background-color .18s var(--wb-ease); }
.wb-soonstrip button:hover { background: rgba(var(--wb-ink-rgb), .13); }
.wb-soonstrip .wb-icon { width: 15px; height: 15px; color: var(--wb-ink-60); }
.wb-soonstrip b { font-size: 12px; font-weight: 500; color: var(--wb-ink); }
.wb-soonstrip i { font-style: normal; font-size: 12px; color: var(--wb-ink-45); }

/* SOP 步骤：hover 浮出编辑 / 删除 */
.wb-wfstep__mini { flex: none; margin-left: auto; width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 7px; background: transparent; color: var(--wb-ink-45); cursor: pointer; opacity: 0; transition: opacity .18s var(--wb-ease), background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-wfstep__mini .wb-icon { width: 13px; height: 13px; }
.wb-wfstep:hover .wb-wfstep__mini { opacity: 1; }
.wb-wfstep__mini:hover { background: rgba(var(--wb-ink-rgb), .16); color: var(--wb-ink); }
.wb-wfstep__del { margin-left: 4px; }

.wb-sopform { display: flex; flex-direction: column; gap: 9px; width: 100%; }
.wb-sopform__row { display: grid; grid-template-columns: minmax(0, 1fr) 160px; gap: 10px; }
.wb-sopform__acts { justify-content: flex-end; }
.wb-sopform .wb-chiprow { gap: 5px; max-height: 92px; overflow-y: auto; }
.wb-sopform .wb-chiprow .wb-tag { cursor: pointer; border: 0; font-family: inherit; }

/* ---------- 自适应 ---------- */

@media (max-width: 1240px) {
  .wb-boardbody { grid-template-columns: minmax(0, 1fr) 238px; column-gap: 16px; }
  .wb-rules { grid-template-columns: 210px minmax(0, 1fr) 232px; gap: 12px; }
}

@media (max-width: 1080px) {
  .wb-content--full { margin-top: 18px; }
  .wb-im__body { grid-template-columns: 226px minmax(0, 1fr); }
  .wb-im__info { width: 300px; }
  .wb-projgalwrap { max-height: 400px; }
  .wb-pgpanel__body { max-width: 400px; padding: 16px; }
  .wb-projdetail { grid-template-columns: minmax(0, 1fr); overflow: visible; }
  .wb-projmetrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wb-profilegrid { grid-template-columns: minmax(0, 1fr); }
  .wb-profile__side { flex-direction: row; flex-wrap: wrap; }
  .wb-profile__side > * { flex: 1 1 220px; }
  .wb-profile__main { overflow: visible; }
  .wb-teamgrid, .wb-marketgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; grid-auto-rows: minmax(0, auto); }
  .wb-agentview__body { grid-template-columns: minmax(0, 1fr); }
  .wb-agentview__side { grid-template-rows: none; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wb-office { min-height: 460px; }
  .wb-boardbody { grid-template-columns: minmax(0, 1fr); }
  .wb-rules { grid-template-columns: minmax(0, 1fr); }
  .wb-rulesetlist { flex-direction: row; flex-wrap: wrap; }
  .wb-rulesetlist li { flex: 1 1 200px; }
  .wb-preview2 { grid-template-columns: minmax(0, 1fr); }
  .wb-copmetrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-svggrid { grid-template-columns: minmax(0, 1fr); }
  .wb-soonstrip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-caseghost { grid-template-columns: minmax(0, 1fr); }
  .wb-sopform__row { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 820px) {
  .wb-viewhead { flex-direction: column; align-items: flex-start; }
  .wb-viewhead__title { font-size: 20px; }
  .wb-market2 { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 44%) minmax(0, 1fr); }
  .wb-im__body { grid-template-columns: minmax(0, 1fr); grid-template-rows: 150px minmax(0, 1fr); }
  .wb-im__list { min-height: 0; border-right: 0; border-bottom: 1px solid rgba(var(--wb-ink-rgb), .1); }
  .wb-im__info { left: 8px; right: 8px; width: auto; }
  .wb-msgcard { width: 100%; }
  .wb-msg__body { max-width: 82%; }
  /* 窄屏：手风琴改成竖着抽（一行一行往外拉），横排在这一档会挤成一条线 */
  .wb-projgalwrap { flex-direction: column; max-height: none; }
  .wb-projgal { flex-direction: column; height: auto; min-height: 0; perspective: 1200px; }
  .wb-pgpanel { flex: none; height: 84px; transform: rotateX(8deg); }
  .wb-pgpanel.is-on { flex-grow: 0; height: 336px; transform: rotateX(0deg); }
  .wb-pgpanel.is-left { transform: rotateX(-8deg); }
  .wb-pgpanel.is-right { transform: rotateX(8deg); }
  .wb-projgal.is-anim .wb-pgpanel { transition: height .55s var(--pg-ease), transform .55s var(--pg-ease), box-shadow .55s var(--pg-ease); }
  .wb-pgpanel__spine { flex-direction: row; align-items: center; justify-content: flex-start; gap: 10px; padding: 0 18px; }
  .wb-pgpanel__spine b, .wb-pgpanel__spine i { writing-mode: horizontal-tb; max-height: none; }
  .wb-pgpanel__body { max-width: none; padding: 16px; }
  .wb-pgpanel__media b { font-size: 120px; }
  /* 竖着抽的时候，封面要横过来铺满整行（上下溢出），而不是在中间留一条竖条 */
  .wb-pgpanel__media {
    left: 0;
    right: 0;
    top: 50%;
    bottom: auto;
    width: auto;
    height: var(--pg-media);
    transform: translateY(calc(-50% + var(--pg-shift, 0px)));
  }
  .wb-pgadd { width: auto; height: 62px; flex-direction: row; padding: 0 18px; }
  .wb-pgadd b { writing-mode: horizontal-tb; letter-spacing: .06em; }
  .wb-projmetrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-formgrid { grid-template-columns: minmax(0, 1fr); }
  .wb-market3__list { max-height: 300px; }
  .wb-cand__cols { grid-template-columns: minmax(0, 1fr); }
  .wb-cand__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-talent__pay { display: none; }
  /* 窄屏：产品表只保留关键列，避免横向滚动 */
  .wb-table th:nth-child(2), .wb-table td:nth-child(2),
  .wb-table th:nth-child(4), .wb-table td:nth-child(4),
  .wb-table th:nth-child(5), .wb-table td:nth-child(5) { display: none; }
  .wb-table { font-size: 11px; }
  .wb-table th, .wb-table td { padding: 6px 7px; }
  .wb-chat { width: 100%; height: 58%; }
  .wb-teamgrid, .wb-marketgrid { grid-template-columns: minmax(0, 1fr); }
  .wb-agentview__side { grid-template-columns: minmax(0, 1fr); }
  .wb-dimtabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wb-attr { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-office__top { position: static; width: auto; margin: 12px; }
  .wb-office__side, .wb-office__cameras { position: static; width: auto; margin: 12px; }
  .wb-office { min-height: 0; }
  .wb-office__scene { position: relative; height: auto; aspect-ratio: 997 / 541; }
  .wb-refs { flex-direction: column; }
  .wb-refs li { flex-direction: row; align-items: center; }
  .wb-refs__thumb { width: 44px; }
}

@media (max-width: 520px) {
  .wb-viewhead { gap: 10px; }
  .wb-cand__stats { grid-template-columns: minmax(0, 1fr); }
  .wb-chat { height: 66%; }
  .wb-kv, .wb-kv--3 { grid-template-columns: minmax(0, 1fr); }
  .wb-profile__meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-viewhead__left, .wb-viewhead__tools { flex-wrap: wrap; width: 100%; }
  .wb-viewhead__tools { gap: 6px; }
  .wb-seg { flex-wrap: wrap; }
  .wb-btn { padding: 0 12px; font-size: 12px; }
  .wb-office__top, .wb-office__side, .wb-office__cameras { margin: 10px; }
  .wb-office__top { padding: 14px 16px 12px; }
  .wb-office__title { font-size: 18px; }
  .wb-agentview__side { gap: 8px; }
  .wb-review__acts { flex-wrap: wrap; }
}

@media (max-width: 820px) {
  .wb-office.is-screen .wb-office__top,
  .wb-office.is-screen .wb-office__side,
  .wb-office.is-screen .wb-office__cameras { margin: 10px; }
}

/* ==========================================================================
   通用交互态：按下 / 禁用（v1）
   之前全站只有 166 处悬停反馈、按下反馈只有 2 处（而且都是「回到原位」，
   等于没反应）——点下去没动静，按钮就会显得像是画上去的、不能真点。
   这里用一条全局层补齐：任何能点的东西按下瞬间下沉 1px 并压暗 8%，
   松开立刻回弹，键盘 / 触屏 / 鼠标都吃这一口。
   放在文件末尾：同权重时靠源码顺序盖过前面各组件 :hover 的抬升。
   ========================================================================== */
html :is(button, [role="button"], summary, [data-act], [data-hub], [data-bld], [data-skwf]):active:not(:disabled) {
  transform: translateY(1px);
  filter: brightness(.9);
  transition-duration: 80ms;
}
html .dk-showdesk:active { transform: none; filter: brightness(1.25); }

/* 禁用态：灰掉 + 明确「现在按不动」 */
html :is(button, input, select, textarea):disabled,
html :is(button, [role="button"])[aria-disabled="true"] {
  opacity: .45; cursor: not-allowed; transform: none; filter: none;
}

/* ==========================================================================
   微聊 · 左栏三页导航（消息 / 通讯录 / 设置）+ 微聊设置页
   参照桌面版聊天软件：左栏底部一条导航，切的是「左栏这一列」；
   设置是 App 自己的设置（不是系统设置），占中间 + 右栏两块位置。
   ========================================================================== */
.wb-im__panel { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.wb-im__panel > .wb-im__abook { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 6px 8px; scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .22) transparent; }
.wb-im__panel > .wb-im__abook::-webkit-scrollbar { width: 6px; }
.wb-im__panel > .wb-im__abook::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .2); border-radius: 999px; }
.wb-im__empty { margin: 14px 12px; font-size: 11px; line-height: 1.7; color: var(--wb-ink-45); }

/* 通讯录 / 设置目录里的分组小标题 */
.wb-im__abhead { display: flex; align-items: center; gap: 6px; padding: 12px 10px 4px; font-size: 12.5px; color: var(--wb-ink-45); }
.wb-im__abhead i { font-style: normal; font-size: 12px; padding: 0 5px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .12); color: var(--wb-ink-60); }
.wb-im__abook .wb-im__convs { padding: 0 0 6px; }
.wb-im__secico { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: none; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink-75); }
.wb-im__secico .wb-icon { width: 17px; height: 17px; }
.wb-im__abook .wb-conv__meta .wb-icon { width: 14px; height: 14px; color: var(--wb-ink-45); }
/* 通讯录里，当前正开着的那个会话淡淡标出来 */
.wb-im__abook .wb-conv[data-current="1"] { background: rgba(var(--wb-ink-rgb), .13); }

/* 底部三格导航 */
.wb-im__nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; flex: none; padding: 6px 7px 7px; border-top: 1px solid rgba(var(--wb-ink-rgb), .1); background: rgba(var(--wb-ink-rgb), .04); }
.wb-im__nav button { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 2px 5px; border: 0; border-radius: 12px; background: transparent; color: var(--wb-ink-45); font: inherit; font-size: 12px; cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-im__nav button .wb-icon { width: 17px; height: 17px; }
.wb-im__nav button b { font-weight: 400; }
.wb-im__nav button:hover { background: rgba(var(--wb-ink-rgb), .12); color: var(--wb-ink); }
.wb-im__nav button.is-on { color: #a9efdd; background: rgba(169, 239, 221, .16); }
.wb-im__nav button.is-on b { font-weight: 600; }
.wb-im__navbadge { position: absolute; top: 2px; right: 6px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: #c82a1c; color: var(--wb-ink); font-size: 11.5px; font-weight: 600; font-style: normal; line-height: 19px; text-align: center; box-shadow: 0 0 0 2px rgba(14, 24, 24, .8); }

/* 右上角两颗（语音 + 三个点）做成同一款小方按钮 */
.wb-im__iconbtn { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 28px; border: 0; border-radius: 9px; background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink-75); cursor: pointer; transition: background-color .18s var(--wb-ease), color .18s var(--wb-ease); }
.wb-im__iconbtn .wb-icon { width: 16px; height: 16px; }
.wb-im__iconbtn:hover { background: rgba(var(--wb-ink-rgb), .24); color: var(--wb-ink); }
.wb-im__more { margin-left: -3px; }

/* 设置页：占左边那块底盘之外的另一半（底盘已经是整块卡片，这里不再套一层卡） */
.wb-imsets { display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; }
.wb-imsets__head2 { display: flex; flex-direction: column; gap: 3px; padding: 14px 18px 11px; border-bottom: 1px solid rgba(var(--wb-ink-rgb), .1); }
.wb-imsets__head2 b { display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; color: var(--wb-ink); font-weight: 500; }
.wb-imsets__head2 b .wb-icon { width: 17px; height: 17px; color: var(--wb-ink-60); }
.wb-imsets__head2 i { font-style: normal; font-size: 11px; color: var(--wb-ink-45); }
.wb-imsets__scroll { flex: 1; min-height: 0; overflow-y: auto; padding: 14px 18px 18px; display: flex; flex-direction: column; gap: 12px; scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .22) transparent; }
.wb-imsets__scroll::-webkit-scrollbar { width: 6px; }
.wb-imsets__scroll::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .2); border-radius: 999px; }
.wb-imsets__card { padding: 14px 16px 12px; border-radius: 18px; background: rgba(var(--wb-ink-rgb), .055); scroll-margin-top: 10px; }
.wb-imsets__head { display: flex; align-items: center; gap: 7px; margin-bottom: 8px; font-size: 12.5px; color: var(--wb-ink); }
.wb-imsets__head .wb-icon { width: 15px; height: 15px; color: var(--wb-ink-60); }
.wb-imset { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 9px 0; border-top: 1px solid rgba(var(--wb-ink-rgb), .08); }
.wb-imsets__card .wb-imset:first-of-type { border-top: 0; }
.wb-imset__txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wb-imset__txt b { font-size: 12px; color: var(--wb-ink); font-weight: 500; }
.wb-imset__txt i { font-style: normal; font-size: 12.5px; line-height: 1.6; color: var(--wb-ink-45); }
.wb-imsets__note { margin: 6px 0 0; font-size: 12.5px; line-height: 1.7; color: var(--wb-ink-45); }
.wb-imsets__p { margin: 0; font-size: 11.5px; line-height: 1.75; color: var(--wb-ink-75); }
.wb-imsets .wb-chiprow { flex: none; gap: 6px; }

/* 微聊设置 · 员工怎么称呼你：输入框别撑破卡片，预览那句用亮色点出来 */
.wb-imset__call { width: 150px; flex: none; text-align: left; }
.wb-imset--picks .wb-chiprow { justify-content: flex-end; }
.wb-imsets__note b { color: var(--wb-ink); font-weight: 400; }

/* 微聊头像统一成圆形：会话列表 / 对话气泡 / 群九宫格 / 会话标题 / 已读小卡 / 资料浮层与群成员 / @ 选择器 / 建群选人 */
.wb-conv__av,
.wb-conv__av--sm,
.wb-msg__av,
.wb-readpop__av,
.wb-im__headav,
.wb-im__info .wb-avatar-sm,
.wb-im__info .wb-avatar-lg,
.wb-mention .wb-avatar-sm,
.wb-pickgrid .wb-avatar-sm { border-radius: 50%; }
/* 群头像：裁圆的是里面那层九宫格，外面这层保持方形不裁剪 —— 否则右上角的未读角标会被一起切掉 */
.wb-gav { background: transparent; }
.wb-gav__grid { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
  width: 100%; height: 100%; border-radius: 50%; overflow: hidden; background: rgba(120, 140, 145, .5); }
/* 清空聊天记录之后 / 新会话：对话区中间的空态（微聊只说话，不摆一堆空卡片） */
.wb-im__blank { flex: 1; min-height: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 7px; padding: 24px; text-align: center; }
.wb-im__blank .wb-icon { width: 26px; height: 26px; color: rgba(var(--wb-ink-rgb), .28); }
.wb-im__blank b { font-size: 13px; color: var(--wb-ink); font-weight: 500; }
.wb-im__blank i { font-style: normal; font-size: 11.5px; line-height: 1.7; color: var(--wb-ink-45); max-width: 330px; }
/* 没接模型：对话区顶上一条明示（v0.1.100）。不是报错，是说明「员工只会念台词」，右边给一条去接的捷径 */
.wb-im__notice { flex: none; display: flex; align-items: center; gap: 7px; margin: 0 16px; padding: 7px 10px;
  border-radius: 10px; background: rgba(242, 185, 104, .12); box-shadow: inset 0 0 0 1px rgba(242, 185, 104, .22);
  font-size: 12px; line-height: 1.5; color: #ffd79a; }
.wb-im__notice .wb-icon { flex: none; width: 13px; height: 13px; }
.wb-im__notice span { flex: 1; min-width: 0; }
.wb-im__notice b { font-weight: 600; }
.wb-im__notice button { flex: none; border: 0; border-radius: 8px; padding: 4px 10px; cursor: pointer; font: inherit;
  font-size: 12px; background: rgba(242, 185, 104, .9); color: #2a1d05; }
.wb-im__notice button:hover { background: #ffd79a; }

/* ==========================================================================
   系统 ↔ App 边界（v1）
   App 之间不许互相跳转：原来那些「去某某 App」的按钮全换成这一行灰字，
   只说明这件事归谁管，不再假装能点。跨 App 的唯一通道是系统层
   （桌面图标 / 开始菜单 / 通知中心 / 深链接 / 头像菜单）。
   ========================================================================== */
.wb-owner { display: flex; align-items: center; font-size: 11.5px; line-height: 1.7; color: var(--wb-ink-45); }

/* ==========================================================================
   微聊 · 对话区背景（v0.1.68）
   原来那层「动态彩色背景」（红/黄/绿/蓝四团彩光 + 六边形点屏 + 6s 色相环，一直在动）
   用户觉得太突兀，整块删掉；换成几套**静态、克制**的底纹，都铺在同一个 ::before 上。
   微聊设置 → 聊天显示 →「聊天背景」里挑，默认 none（纯色，什么都不铺）。
   ========================================================================== */
.wb-im__thread::before {
  content: ""; position: absolute; inset: 0; z-index: 0; display: none; pointer-events: none;
}
.wb-im__thread[data-bg="aurora"]::before,
.wb-im__thread[data-bg="dots"]::before,
.wb-im__thread[data-bg="grid"]::before,
.wb-im__thread[data-bg="ripple"]::before,
.wb-im__thread[data-bg="stars"]::before { display: block; }

/* 极光：四角淡淡的光晕，青绿 ↔ 靛蓝 */
.wb-im__thread[data-bg="aurora"]::before,
.wb-bgs__prev[data-bg-prev="aurora"] {
  background-color: #0b1517;
  background-image:
    radial-gradient(90% 72% at 8% -8%, rgba(56, 189, 178, .26), rgba(56, 189, 178, 0) 62%),
    radial-gradient(82% 68% at 104% 10%, rgba(96, 124, 214, .24), rgba(96, 124, 214, 0) 64%),
    radial-gradient(120% 90% at 50% 118%, rgba(30, 96, 96, .34), rgba(30, 96, 96, 0) 66%);
}
/* 点阵：16px 一颗小圆点 */
.wb-im__thread[data-bg="dots"]::before,
.wb-bgs__prev[data-bg-prev="dots"] {
  background-color: #0d1719;
  background-image: radial-gradient(circle at 50% 50%, rgba(var(--wb-ink-rgb), .085) 1.1px, rgba(var(--wb-ink-rgb), 0) 1.6px);
  background-size: 16px 16px;
}
/* 网格：26px 一格的细线 + 顶上一点青光 */
.wb-im__thread[data-bg="grid"]::before,
.wb-bgs__prev[data-bg-prev="grid"] {
  background-color: #0d1719;
  background-image:
    linear-gradient(to right, rgba(var(--wb-ink-rgb), .05) 1px, rgba(var(--wb-ink-rgb), 0) 1px),
    linear-gradient(to bottom, rgba(var(--wb-ink-rgb), .05) 1px, rgba(var(--wb-ink-rgb), 0) 1px),
    radial-gradient(120% 90% at 50% -12%, rgba(72, 170, 170, .14), rgba(72, 170, 170, 0) 60%);
  background-size: 26px 26px, 26px 26px, 100% 100%;
}
/* 微波：从底边一圈圈荡开的细纹 */
.wb-im__thread[data-bg="ripple"]::before,
.wb-bgs__prev[data-bg-prev="ripple"] {
  background-color: #0c1618;
  background-image: repeating-radial-gradient(circle at 50% 124%,
    rgba(126, 205, 214, .11) 0 1px, rgba(126, 205, 214, 0) 1px 44px);
}
/* 星空：稀疏的星点，240px 一块重复 */
.wb-im__thread[data-bg="stars"]::before,
.wb-bgs__prev[data-bg-prev="stars"] {
  background-color: #0a1416;
  background-image:
    radial-gradient(1.3px 1.3px at 22% 26%, rgba(var(--wb-ink-rgb), .5), rgba(var(--wb-ink-rgb), 0)),
    radial-gradient(1px 1px at 68% 14%, rgba(var(--wb-ink-rgb), .36), rgba(var(--wb-ink-rgb), 0)),
    radial-gradient(1.1px 1.1px at 44% 74%, rgba(var(--wb-ink-rgb), .30), rgba(var(--wb-ink-rgb), 0)),
    radial-gradient(1px 1px at 86% 62%, rgba(var(--wb-ink-rgb), .26), rgba(var(--wb-ink-rgb), 0)),
    radial-gradient(1.2px 1.2px at 12% 88%, rgba(var(--wb-ink-rgb), .22), rgba(var(--wb-ink-rgb), 0));
  background-size: 240px 240px;
}
/* 内容压在底纹之上（::before 是定位元素，不抬一层会盖住正文） */
.wb-im__thread[data-bg]:not([data-bg="none"]) > * { position: relative; z-index: 1; }
/* 顶栏（会话标题 / 语音 / ···）和底部输入条不吃底纹：各铺一层实底盖住，
   底纹只在中间那一段消息区里露出来（用户：这两个区域不需要被壁纸填充） */
.wb-im__thread[data-bg]:not([data-bg="none"]) .wb-im__head,
.wb-im__thread[data-bg]:not([data-bg="none"]) .wb-im__composer { background: #0e1a1a; }

/* 背景选择器：一排小样张（微聊设置 → 聊天显示） */
.wb-bgs { display: flex; flex-wrap: wrap; gap: 8px; }
.wb-bgs__item {
  display: flex; flex-direction: column; align-items: center; gap: 6px; width: 74px; padding: 6px 0 7px;
  border: 1px solid rgba(var(--wb-ink-rgb), .12); border-radius: 12px; background: rgba(var(--wb-ink-rgb), .05);
  color: var(--wb-ink-75); font: inherit; font-size: 11px; cursor: pointer;
  transition: border-color .18s var(--wb-ease), background-color .18s var(--wb-ease), transform .18s var(--wb-ease);
}
.wb-bgs__item:hover { background: rgba(var(--wb-ink-rgb), .1); transform: translateY(-1px); }
.wb-bgs__item.is-on { border-color: rgba(88, 214, 200, .72); background: rgba(88, 214, 200, .12); color: var(--wb-ink); }
.wb-bgs__item b { font-weight: 500; }
.wb-bgs__prev {
  display: block; width: 56px; height: 34px; border-radius: 8px; background-color: #0d1719;
  box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .1);
  /* 样张只有 56×34：这些底纹本来就淡，缩到这么小再不打亮一点就什么都看不出来
     （只影响这一排小样张，真正铺在对话区的那层用原值） */
  filter: brightness(1.45) saturate(1.15);
}
.wb-bgs__prev[data-bg-prev="none"] { background-image: linear-gradient(160deg, #0e1a1a, #0b1416); }

/* ==========================================================================
   通讯录 · 员工资料页（版式照微信的「联系人详情」：大头像 + 分节资料 + 底部三个动作）
   中间 + 右栏一起用，所以宽度是聊天区那两格
   ========================================================================== */
.wb-prof { container-type: inline-size; display: flex; flex-direction: column; min-height: 0; }
.wb-prof__head { display: flex; align-items: flex-start; gap: 8px; padding: 12px 14px 2px; }
.wb-prof__head .wb-im__headtext { flex: 1; min-width: 0; overflow: hidden; }
.wb-prof__head .wb-im__headtext b { font-size: 14px; }
.wb-prof__head .wb-im__headtext i { display: block; margin-top: 2px; font-size: 11.5px; color: var(--wb-ink-45); font-style: normal; }
.wb-prof__body {
  flex: 1; min-height: 0; overflow: auto;
  padding: 8px 14px 14px;
  width: 100%; max-width: 1040px; margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 1fr);
  grid-template-rows: min-content auto;
  align-content: center;   /* 窗口很高时，这一叠内容在面板里居中，不把每一行拉松 */
  gap: 12px;
}
/* 面板够宽（窗口拉大 / 最大化）时，两张资料卡并排；用容器查询，看的是这一块自己的宽 */
@container (min-width: 640px) {
  .wb-prof__body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* 上面那条「大头像 + 名字」和下面那排动作横跨整行；两张资料卡在窗口宽的时候并排 */
.wb-prof__hero { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; padding: 16px 18px; }
.wb-prof__body > .wb-remarkedit { grid-column: 1 / -1; max-width: 560px; }
.wb-prof__av {
  flex: none; width: 66px; height: 66px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 25px; font-weight: 700; color: #06231f;
  background:
    radial-gradient(120% 120% at 30% 18%, rgba(var(--wb-ink-rgb), .78), rgba(var(--wb-ink-rgb), 0) 62%),
    var(--c, #7fd8c3);
  box-shadow: 0 12px 24px rgba(3, 12, 12, .34), inset 0 0 0 1px rgba(var(--wb-ink-rgb), .34);
}
.wb-prof__who { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.wb-prof__name { display: inline-flex; align-items: center; gap: 7px; font-size: 18px; line-height: 1.2; font-weight: 700; color: var(--wb-ink); }
.wb-prof__name .wb-editpen { opacity: .35; transition: opacity .16s var(--wb-ease); }
.wb-prof__name:hover .wb-editpen { opacity: 1; }
.wb-prof__sub { font-size: 12.5px; color: var(--wb-ink-60); font-style: normal; }
.wb-prof__card { padding: 14px 16px 12px; display: flex; flex-direction: column; gap: 7px; }
.wb-prof__card .wb-im__infotitle { margin-bottom: 3px; }
/* 三个动作是面板自己的一行（在滚动区之外）：资料多长都看得见，也不会被内容压住 */
.wb-prof__acts {
  flex: none; width: calc(100% - 28px); max-width: 1040px; margin: 0 auto 14px;
  display: flex; justify-content: space-around; gap: 6px; padding: 10px 8px;
}
.wb-prof__act {
  flex: 1; display: flex; flex-direction: column; align-items: center; gap: 7px;
  padding: 8px 6px 7px; border: 0; border-radius: 16px;
  background: transparent; color: var(--wb-ink); font: inherit; cursor: pointer;
  transition: background-color .16s var(--wb-ease), transform .16s var(--wb-ease);
}
.wb-prof__act:hover { background: rgba(var(--wb-ink-rgb), .11); transform: translateY(-1px); }
.wb-prof__act i {
  display: flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  background: rgba(var(--wb-ink-rgb), .14);
  box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .16);
}
.wb-prof__act i svg { width: 20px; height: 20px; }
.wb-prof__act b { font-size: 11.5px; font-weight: 500; }
.wb-prof__acts .wb-prof__act:first-child i { background: rgba(125, 226, 195, .26); box-shadow: inset 0 0 0 1px rgba(125, 226, 195, .34); }
@media (max-width: 1180px) {
  .wb-prof__av { width: 56px; height: 56px; font-size: 21px; }
  .wb-prof__name { font-size: 16px; }
}

/* ---------- 项目访谈采集单：一题一行，点开就写答案 ---------- */
.wb-ivsec { padding-bottom: 14px; }
.wb-ivbar { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font-size: 11px; color: var(--wb-ink-60); font-variant-numeric: tabular-nums; }
.wb-ivbar__track { flex: 1; height: 5px; border-radius: 3px; background: rgba(var(--wb-ink-rgb), .12); overflow: hidden; }
.wb-ivbar__track i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, #7fd8c3, #a9e6cf); transition: width .25s var(--wb-ease); }
.wb-ivbar b { font-size: 12px; font-weight: 500; color: var(--wb-ink); }
.wb-ivlist { display: flex; flex-direction: column; gap: 14px; }
.wb-ivgroup { display: flex; flex-direction: column; gap: 5px; }
.wb-ivgroup__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 3px 2px; color: var(--wb-ink-45); }
.wb-ivgroup__head b { font-size: 12px; font-weight: 500; color: var(--wb-ink-90); }
.wb-ivgroup__head span { font-size: 12.5px; }
.wb-ivrow { border-radius: 13px; background: rgba(var(--wb-ink-rgb), .05); }
.wb-ivrow.is-open { background: rgba(var(--wb-ink-rgb), .09); }
.wb-ivrow__head { display: grid; grid-template-columns: 30px minmax(0, 1fr) minmax(0, 190px) auto auto; align-items: center; gap: 9px; width: 100%; padding: 9px 12px; border: 0; border-radius: 13px; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: background-color .18s var(--wb-ease); }
.wb-ivrow__head:hover { background: rgba(var(--wb-ink-rgb), .07); }
.wb-ivrow__no { font-size: 12.5px; color: var(--wb-ink-45); font-variant-numeric: tabular-nums; text-align: right; }
.wb-ivrow__t { font-size: 12px; line-height: 1.5; color: var(--wb-ink); }
.wb-ivrow__req { margin-left: 6px; padding: 1px 6px; border-radius: 999px; background: rgba(242, 185, 104, .2); color: #ffd79a; font-size: 12px; font-style: normal; }
.wb-ivrow__sum { font-size: 11px; color: var(--wb-ink-60); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-ivrow__sum.is-empty { color: var(--wb-ink-45); }
.wb-ivrow__src { font-size: 12px; color: var(--wb-ink-45); white-space: nowrap; }
.wb-ivrow__body { display: flex; flex-direction: column; gap: 9px; padding: 4px 12px 12px 51px; }
.wb-ivrow__ans { height: auto; min-height: 62px; font-size: 12px; line-height: 1.8; resize: vertical; }
.wb-ivrow__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.wb-ivrow__k { font-size: 12.5px; color: var(--wb-ink-45); }
.wb-ivrow__meta .wb-chiprow { gap: 5px; }
.wb-ivrow__meta .wb-tag { cursor: pointer; border: 0; font-family: inherit; }
.wb-ivrow__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.wb-ivrow__at { font-size: 12px; color: var(--wb-ink-45); }
.wb-ivline { display: flex; align-items: center; gap: 9px; }
.wb-ivline > span { flex: none; width: 42px; font-size: 11px; color: var(--wb-ink-45); }
.wb-ivline .wb-input { flex: 1; min-width: 0; }
.wb-ivcheck { display: flex; align-items: center; gap: 7px; font-size: 11px; color: var(--wb-ink-75); }
.wb-ivadd { display: flex; flex-direction: column; gap: 9px; margin: 0 0 12px; padding: 12px 13px; border-radius: 14px; border: 1px dashed rgba(127, 216, 195, .4); background: rgba(127, 216, 195, .08); }
@media (max-width: 1180px) {
  .wb-ivrow__head { grid-template-columns: 28px minmax(0, 1fr) auto auto; }
  .wb-ivrow__sum { display: none; }
  .wb-ivrow__body { padding-left: 12px; }
}
.wb-ivrow__qtop { display: flex; align-items: center; gap: 9px; font-size: 12.5px; color: var(--wb-ink); }
.wb-ivrow__qtop b { font-weight: 500; line-height: 1.5; }
.wb-ivrow__qtop .wb-ivrow__no { flex: none; }

/* 系统设了「减少动态效果」：项目画廊直接换位，不做过渡 */
@media (prefers-reduced-motion: reduce) {
  .wb-projgal.is-anim .wb-pgpanel,
  .wb-projgal.is-anim .wb-pgpanel__media,
  .wb-pgpanel__spine,
  .wb-pgpanel__body > * { transition: none; }
}

/* ==========================================================================
   管理后台 · 平台基建（assets/js/platform.js）
   管理后台分两段：员工出厂设定 / 平台基建。这一段只服务后者，以及两段之间的切换条。
   配色、圆角、玻璃感全部沿用现有变量 —— 不新开一套皮，也不再借 models.css 的表样式。
   ========================================================================== */
.wb-admshell { display: flex; flex-direction: column; flex: 1; min-height: 0; gap: 10px; }
.wb-admshell .wb-boardtabs { margin-bottom: 0; }
.wb-admshell__body { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.wb-admshell__body > .wb-view { flex: 1; min-height: 0; }

.wb-plat {
  flex: 1; min-height: 0; overflow-y: auto;
  display: flex; flex-direction: column; gap: 12px; padding-right: 4px;
  scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .24) transparent;
}
.wb-plat::-webkit-scrollbar { width: 7px; }
.wb-plat::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .22); border-radius: 999px; }

.wb-viewhead--sub { padding-bottom: 2px; }
.wb-viewhead--sub .wb-viewhead__title { font-size: 20px; }

.wb-plat__card { display: flex; flex-direction: column; gap: 8px; padding: 13px 15px; }
.wb-plat__card > h4 { display: flex; align-items: center; gap: 7px; margin: 0; font-size: 12.5px; font-weight: 500; color: var(--wb-ink); }
.wb-plat__card > h4 .wb-icon { width: 15px; height: 15px; color: var(--wb-ink-60); }
.wb-plat__card > h4 em { margin-left: auto; font-size: 12.5px; font-style: normal; color: var(--wb-ink-45); }

/* 供能方式：两张可选卡（选中的那张有明确的边与底色，不靠一个不明显的小点） */
.wb-plat__two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.wb-plat__pick {
  display: flex; flex-direction: column; gap: 5px; padding: 12px 13px; text-align: left;
  border: 1px solid rgba(var(--wb-ink-rgb), .14); border-radius: 16px; background: rgba(var(--wb-ink-rgb), .05);
  color: var(--wb-ink-75); font: inherit; cursor: pointer;
  transition: background-color .2s var(--wb-ease), border-color .2s var(--wb-ease), transform .2s var(--wb-ease);
}
.wb-plat__pick:hover:not([disabled]) { background: rgba(var(--wb-ink-rgb), .1); transform: translateY(-1px); }
.wb-plat__pick b { font-size: 13px; font-weight: 600; color: var(--wb-ink); }
.wb-plat__pick span { font-size: 11.5px; line-height: 1.65; color: var(--wb-ink-60); }
.wb-plat__pick i { margin-top: 2px; font-size: 11px; font-style: normal; color: var(--wb-ink-45); }
.wb-plat__pick.is-on { border-color: rgba(127, 216, 195, .55); background: rgba(127, 216, 195, .14); box-shadow: inset 0 0 0 1px rgba(127, 216, 195, .2); }
.wb-plat__pick[disabled] { cursor: default; opacity: .8; }

.wb-plat__note { display: flex; align-items: flex-start; gap: 7px; margin: 2px 0 0; font-size: 11.5px; line-height: 1.75; color: var(--wb-ink-60); }
.wb-plat__note .wb-icon { flex: none; width: 14px; height: 14px; margin-top: 3px; color: var(--wb-ink-45); }
.wb-plat__note b { color: var(--wb-ink); font-weight: 500; }
.wb-plat__alarm {
  display: flex; align-items: flex-start; gap: 7px; margin: 4px 0 0; padding: 9px 11px; border-radius: 12px;
  background: rgba(255, 127, 109, .14); box-shadow: inset 0 0 0 1px rgba(255, 127, 109, .3);
  font-size: 11.5px; line-height: 1.7; color: #ffd2cb;
}
.wb-plat__alarm .wb-icon { flex: none; width: 14px; height: 14px; margin-top: 3px; }

/* 能力清单表 */
.wb-plat__tablewrap { margin: 2px -2px 0; overflow-x: auto; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .04); box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .06); }
.wb-plat__tablewrap::-webkit-scrollbar { height: 8px; }
.wb-plat__tablewrap::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .2); border-radius: 999px; }
.wb-plat__table { width: 100%; min-width: 560px; border-collapse: collapse; }
.wb-plat__table th, .wb-plat__table td { padding: 9px 12px; text-align: left; vertical-align: middle; font-size: 11.5px; line-height: 1.6; color: var(--wb-ink-75); border-bottom: 1px solid rgba(var(--wb-ink-rgb), .07); }
.wb-plat__table th { font-weight: 500; color: var(--wb-ink-45); background: rgba(var(--wb-ink-rgb), .05); white-space: nowrap; }
.wb-plat__table tr:last-child td { border-bottom: 0; }
.wb-plat__table td b { display: block; color: var(--wb-ink); font-weight: 600; }
.wb-plat__table td i { font-style: normal; font-size: 11px; color: var(--wb-ink-45); }

/* 用量小卡 */
.wb-plat__use { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.wb-plat__use > div { flex: 1 1 108px; display: flex; flex-direction: column; gap: 3px; padding: 9px 11px; border-radius: 13px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-plat__use i { font-style: normal; font-size: 11px; color: var(--wb-ink-45); }
.wb-plat__use b { font-size: 13px; font-weight: 600; color: var(--wb-ink); font-variant-numeric: tabular-nums; }
.wb-plat__use b.is-over { color: #ffbdb2; }

.plat-hint { font-style: normal; font-size: 11px; color: var(--wb-ink-45); }
.plat-hint--blk { display: block; margin: 3px 0 2px 102px; }
.plat-need { font-style: normal; font-size: 11px; color: var(--wb-ink-45); }
.plat-dash { color: rgba(var(--wb-ink-rgb), .3); }
/* 接口地址这种长串要能一眼看全（.wb-input 默认只有内容那么宽） */
.wb-input--wide { width: 100%; max-width: 460px; }

/* 密钥框：管理后台这一侧的写法（观感与系统设置里的 dk-pwd 一致，但类名归 App 这边） */
.wb-pwdin { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
.wb-pwd {
  flex: 1; min-width: 0; height: 30px; padding: 0 11px;
  border: 0; border-radius: 9px; outline: 0;
  background: rgba(var(--wb-ink-rgb), .12); color: var(--wb-ink);
  font-size: 12px; letter-spacing: .16em;
  transition: background-color .16s var(--wb-ease), box-shadow .16s var(--wb-ease);
}
.wb-pwd[type="text"] { letter-spacing: .04em; }
.wb-pwd::placeholder { color: var(--wb-ink-45); letter-spacing: 0; }
.wb-pwd:focus { background: rgba(var(--wb-ink-rgb), .18); box-shadow: inset 0 0 0 1px rgba(127, 216, 195, .5); }
.wb-pwdeye {
  flex: none; width: 30px; height: 30px; border: 0; border-radius: 9px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(var(--wb-ink-rgb), .12); color: var(--wb-ink-75);
  transition: background-color .16s var(--wb-ease);
}
.wb-pwdeye:hover { background: rgba(var(--wb-ink-rgb), .2); }
.wb-pwdeye svg { width: 15px; height: 15px; }
.wb-pwdeye.is-on { background: rgba(127, 216, 195, .26); color: #d7fff4; }

/* 按钮式开关：.wb-switch 原本是 checkbox + span 的写法，平台基建这几行用的是 <button>，
   补上「is-on」这一档，免得开关点下去看不出开没开 */
.wb-switch span.is-on { background: #5fc9b4; }
.wb-switch span.is-on::after { transform: translateX(16px); }
button.wb-switch { padding: 0; border: 0; background: transparent; cursor: pointer; }

/* 卡片底部的动作条 */
.wb-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 4px; }

@media (max-width: 900px) {
  .wb-plat__two { grid-template-columns: minmax(0, 1fr); }
  .plat-hint--blk { margin-left: 0; }
}

/* ==================== 平台更新 / 升级（v0.1.90） ====================
   员工详情右栏的「平台更新」卡 + 逐项明细的对话框。
   规则就一句：客户自己改过的项默认保留，勾了的才跟平台。 */
.wb-upgcard { padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; border: 1px solid rgba(126, 216, 255, .28); }
.wb-upgcard__text { margin: 0; font-size: 12.5px; line-height: 1.7; color: var(--wb-ink-70); }
.wb-upgcard__text b { color: var(--wb-ink); }
.wb-upgcard .wb-btn { align-self: flex-start; }
.wb-upgbadge { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; padding: 1px 6px; border-radius: 999px; font-size: 10.5px; font-style: normal; font-weight: 500; color: #0d2a33; background: linear-gradient(120deg, #8fe6f5, #b6e08a); vertical-align: middle; }
.wb-upgbadge .wb-icon { width: 10px; height: 10px; }
.wb-agentcard__upg { display: block; margin: -2px 0 2px; }

.wb-upgdlg { width: min(720px, 100%); gap: 10px; }
.wb-upglist { list-style: none; margin: 0; padding: 0; max-height: 46vh; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; }
.wb-upgrow { display: grid; grid-template-columns: 26px minmax(120px, 30%) minmax(0, 1fr); align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .04); border: 1px solid transparent; }
.wb-upgrow.is-conflict { background: rgba(255, 196, 120, .1); border-color: rgba(255, 196, 120, .34); }
.wb-upgrow.is-plain { grid-template-columns: minmax(0, 1fr); }
.wb-upgrow__k { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.wb-upgrow__k b { font-size: 12.5px; font-weight: 600; color: var(--wb-ink); }
.wb-upgrow__tag { font-size: 10.5px; font-style: normal; color: var(--wb-ink-45); }
.wb-upgrow__tag.is-conflict { color: #e8a45c; }
.wb-upgrow__tag.is-auto { color: var(--wb-ink-45); }
.wb-upgrow__v { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 12px; line-height: 1.6; }
.wb-upgrow__from { color: var(--wb-ink-45); text-decoration: line-through; text-decoration-color: rgba(var(--wb-ink-rgb), .3); overflow-wrap: anywhere; }
.wb-upgrow__arrow { font-style: normal; color: var(--wb-ink-45); flex: none; }
.wb-upgrow__to { color: var(--wb-ink); overflow-wrap: anywhere; }
.wb-upgrow__masked { display: inline-flex; align-items: center; gap: 5px; color: var(--wb-ink-45); font-size: 11.5px; }
.wb-upgrow__masked .wb-icon { width: 12px; height: 12px; }
.wb-uptick { display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; padding: 0; border: 1px solid rgba(var(--wb-ink-rgb), .22); border-radius: 7px; background: transparent; color: var(--wb-ink-45); cursor: pointer; transition: all .16s var(--wb-ease); }
.wb-uptick .wb-icon { width: 12px; height: 12px; }
.wb-uptick:hover { border-color: rgba(var(--wb-ink-rgb), .45); color: var(--wb-ink); }
.wb-uptick.is-on { border-color: transparent; background: linear-gradient(120deg, #8fe6f5, #b6e08a); color: #0d2a33; }
.wb-uptick--auto { border-color: transparent; background: rgba(var(--wb-ink-rgb), .07); cursor: default; }
.wb-uptick--auto:hover { border-color: transparent; color: var(--wb-ink-45); }
.wb-upgdlg__rule { display: flex; align-items: flex-start; gap: 6px; margin: 0; font-size: 11.5px; line-height: 1.7; color: var(--wb-ink-45); }
.wb-upgdlg__rule .wb-icon { width: 12px; height: 12px; margin-top: 3px; flex: none; }

@media (max-width: 720px) {
  .wb-upgrow { grid-template-columns: 26px minmax(0, 1fr); }
  .wb-upgrow__v { grid-column: 2; }
}

/* v0.1.96 · 招聘需求（用户侧「我要招一个」+ 平台侧「招聘需求」那一段）
   用户侧那张单子：一行一个字段（活 / 本事 / 项目 / 结算 / 预算 / 人数 / 补充）；
   平台侧那一段：一张一张单子（抬头 + 要求 + 退回原因 + 受理线）。
   两边都沿用同一套墨色，不加新颜色 —— 状态色继续用 .wb-tag--wait / --ok / --no。 */

/* v0.1.99：v0.1.97 那条「两条路」方式带（.wb-doors / .wb-door）整块撤掉 ——
   抬头下面紧接着就是岗位方向，第二条路（写要求）的入口收进概览那格「我的招聘需求」，
   侧栏也各有一颗按钮。 */
.wb-marketbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0 0 12px; }

.wb-needpane { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 12px; }
.wb-needpane__form, .wb-needpane__mine {
  display: flex; flex-direction: column; gap: 10px;
  min-height: 0; padding: 14px 16px; border-radius: 22px;
  overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .24) transparent;
}
.wb-needpane__head { display: flex; align-items: center; gap: 8px; }
.wb-needpane__head b { font-size: 14px; font-weight: 500; color: var(--wb-ink); }
.wb-needpane__head .wb-icon { width: 15px; height: 15px; flex: none; color: #a9efdd; }
.wb-needpane__head .wb-btn { margin-left: auto; }
.wb-needpane__head i { margin-left: auto; font-style: normal; font-size: 11.5px; color: var(--wb-ink-45); }
.wb-needpane__tip { margin: 0; font-size: 12px; line-height: 1.65; color: var(--wb-ink-60); }
.wb-needpane__acts { display: flex; justify-content: flex-end; gap: 8px; margin-top: auto; padding-top: 4px; }

.wb-needform__row { display: flex; align-items: center; gap: 10px; }
.wb-needform__row > span { flex: none; width: 92px; font-size: 11.5px; color: var(--wb-ink-45); }
.wb-needform__row .wb-input { flex: 1; min-width: 0; }
.wb-needform__row--col { flex-direction: column; align-items: stretch; }
.wb-needform__row--col > span { width: auto; }
.wb-needform__block { display: flex; flex-direction: column; gap: 6px; }
.wb-needform__k { font-size: 11.5px; color: var(--wb-ink-45); }
.wb-needform__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.wb-needform__two { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.wb-needform__area { height: auto; min-height: 62px; padding: 7px 9px; line-height: 1.6; resize: vertical; font-family: inherit; }
@media (min-width: 900px) {
  .wb-needform__two { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wb-needform__two .wb-needform__row { flex-direction: column; align-items: flex-start; gap: 5px; }
  .wb-needform__two .wb-needform__row > span { width: auto; }
}
@media (max-width: 1080px) {
  /* 窄窗堆成一列：两张卡各自贴住内容，别被网格拉高成一大块空底板 */
  .wb-needpane { grid-template-columns: minmax(0, 1fr); grid-auto-rows: minmax(0, auto); align-content: start; overflow-y: auto; }
  .wb-needpane__form, .wb-needpane__mine { overflow: visible; }
  .wb-needpane__acts { margin-top: 0; }
}
.wb-needlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.wb-needlist__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .07); }
.wb-needlist__l { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.wb-needlist__l b { font-size: 13px; color: var(--wb-ink); }
.wb-needlist__l em { font-style: normal; font-size: 11.5px; color: var(--wb-ink-45); }
.wb-needlist__l p { margin: 2px 0 0; font-size: 11.5px; line-height: 1.55; color: var(--wb-ink-60); }
.wb-needlist__no { color: #ffbdb2; }
.wb-needlist__r { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.wb-needlist__r i { font-style: normal; font-size: 11px; color: var(--wb-ink-45); }

.wb-hiringview { display: flex; flex-direction: column; gap: 12px; }
.wb-hiring__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.wb-hiring__stat { display: flex; flex-direction: column; gap: 2px; padding: 9px 12px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .07); }
.wb-hiring__stat.is-hot { background: rgba(242, 185, 104, .16); box-shadow: inset 0 0 0 1px rgba(242, 185, 104, .28); }
.wb-hiring__stat i { font-style: normal; font-size: 11.5px; color: var(--wb-ink-45); }
.wb-hiring__stat b { font-size: 19px; color: var(--wb-ink); }
.wb-hiringlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.wb-hiringrow { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 12px 14px; border-radius: 16px; background: rgba(var(--wb-ink-rgb), .07); }
.wb-hiringrow.is-done { background: rgba(127, 216, 195, .1); }
.wb-hiringrow.is-no { background: rgba(255, 127, 109, .08); }
.wb-hiringrow__main { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.wb-hiringrow__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.wb-hiringrow__head b { font-size: 13.5px; color: var(--wb-ink); }
.wb-hiringrow__head i { font-style: normal; font-size: 11px; color: var(--wb-ink-45); }
.wb-hiringrow__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 11.5px; color: var(--wb-ink-60); }
.wb-hiringrow__meta span { display: inline-flex; align-items: center; gap: 5px; }
.wb-hiringrow__meta .wb-icon { width: 12px; height: 12px; color: var(--wb-ink-45); }
.wb-hiringrow__note { margin: 0; font-size: 12px; line-height: 1.6; color: var(--wb-ink-60); }
.wb-hiringrow__no { color: #ffbdb2; }
.wb-hiringrow__reason { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.wb-hiringrow__reason .wb-input { flex: 1; min-width: 200px; }
.wb-hiringrow__acts { flex: none; display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 700px) {
  .wb-hiring__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-hiringrow { flex-direction: column; }
  .wb-hiringrow__acts { flex-direction: row; flex-wrap: wrap; }
}

/* ==========================================================================
   v0.1.98 · BOSS直雇 整页重写：一页看清楚
   五层 —— 概览数字 → 两条路 → 岗位方向 → 筛选与排序 → 三栏（名单 / 简历 / 侧栏）。
   简历那一栏是有意做长的：用户在这里要下的判断，比「扫一眼头像」重得多。
   不加新颜色：墨色层级 + 青（在岗 / 能试岗）+ 琥珀（待受理）。
   ========================================================================== */

.wb-mkt-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(146px, 1fr)); gap: 8px; margin: 0 0 12px; }
.wb-mkt-stat {
  /* 扁一点：标签与数字同一行（数字靠右），说明另起一行小字 */
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 0 8px;
  padding: 7px 11px; border-radius: 14px;
  color: inherit; font: inherit; text-align: left;
  background: rgba(var(--wb-ink-rgb), .07);
  box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .08);
}
.wb-mkt-stat i { grid-column: 1; font-style: normal; font-size: 10.5px; color: var(--wb-ink-45); }
.wb-mkt-stat b { grid-column: 2; font-size: 16px; font-weight: 500; line-height: 1.2; letter-spacing: -.01em; color: var(--wb-ink); }
.wb-mkt-stat em { grid-column: 1 / -1; font-style: normal; font-size: 10px; color: var(--wb-ink-45); }
.wb-mkt-stat--go { border: 0; cursor: pointer; transition: background-color .18s var(--wb-ease); }
.wb-mkt-stat--go:hover { background: rgba(var(--wb-ink-rgb), .13); }
.wb-mkt-stat.is-hot { background: rgba(242, 185, 104, .14); box-shadow: inset 0 0 0 1px rgba(242, 185, 104, .26); }
.wb-mkt-stat.is-hot b { color: #ffd79a; }
.wb-mkt-stat.is-hot:hover { background: rgba(242, 185, 104, .2); }

/* 岗位方向：一颗一颗的胶囊，后面跟这一类现在有几个人 */
.wb-mkt-lanes { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.wb-mkt-lanes__k { display: inline-flex; align-items: center; gap: 5px; margin-right: 2px; font-size: 11.5px; color: var(--wb-ink-45); }
.wb-mkt-lanes__k .wb-icon { width: 13px; height: 13px; }
.wb-lane {
  display: inline-flex; align-items: center; gap: 5px;
  height: 26px; padding: 0 11px;
  border: 1px solid rgba(var(--wb-ink-rgb), .1); border-radius: 999px;
  background: rgba(var(--wb-ink-rgb), .05);
  color: var(--wb-ink-75); font: inherit; font-size: 12px; cursor: pointer;
  transition: background-color .16s var(--wb-ease), border-color .16s var(--wb-ease), color .16s var(--wb-ease);
}
.wb-lane em { font-style: normal; font-size: 10.5px; color: var(--wb-ink-45); }
.wb-lane:hover { background: rgba(var(--wb-ink-rgb), .1); color: var(--wb-ink); }
.wb-lane.is-on { background: rgba(127, 216, 195, .14); border-color: rgba(127, 216, 195, .3); color: var(--wb-ink); }
.wb-lane.is-on em { color: #a9efdd; }

.wb-marketbar__k { font-size: 11.5px; color: var(--wb-ink-45); }

/* 简历栏里的一块一块板：一条抬头 + 内容 */
.wb-mkt-block {
  flex: none;
  display: flex; flex-direction: column; gap: 9px;
  padding: 13px 15px; border-radius: 20px;
}
.wb-mkt-block__head { display: flex; align-items: center; gap: 7px; }
.wb-mkt-block__head .wb-icon { width: 15px; height: 15px; flex: none; color: #a9efdd; }
.wb-mkt-block__head h3 { margin: 0; font-size: 13.5px; font-weight: 500; color: var(--wb-ink); }
.wb-mkt-note { margin-left: auto; font-size: 11px; line-height: 1.4; color: var(--wb-ink-45); text-align: right; }

/* ① 简历头 */
.wb-mkt-cv { flex: none; display: flex; flex-direction: column; gap: 11px; padding: 15px 17px; border-radius: 22px; }
.wb-mkt-cv__top { display: flex; align-items: flex-start; gap: 13px; }
.wb-mkt-cv__avatar {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 54px; height: 54px; flex: none; border-radius: 18px;
  background: radial-gradient(circle at 34% 28%, rgba(var(--wb-ink-rgb), .5), var(--c, #7fd8c3));
  color: #10201d; font-size: 21px; font-weight: 600;
}
.wb-mkt-cv__avatar i {
  position: absolute; right: -4px; bottom: -4px;
  padding: 0 5px; border-radius: 999px;
  background: rgba(20, 32, 32, .92); color: #cfe9e2;
  font-size: 9.5px; font-style: normal; line-height: 14px;
}
.wb-mkt-cv__id { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.wb-mkt-cv__id h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; font-size: 18px; font-weight: 500; letter-spacing: -.01em; color: var(--wb-ink); }
.wb-mkt-cv__title { margin: 0; font-size: 12.5px; color: var(--wb-ink-75); }
.wb-mkt-cv__meta { display: flex; flex-wrap: wrap; gap: 3px 14px; margin: 3px 0 0; font-size: 11.5px; color: var(--wb-ink-45); }
.wb-mkt-cv__meta span { display: inline-flex; align-items: center; gap: 5px; }
.wb-mkt-cv__meta .wb-icon { width: 12px; height: 12px; }
.wb-mkt-cv__match {
  flex: none; width: 138px;
  display: flex; flex-direction: column; align-items: flex-end; gap: 3px;
  padding: 8px 11px 9px; border-radius: 16px;
  background: rgba(127, 216, 195, .1);
  box-shadow: inset 0 0 0 1px rgba(127, 216, 195, .2);
}
.wb-mkt-cv__match b { font-size: 26px; font-weight: 500; line-height: 1; color: #a9efdd; }
.wb-mkt-cv__match b i { font-size: 13px; font-style: normal; }
.wb-mkt-cv__match em { font-style: normal; font-size: 10.5px; line-height: 1.4; color: var(--wb-ink-45); text-align: right; }
.wb-mkt-cv__match .wb-talent__bar { width: 100%; margin-top: 2px; }
.wb-mkt-cv__intro { margin: 0; font-size: 12.5px; line-height: 1.7; color: var(--wb-ink-75); }
.wb-mkt-cv__acts { display: flex; flex-wrap: wrap; gap: 8px; }

/* ② 钱与试岗四格 */
.wb-mkt-quad { flex: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.wb-mkt-quad__cell {
  display: flex; flex-direction: column; gap: 2px;
  padding: 10px 12px; border-radius: 16px;
  background: rgba(var(--wb-ink-rgb), .07);
  box-shadow: inset 0 0 0 1px rgba(var(--wb-ink-rgb), .08);
}
.wb-mkt-quad__cell i { font-style: normal; font-size: 11px; color: var(--wb-ink-45); }
.wb-mkt-quad__cell b { font-size: 15.5px; font-weight: 500; color: var(--wb-ink); }
.wb-mkt-quad__cell em { font-style: normal; font-size: 10.5px; line-height: 1.5; color: var(--wb-ink-45); }

/* ③ 六格硬指标 */
.wb-mkt-six { flex: none; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.wb-mkt-six > div { display: flex; flex-direction: column; gap: 2px; padding: 9px 12px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-mkt-six i { font-style: normal; font-size: 10.5px; color: var(--wb-ink-45); }
.wb-mkt-six b { font-size: 14px; font-weight: 500; color: var(--wb-ink); }

/* ④ 能力雷达：左雷达右细条 */
.wb-mkt-radar { display: flex; align-items: center; gap: 16px; }
.wb-mkt-radar__svg { flex: none; display: flex; align-items: center; justify-content: center; }
.wb-mkt-radar__bars { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.wb-mkt-bar { display: flex; align-items: center; gap: 8px; }
.wb-mkt-bar__k { flex: none; width: 100px; display: inline-flex; flex-direction: column; font-size: 11.5px; color: var(--wb-ink-75); }
.wb-mkt-bar__k em { font-style: normal; font-size: 10px; color: var(--wb-ink-45); }
.wb-mkt-bar__t { flex: 1; height: 5px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .14); overflow: hidden; }
.wb-mkt-bar__t i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #7fe3d0, #b6e08a); }
.wb-mkt-bar > em { flex: none; width: 26px; text-align: right; font-style: normal; font-size: 11px; color: var(--wb-ink-60); }

/* ⑤ 技能明细：技能 / 技能包 / 产出规格 / 通过率 / 单价 */
.wb-mkt-skilltable { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.wb-mkt-skilltable li {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1.3fr) 62px 74px;
  gap: 10px; align-items: center;
  padding: 7px 4px; border-top: 1px solid rgba(var(--wb-ink-rgb), .08);
  font-size: 12px; color: var(--wb-ink-75);
}
.wb-mkt-skilltable li:first-child { border-top: 0; }
.wb-mkt-skilltable li b { font-weight: 500; color: var(--wb-ink); }
.wb-mkt-skilltable li em, .wb-mkt-skilltable li span { font-style: normal; color: var(--wb-ink-60); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-mkt-skilltable li i { font-style: normal; text-align: right; color: #a9efdd; }
.wb-mkt-skilltable li u { text-decoration: none; text-align: right; color: var(--wb-ink); }
.wb-mkt-skilltable li.wb-mkt-skilltable__head { padding: 0 4px 4px; font-size: 10.5px; }
.wb-mkt-skilltable li.wb-mkt-skilltable__head * { font-size: 10.5px; font-weight: 400; color: var(--wb-ink-45); }
.wb-mkt-steps { margin-top: 4px; padding: 10px 12px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-mkt-steps > b { display: block; margin-bottom: 6px; font-size: 11.5px; font-weight: 500; color: var(--wb-ink-75); }
.wb-mkt-steps ol { counter-reset: mktstep; list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.wb-mkt-steps li { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 6px; border-radius: 999px; background: rgba(var(--wb-ink-rgb), .08); font-size: 11.5px; color: var(--wb-ink-75); }
.wb-mkt-steps li::before {
  counter-increment: mktstep; content: counter(mktstep);
  display: inline-flex; align-items: center; justify-content: center;
  width: 15px; height: 15px; border-radius: 50%;
  background: rgba(127, 216, 195, .18); color: #a9efdd; font-size: 9.5px;
}

/* ⑥ 作品集 */
.wb-mkt-works { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.wb-mkt-works li { display: flex; align-items: center; gap: 9px; padding: 7px 9px; border-radius: 13px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-mkt-works li > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.wb-mkt-works b { font-size: 12px; font-weight: 500; color: var(--wb-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-mkt-works i { font-style: normal; font-size: 10.5px; color: var(--wb-ink-45); }

/* ⑦ 他怎么干活：认知 / 表达 / 性格 / 记忆 */
.wb-mkt-how { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.wb-mkt-how__card { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-radius: 15px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-mkt-how__card > b { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 500; color: var(--wb-ink); }
.wb-mkt-how__card > b .wb-icon { width: 13px; height: 13px; flex: none; color: #a9efdd; }
.wb-mkt-how__card em { font-style: normal; font-size: 11.5px; color: var(--wb-ink-75); }
.wb-mkt-how__card ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.wb-mkt-how__card li { position: relative; padding-left: 11px; font-size: 11.5px; line-height: 1.55; color: var(--wb-ink-60); }
.wb-mkt-how__card li::before { content: ""; position: absolute; left: 0; top: 7px; width: 4px; height: 4px; border-radius: 50%; background: rgba(var(--wb-ink-rgb), .3); }
.wb-mkt-how__card p { margin: 0; font-size: 11.5px; line-height: 1.55; color: var(--wb-ink-60); }
.wb-mkt-how__card p.wb-mkt-how__no { color: #ffbdb2; }

/* ⑧ 雇主评价：左分布右原话 */
.wb-mkt-reviews { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 14px; }
.wb-mkt-reviews__score { display: flex; flex-direction: column; gap: 6px; }
.wb-mkt-reviews__score > b { font-size: 24px; font-weight: 500; line-height: 1; color: #ffd79a; }
.wb-mkt-reviews__score > em { font-style: normal; font-size: 10.5px; color: var(--wb-ink-45); }
.wb-mkt-reviews__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.wb-mkt-reviews__list li { padding: 9px 11px; border-radius: 14px; background: rgba(var(--wb-ink-rgb), .06); }
.wb-mkt-reviews__by { display: flex; align-items: center; font-size: 11.5px; }
.wb-mkt-reviews__by b { font-weight: 500; color: var(--wb-ink); }
.wb-mkt-reviews__list p { margin: 3px 0 0; font-size: 12px; line-height: 1.6; color: var(--wb-ink-60); }

/* ⑨ 上架与更新记录 */
.wb-mkt-feed { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.wb-mkt-feed li {
  display: grid; grid-template-columns: 78px 54px minmax(0, 1fr) auto; align-items: center; gap: 10px;
  padding: 7px 10px; border-radius: 12px; background: rgba(var(--wb-ink-rgb), .06); font-size: 11.5px;
}
.wb-mkt-feed i { font-style: normal; color: var(--wb-ink-45); }
.wb-mkt-feed b { font-weight: 500; color: var(--wb-ink); }
.wb-mkt-feed span { color: var(--wb-ink-60); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-mkt-feed em { font-style: normal; font-size: 10.5px; color: #a9efdd; }

/* 侧栏四块：我的招聘需求 / 相似人才 / 平台保障 / 我已经雇的 */
.wb-mkt-railstat { display: flex; align-items: baseline; gap: 7px; }
.wb-mkt-railstat b { font-size: 22px; font-weight: 500; line-height: 1; color: var(--wb-ink); }
.wb-mkt-railstat em { font-style: normal; font-size: 11.5px; color: var(--wb-ink-45); }
.wb-mkt-railrow { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 12px; }
.wb-mkt-railrow b { font-weight: 500; color: var(--wb-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-mkt-railacts { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 2px; }
.wb-mkt-similar { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.wb-mkt-similar button {
  display: flex; align-items: center; gap: 9px; width: 100%;
  padding: 7px 9px; border: 0; border-radius: 13px;
  background: rgba(var(--wb-ink-rgb), .06); color: inherit; font: inherit; text-align: left; cursor: pointer;
  transition: background-color .16s var(--wb-ease);
}
.wb-mkt-similar button:hover { background: rgba(var(--wb-ink-rgb), .12); }
.wb-mkt-similar button > span:nth-child(2) { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.wb-mkt-similar b { font-size: 12px; font-weight: 500; color: var(--wb-ink); }
.wb-mkt-similar em { font-style: normal; font-size: 10.5px; color: var(--wb-ink-45); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-mkt-similar i { flex: none; font-style: normal; font-size: 11px; color: #a9efdd; }
.wb-mkt-promise { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.wb-mkt-promise li { display: flex; align-items: flex-start; gap: 8px; }
.wb-mkt-promise .wb-icon { width: 13px; height: 13px; flex: none; margin-top: 2px; color: #7fe3d0; }
.wb-mkt-promise span { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.wb-mkt-promise b { font-size: 12px; font-weight: 500; color: var(--wb-ink); }
.wb-mkt-promise em { font-style: normal; font-size: 11px; line-height: 1.5; color: var(--wb-ink-45); }

/* 名单那一栏要能自己滚：三栏各自滚，互不牵连 */
.wb-market3__list .wb-talentlist { flex: 1; }

@media (max-width: 1400px) {
  .wb-mkt-overview { grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); }
}

@media (max-width: 1240px) {
  /* 侧栏折到简历下面铺一条，不再占一列 */
  .wb-market3 { grid-template-columns: 300px minmax(0, 1fr); }
  .wb-market3__side { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; overflow: visible; }
  .wb-mkt-six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1080px) {
  /* 窄窗不把三栏压进一屏：这一页自己往下滚，名单限高，简历栏摊开写。
     滚的是这一页而不是外面的容器 —— 窗口拖小、浏览器变宽，都不会被裁掉。 */
  .wb-marketview { overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(var(--wb-ink-rgb), .24) transparent; }
  .wb-marketview::-webkit-scrollbar { width: 8px; }
  .wb-marketview::-webkit-scrollbar-thumb { background: rgba(var(--wb-ink-rgb), .2); border-radius: 999px; }
  .wb-market3 { flex: none; grid-template-columns: minmax(0, 1fr); }
  .wb-market3__detail, .wb-market3__side { overflow: visible; }
  /* 名单摊平以后一行太宽（名字在左、价钱在右，中间空一大条），改成一张一张的小卡并排 */
  .wb-talentlist {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    max-height: 420px; align-content: start;
  }
  .wb-mkt-quad { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-mkt-how { grid-template-columns: minmax(0, 1fr); }
  .wb-mkt-reviews { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 820px) {
  .wb-mkt-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wb-market3__side { grid-template-columns: minmax(0, 1fr); }
  .wb-mkt-radar { flex-direction: column; align-items: stretch; }
  .wb-mkt-radar__svg { align-self: center; }
  .wb-mkt-works { grid-template-columns: minmax(0, 1fr); }
  .wb-mkt-cv__match { width: 112px; }
}

@media (max-width: 620px) {
  .wb-mkt-cv__top { flex-wrap: wrap; }
  .wb-mkt-six { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* 窄屏：技能表只留 技能 / 技能包 / 通过率 / 单价 */
  .wb-mkt-skilltable li { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 52px 64px; }
  .wb-mkt-skilltable li span { display: none; }
  .wb-mkt-feed li { grid-template-columns: 68px 46px minmax(0, 1fr); }
  .wb-mkt-feed em { grid-column: 3; }
}
