:root {
  --navy: #071b2e;
  --navy-light: #0d2a46;
  --blue: #1677ff;
  --blue-soft: #eef6ff;
  --green: #20b56b;
  --orange: #ff9518;
  --red: #ff5151;
  --text: #122033;
  --muted: #7b8798;
  --line: #e6ebf2;
  --surface: #fff;
  --bg: #f5f8fc;
  --shadow: 0 10px 30px rgba(15, 42, 74, .06);
  /* 环比语义色（A股惯例）：变好=红，变差=深绿 */
  --trend-good: #d93026;
  --trend-bad: #0d7a45;
  --trend-flat: #8e8ea0;
  /* 正文字号阶梯（与 body 14px 对齐） */
  --font-page: 14px;
  --font-page-sm: 13px;
  --font-page-xs: 12px;
  --font-page-lg: 15px;
  --font-page-xl: 16px;
  --weight-display: 600;
  --weight-strong: 600;
  --weight-medium: 500;
  --weight-regular: 400;
  --font-yuanyuan: "YouYuan", "幼圆", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --dash-card-radius: 10px;
  /* 视口自适应尺度（1366×768 ~ 2520×1680 等桌面分辨率，981px 以下由移动端断点接管） */
  --vp-sidebar-w: clamp(182px, 4.8rem + 5.9vw, 200px);
  --vp-aside-w: clamp(196px, 3.5rem + 9.2vw, 280px);
  --vp-dashboard-aside-w: clamp(300px, 3.5rem + 14vw, 380px);
  --vp-page-gap: clamp(10px, 0.45vw + 7px, 16px);
  --vp-view-pad: clamp(12px, 0.4vw + 8px, 16px);
  --vp-nav-font: clamp(13px, 0.24vw + 10px, 15px);
  --vp-nav-sub-font: clamp(11px, 0.12vw + 10px, 13px);
  --vp-nav-item-h: clamp(38px, 0.95vw + 28px, 46px);
  --vp-nav-pad-y: clamp(8px, 0.35vw + 6px, 12px);
  --vp-nav-pad-x: clamp(10px, 0.45vw + 7px, 16px);
  --vp-nav-gap: clamp(9px, 0.35vw + 6px, 13px);
  --vp-brand-mark: clamp(32px, calc(var(--vp-sidebar-w) * 0.185), 40px);
  --vp-brand-mark-font: clamp(15px, calc(var(--vp-sidebar-w) * 0.092), 19px);
  --vp-brand-title-font: clamp(17px, calc(var(--vp-sidebar-w) * 0.102), 21px);
  --vp-brand-sub-font: clamp(10px, calc(var(--vp-sidebar-w) * 0.056), 12px);
  --vp-brand-gap: clamp(6px, calc(var(--vp-sidebar-w) * 0.036), 9px);
  --vp-brand-pad-y: clamp(11px, calc(var(--vp-sidebar-w) * 0.062), 15px);
  --vp-brand-pad-x: clamp(10px, calc(var(--vp-sidebar-w) * 0.056), 12px);
  --vp-brand-min-h: clamp(54px, calc(var(--vp-sidebar-w) * 0.33), 66px);
  --vp-brand-min-h-collapsed: var(--vp-brand-min-h);
  --vp-quick-font: clamp(12px, 0.22vw + 10px, 15px);
  --vp-quick-icon-box: clamp(22px, 0.65vw + 16px, 26px);
  --vp-task-card-gap: clamp(10px, 0.55vw + 6px, 16px);
  --vp-topbar-h: clamp(52px, 0.55vw + 48px, 60px);
  --vp-dash-row-gap: clamp(8px, 0.45vw + 6px, 12px);
  --vp-panel-width: clamp(380px, 40vw, 860px);
  --layout-aside-width: var(--vp-aside-w);
  --layout-page-gap: var(--vp-page-gap);
  --sidebar-menu-scale: 1;
  --sidebar-width: var(--vp-sidebar-w);
  --sidebar-rail: 78px;
  --sidebar-rail-inset: 10px;
  --sidebar-rail-radius: 12px;
  --sidebar-rail-shadow: 0 10px 32px rgba(7, 25, 43, .24);
  --sidebar-ease: cubic-bezier(.4, 0, .2, 1);
  --sidebar-reveal-ease: cubic-bezier(.22, 1, .36, 1);
  --sidebar-bg: linear-gradient(180deg, #07192b, #09243e);
  --sidebar-tab-width: 22px;
  --sidebar-tab-height: 40px;
  --sidebar-tab-top: 22px;
  --sidebar-nav-font: var(--vp-nav-font);
  --sidebar-nav-sub-font: var(--vp-nav-sub-font);
  --sidebar-nav-item-h: var(--vp-nav-item-h);
  --sidebar-nav-pad-y: var(--vp-nav-pad-y);
  --sidebar-nav-pad-x: var(--vp-nav-pad-x);
  --sidebar-nav-gap: var(--vp-nav-gap);
  --sidebar-nav-icon-size: clamp(18px, 0.35vw + 14px, 22px);
  --sidebar-nav-sub-icon-size: clamp(15px, 0.2vw + 13px, 18px);
  --sidebar-quick-font: var(--vp-quick-font);
  --sidebar-quick-icon-box: var(--vp-quick-icon-box);
  --sidebar-quick-icon-size: clamp(15px, 0.25vw + 12px, 18px);
  --sidebar-nav-offset-top: clamp(18px, 1vw + 12px, 24px);
  --sidebar-rail-item-inset: 10px;
  --sidebar-brand-mark: var(--vp-brand-mark);
  --sidebar-brand-mark-font: var(--vp-brand-mark-font);
  --sidebar-brand-title-font: var(--vp-brand-title-font);
  --sidebar-brand-sub-font: var(--vp-brand-sub-font);
  --sidebar-brand-gap: var(--vp-brand-gap);
  --sidebar-brand-pad-y: var(--vp-brand-pad-y);
  --sidebar-brand-pad-x: var(--vp-brand-pad-x);
  --sidebar-brand-min-h: var(--vp-brand-min-h);
  --sidebar-brand-min-h-collapsed: var(--vp-brand-min-h-collapsed);
  --sidebar-rail-tip-font: var(--sidebar-nav-font);
  --sidebar-rail-tip-pad-y: 9px;
  --sidebar-rail-tip-pad-x: 14px;
  --app-sidebar-offset: var(--sidebar-width);
  --panel-width: var(--vp-panel-width);
  --task-subtask-panel-width: var(--panel-width);
  --task-drawer-compact-width: clamp(260px, 22vw, 320px);
  --drawer-stack-front-bg: #fff;
  --drawer-stack-back-bg: #eef1f6;
  --drawer-stack-deep-bg: #e4e8ef;
  --drawer-stack-back-header-bg: #e6eaf0;
  --drawer-stack-edge: rgba(15, 35, 62, .12);
  --drawer-stack-front-shadow: -18px 0 44px rgba(15, 35, 62, .2), -1px 0 0 var(--drawer-stack-edge);
  --drawer-stack-mid-shadow: -10px 0 28px rgba(15, 35, 62, .14), -1px 0 0 rgba(15, 35, 62, .08);
  --drawer-stack-back-shadow: inset 3px 0 10px rgba(15, 35, 62, .07);
  --drawer-stack-accent: linear-gradient(180deg, #0958d9 0%, #4096ff 52%, #69b1ff 100%);
}
* { box-sizing: border-box; }
body {
  margin: 0;
  color: var(--text);
  background: var(--bg);
  font: 14px/1.55 "Noto Sans SC", "Microsoft YaHei", "PingFang SC", sans-serif;
  font-weight: var(--weight-regular);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-synthesis: none;
}
/* 全局文字渲染：统一字重阶梯，各板块继承同一套变量 */
.app-shell,
.login-screen,
.system-block-screen {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-synthesis: none;
}
.app-shell b,
.app-shell strong,
.login-screen b,
.login-screen strong {
  font-weight: var(--weight-strong);
}
.app-shell h1,
.app-shell h2,
.app-shell h3,
.app-shell h4,
.login-screen h1,
.login-screen h2,
.login-screen h3 {
  font-weight: var(--weight-display);
}
.panel-header h3,
.page-title-row,
.org-table-header h3,
.hub-section-head h3,
.eff-page-head h2,
.eff-panel-head h3,
.stats-panel-head h3,
.fb-aside-head h3 {
  font-weight: var(--weight-display);
}
.tag {
  font-weight: var(--weight-medium);
}
body.system-blocked .app-shell,
body.logged-out .app-shell,
.app-shell.app-shell--hidden { display: none !important; }
body.app-booting .app-shell { visibility: hidden; }
body.app-booting .create-edge-tab,
body.app-booting .ai-advisor-float,
body.app-booting .ai-advisor-edge-tabs {
  visibility: hidden;
  pointer-events: none;
}
.system-block-screen {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 24px;
  background: linear-gradient(160deg, #eef4fb 0%, #f8fafc 45%, #e8f0fa 100%);
}
.system-block-card {
  width: min(480px, 100%);
  padding: 36px 32px 28px;
  border-radius: 20px;
  background: var(--surface);
  box-shadow: var(--shadow);
  text-align: center;
}
.system-block-mark {
  display: inline-grid;
  width: 56px;
  height: 56px;
  margin-bottom: 16px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--red);
  font-size: 28px;
  font-weight: var(--weight-strong);
}
.system-block-card h1 { margin: 0 0 10px; font-size: 22px; }
.system-block-detail { margin: 0 0 20px; color: var(--muted); line-height: 1.6; }
.system-block-actions { margin-bottom: 14px; }
.system-block-hint { margin: 0; font-size: 12px; color: var(--muted); line-height: 1.5; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; border: 0; }
html { height: 100%; }
body:not(.logged-out):not(.system-blocked) { height: 100%; overflow: hidden; }
.app-shell { display: flex; height: 100vh; min-height: 0; overflow: hidden; }
body.sidebar-collapsed { --app-sidebar-offset: var(--sidebar-rail); }
.sidebar {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  z-index: 50;
  display: flex;
  width: var(--sidebar-width);
  flex-direction: column;
  overflow: visible;
  color: #d7e3f1;
  background: transparent;
  border-radius: var(--sidebar-rail-radius);
  box-shadow: none;
  transition:
    width .34s var(--sidebar-ease),
    box-shadow .34s var(--sidebar-ease);
}
.sidebar::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  background: var(--sidebar-bg);
  box-shadow: none;
  pointer-events: none;
  transition: box-shadow .34s var(--sidebar-ease);
}
.sidebar > :not(.sidebar-collapse-btn) {
  position: relative;
  z-index: 1;
}
body.sidebar-collapsed .sidebar.is-collapsed {
  width: var(--sidebar-rail);
  z-index: 50;
}
body.sidebar-collapsed .sidebar.is-collapsed::before {
  box-shadow: var(--sidebar-rail-shadow);
}
.sidebar-collapse-btn {
  position: absolute;
  top: var(--sidebar-tab-top);
  left: 100%;
  right: auto;
  z-index: 6;
  display: flex;
  width: var(--sidebar-tab-width);
  height: var(--sidebar-tab-height);
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 0 var(--sidebar-rail-radius) var(--sidebar-rail-radius) 0;
  color: #c5d4e3;
  background: var(--sidebar-bg);
  box-shadow: none;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: none;
  transition:
    color .2s ease,
    opacity .12s ease,
    visibility .12s ease,
    top .34s var(--sidebar-ease);
}
.sidebar:hover .sidebar-collapse-btn,
.sidebar-collapse-btn:hover,
.sidebar-collapse-btn:focus-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.sidebar-collapse-btn:hover {
  color: #fff;
  background: var(--sidebar-bg);
}
.sidebar-collapse-arrow {
  display: block;
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  margin-right: 2px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(135deg);
  transition: transform .34s var(--sidebar-ease), margin .34s var(--sidebar-ease);
}
body.sidebar-collapsed .sidebar.is-collapsed .sidebar-collapse-arrow {
  margin-right: 0;
  margin-left: 1px;
  transform: rotate(-45deg);
}
.brand {
  display: flex;
  align-items: center;
  gap: var(--sidebar-brand-gap);
  min-height: var(--sidebar-brand-min-h);
  padding: var(--sidebar-brand-pad-y) var(--sidebar-brand-pad-x) calc(var(--sidebar-brand-pad-y) - 4px);
  overflow: hidden;
  transition:
    min-height .34s var(--sidebar-ease),
    padding .34s var(--sidebar-ease),
    gap .34s var(--sidebar-ease),
    justify-content .34s var(--sidebar-ease);
}
.brand-logo-group {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.brand-mark {
  display: grid;
  width: var(--sidebar-brand-mark);
  height: var(--sidebar-brand-mark);
  place-items: center;
  border-radius: clamp(9px, 28%, 12px) clamp(9px, 28%, 12px) clamp(11px, 34%, 15px) clamp(11px, 34%, 15px);
  color: #09213a;
  background: #ffbd23;
  font-size: var(--sidebar-brand-mark-font);
  font-weight: var(--weight-display);
  transform: rotate(-6deg);
  transition: transform .34s var(--sidebar-ease), width .34s var(--sidebar-ease), height .34s var(--sidebar-ease), font-size .34s var(--sidebar-ease);
}
.sidebar-brand-text {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  opacity: 1;
  max-height: calc(var(--sidebar-brand-title-font) * 1.3 + var(--sidebar-brand-sub-font) * 1.35 + 4px);
  transition: opacity .28s var(--sidebar-ease), max-height .34s var(--sidebar-ease), flex .34s var(--sidebar-ease);
}
.sidebar.is-expanding .sidebar-brand-text,
.sidebar.is-expanding .nav,
.sidebar.is-expanding .quick-nav,
.sidebar.is-expanding .sidebar-bottom {
  transition: opacity .24s var(--sidebar-ease) .08s, transform .34s var(--sidebar-ease);
}
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .brand {
  justify-content: center;
  gap: 0;
  min-height: var(--sidebar-brand-min-h);
  padding: var(--sidebar-brand-pad-y) var(--sidebar-brand-pad-x) calc(var(--sidebar-brand-pad-y) - 4px);
  position: static;
}
body.sidebar-collapsed .sidebar.is-collapsed .brand-logo-group { position: static; }
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .brand-mark {
  width: var(--sidebar-brand-mark);
  height: var(--sidebar-brand-mark);
  font-size: var(--sidebar-brand-mark-font);
  transform: rotate(-6deg);
}
body.sidebar-collapsed .sidebar.is-collapsed .sidebar-collapse-btn {
  top: var(--sidebar-tab-top);
  transform: none;
}
body.sidebar-collapsed .sidebar.is-collapsed.is-sidebar-animating .sidebar-collapse-btn,
body.sidebar-collapsed .sidebar.is-collapsed.is-sidebar-animating.is-collapsing .sidebar-collapse-btn {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .sidebar-brand-text {
  flex: 0;
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  pointer-events: none;
  transition: opacity .24s var(--sidebar-ease), max-height .32s var(--sidebar-ease), flex .32s var(--sidebar-ease);
}
body.sidebar-collapsed .sidebar.is-collapsed.is-sidebar-animating.is-collapsing {
  width: var(--sidebar-rail);
}
body.sidebar-collapsed .sidebar.is-collapsed.is-sidebar-animating.is-collapsing .sidebar-collapse-btn {
  top: var(--sidebar-tab-top);
}
.sidebar.is-collapsing.is-sidebar-animating .sidebar-brand-text {
  flex: 0;
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  pointer-events: none;
  transition: opacity .26s var(--sidebar-ease), max-height .34s var(--sidebar-ease), flex .34s var(--sidebar-ease);
}
.sidebar.is-collapsing.is-sidebar-animating .sidebar-status-text,
.sidebar.is-collapsing.is-sidebar-animating .nav-item > span:not(.nav-chevron),
.sidebar.is-collapsing.is-sidebar-animating .nav-sub-item > span,
.sidebar.is-collapsing.is-sidebar-animating .quick-nav h4,
.sidebar.is-collapsing.is-sidebar-animating .quick-link-label,
.sidebar.is-collapsing.is-sidebar-animating .nav-chevron {
  opacity: 0;
  max-width: 0;
  flex: 0 0 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity .26s var(--sidebar-ease),
    max-width .34s var(--sidebar-ease),
    flex .34s var(--sidebar-ease),
    visibility .26s var(--sidebar-ease),
    margin .34s var(--sidebar-ease),
    padding .34s var(--sidebar-ease);
}
.sidebar.is-collapsing.is-sidebar-animating .quick-nav h4 {
  max-height: 0;
  transition:
    opacity .26s var(--sidebar-ease),
    max-width .34s var(--sidebar-ease),
    max-height .34s var(--sidebar-ease),
    flex .34s var(--sidebar-ease),
    visibility .26s var(--sidebar-ease),
    margin .34s var(--sidebar-ease),
    padding .34s var(--sidebar-ease);
}
.sidebar.is-collapsing.is-sidebar-animating .nav-item,
.sidebar.is-collapsing.is-sidebar-animating .quick-link {
  font-size: 0;
  transition:
    font-size .26s var(--sidebar-ease),
    padding .34s var(--sidebar-ease),
    margin .34s var(--sidebar-ease),
    width .34s var(--sidebar-ease),
    justify-content .34s var(--sidebar-ease),
    gap .34s var(--sidebar-ease);
}
.sidebar.is-collapsing.is-sidebar-animating .quick-link-ic {
  flex-shrink: 0;
  width: var(--sidebar-quick-icon-box);
  height: var(--sidebar-quick-icon-box);
  margin: 0;
  transform: none;
}
.sidebar.is-collapsing.is-sidebar-animating .quick-nav {
  margin-inline: 0;
  transition: margin .34s var(--sidebar-ease);
}
.sidebar.is-collapsed.is-collapsing.is-sidebar-animating .brand,
.sidebar.is-collapsing.is-sidebar-animating .brand {
  justify-content: center;
  gap: 0;
  min-height: var(--sidebar-brand-min-h);
  padding: var(--sidebar-brand-pad-y) var(--sidebar-brand-pad-x) calc(var(--sidebar-brand-pad-y) - 4px);
}
.sidebar.is-collapsed.is-collapsing.is-sidebar-animating .nav-item,
.sidebar.is-collapsed.is-collapsing.is-sidebar-animating .nav-sub-item,
.sidebar.is-collapsed.is-collapsing.is-sidebar-animating .quick-link,
.sidebar.is-collapsing.is-sidebar-animating .nav-item,
.sidebar.is-collapsing.is-sidebar-animating .nav-sub-item,
.sidebar.is-collapsing.is-sidebar-animating .quick-link {
  justify-content: center;
  gap: 0;
  margin-inline: var(--sidebar-rail-item-inset);
  width: calc(100% - var(--sidebar-rail-item-inset) * 2);
  min-height: var(--sidebar-nav-item-h);
  border-radius: 10px;
}
.sidebar.is-collapsed.is-collapsing.is-sidebar-animating .nav-item,
.sidebar.is-collapsed.is-collapsing.is-sidebar-animating .quick-link,
.sidebar.is-collapsing.is-sidebar-animating .nav-item,
.sidebar.is-collapsing.is-sidebar-animating .quick-link {
  padding: var(--sidebar-nav-pad-y);
}
.sidebar.is-collapsed.is-collapsing.is-sidebar-animating .sidebar-bottom,
.sidebar.is-collapsing.is-sidebar-animating .sidebar-bottom {
  margin: 14px 8px 18px;
  padding: 12px 8px;
}
.sidebar.is-collapsed.is-collapsing.is-sidebar-animating .sidebar-status-btn,
.sidebar.is-collapsing.is-sidebar-animating .sidebar-status-btn {
  justify-content: center;
  gap: 0;
  padding: 10px 8px;
  transition: padding .34s var(--sidebar-ease), gap .34s var(--sidebar-ease);
}
.sidebar.is-collapsed.is-expanding {
  width: var(--sidebar-width);
}
.sidebar.is-collapsed.is-expanding .brand {
  justify-content: flex-start;
  gap: var(--sidebar-brand-gap);
  min-height: var(--sidebar-brand-min-h);
  padding: var(--sidebar-brand-pad-y) var(--sidebar-brand-pad-x) calc(var(--sidebar-brand-pad-y) - 4px);
}
.sidebar.is-collapsed.is-expanding .brand-mark {
  width: var(--sidebar-brand-mark);
  height: var(--sidebar-brand-mark);
  font-size: var(--sidebar-brand-mark-font);
  transform: rotate(-6deg);
}
.sidebar.is-collapsed.is-expanding .sidebar-collapse-btn {
  top: var(--sidebar-tab-top);
  transform: none;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.sidebar.is-collapsed.is-expanding.is-sidebar-animating:not(.is-content-revealing) .sidebar-brand-text,
.sidebar.is-collapsed.is-expanding.is-sidebar-animating:not(.is-content-revealing) .nav-item > span:not(.nav-chevron),
.sidebar.is-collapsed.is-expanding.is-sidebar-animating:not(.is-content-revealing) .nav-sub-item > span,
.sidebar.is-collapsed.is-expanding.is-sidebar-animating:not(.is-content-revealing) .quick-nav h4,
.sidebar.is-collapsed.is-expanding.is-sidebar-animating:not(.is-content-revealing) .quick-link-label,
.sidebar.is-collapsed.is-expanding.is-sidebar-animating:not(.is-content-revealing) .sidebar-status-text,
.sidebar.is-collapsed.is-expanding.is-sidebar-animating:not(.is-content-revealing) .nav-chevron {
  opacity: 0;
  visibility: hidden;
}
.sidebar.is-collapsed.is-expanding.is-sidebar-animating:not(.is-content-revealing) .nav-item,
.sidebar.is-collapsed.is-expanding.is-sidebar-animating:not(.is-content-revealing) .quick-link {
  font-size: 0;
}
.sidebar.is-collapsed.is-expanding.is-sidebar-animating.is-content-revealing .sidebar-brand-text {
  flex: 1;
  opacity: 1;
  max-height: calc(var(--sidebar-brand-title-font) * 1.3 + var(--sidebar-brand-sub-font) * 1.35 + 4px);
  pointer-events: auto;
  transition: opacity .24s var(--sidebar-ease) .02s, max-height .34s var(--sidebar-ease), flex .34s var(--sidebar-ease);
}
.sidebar.is-collapsed.is-expanding.is-sidebar-animating.is-content-revealing .nav-item,
.sidebar.is-collapsed.is-expanding.is-sidebar-animating.is-content-revealing .quick-link {
  font-size: var(--sidebar-nav-font);
  transition: font-size .26s var(--sidebar-ease) .04s;
}
.sidebar.is-collapsed.is-expanding.is-sidebar-animating .quick-link b {
  font-size: var(--sidebar-quick-icon-box);
}
.sidebar.is-collapsed.is-expanding.is-sidebar-animating .nav-item,
.sidebar.is-collapsed.is-expanding.is-sidebar-animating .quick-link {
  justify-content: flex-start;
  gap: var(--sidebar-nav-gap);
  margin-inline: 0;
  width: 100%;
  border-radius: 7px;
}
.sidebar.is-collapsed.is-expanding.is-sidebar-animating .nav-item {
  padding: var(--sidebar-nav-pad-y) var(--sidebar-nav-pad-x);
}
.sidebar.is-collapsed.is-expanding.is-sidebar-animating .quick-link {
  padding: var(--sidebar-nav-pad-y) calc(var(--sidebar-nav-pad-x) - 2px);
  border-radius: 7px;
}
@keyframes sidebarContentHide {
  from {
    opacity: 1;
    transform: translateX(0);
  }
  to {
    opacity: 0;
    transform: translateX(-8px);
  }
}
@keyframes sidebarContentFadeHide {
  from { opacity: 1; }
  to { opacity: 0; }
}
.sidebar.is-content-hiding .sidebar-brand-text,
.sidebar.is-content-hiding .sidebar-status-text {
  animation: sidebarContentFadeHide .28s var(--sidebar-reveal-ease) both;
}
.sidebar.is-content-hiding .nav-item > span:not(.nav-chevron),
.sidebar.is-content-hiding .nav-sub-item > span,
.sidebar.is-content-hiding .quick-nav h4,
.sidebar.is-content-hiding .quick-link-label,
.sidebar.is-content-hiding .nav-chevron {
  animation: sidebarContentHide .32s var(--sidebar-reveal-ease) both;
}
.sidebar.is-content-hiding .sidebar-brand-text { animation-delay: .02s; }
.sidebar.is-content-hiding .nav-item > span:not(.nav-chevron) { animation-delay: .05s; }
.sidebar.is-content-hiding .quick-nav h4 { animation-delay: .09s; }
.sidebar.is-content-hiding .quick-link-label { animation-delay: .1s; }
.sidebar.is-content-hiding .sidebar-status-text { animation-delay: .13s; }
@keyframes sidebarContentReveal {
  from {
    opacity: 0;
    transform: translateX(-5px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes sidebarContentFadeReveal {
  from { opacity: 0; }
  to { opacity: 1; }
}
.sidebar.is-content-revealing .sidebar-brand-text,
.sidebar.is-content-revealing .sidebar-status-text {
  animation: sidebarContentFadeReveal .24s var(--sidebar-reveal-ease) both;
}
.sidebar.is-content-revealing .nav-item > span:not(.nav-chevron),
.sidebar.is-content-revealing .nav-sub-item > span,
.sidebar.is-content-revealing .quick-nav h4,
.sidebar.is-content-revealing .quick-link-label,
.sidebar.is-content-revealing .nav-chevron {
  animation: sidebarContentReveal .28s var(--sidebar-reveal-ease) both;
}
.sidebar.is-content-revealing .nav-item > span:not(.nav-chevron) { animation-delay: .04s; }
.sidebar.is-content-revealing .quick-nav h4 { animation-delay: .08s; }
.sidebar.is-content-revealing .quick-link-label { animation-delay: .09s; }
.sidebar.is-content-revealing .sidebar-status-text { animation-delay: .12s; }
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .nav-chevron,
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .quick-nav h4 { display: none; }
body.sidebar-collapsed .sidebar.is-collapsed .nav-submenu { display: none; }
body.sidebar-collapsed .sidebar.is-collapsed .nav-group { position: relative; }
body.sidebar-collapsed .sidebar.is-collapsed .nav-group:hover .nav-submenu,
body.sidebar-collapsed .sidebar.is-collapsed .nav-group.is-flyout-open .nav-submenu {
  position: absolute;
  top: 0;
  left: calc(100% + 6px);
  z-index: 80;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
  min-width: 188px;
  margin: 0;
  padding: 8px 10px 10px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 14px;
  background: linear-gradient(180deg, #0f3152, #0a2540);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .28);
  transform: none;
  pointer-events: auto;
  text-align: left;
}
body.sidebar-collapsed .sidebar.is-collapsed .nav-group:hover .nav-submenu::before,
body.sidebar-collapsed .sidebar.is-collapsed .nav-group.is-flyout-open .nav-submenu::before {
  content: "系统设置";
  display: block;
  padding: 2px 0 8px;
  color: #8ca3bb;
  font-size: 13px;
  font-weight: var(--weight-strong);
  letter-spacing: .04em;
  text-align: left;
}
body.sidebar-collapsed .sidebar.is-collapsed .nav-group:hover .nav-sub-item,
body.sidebar-collapsed .sidebar.is-collapsed .nav-group.is-flyout-open .nav-sub-item {
  justify-content: flex-start;
  gap: 8px;
  width: 100%;
  padding: 9px 8px;
  margin: 0;
  font-size: var(--sidebar-nav-sub-font);
  border-radius: 10px;
  text-align: left;
}
body.sidebar-collapsed .sidebar.is-collapsed .nav-group:hover .nav-sub-item > span,
body.sidebar-collapsed .sidebar.is-collapsed .nav-group.is-flyout-open .nav-sub-item > span {
  position: static;
  display: inline;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: inherit;
  background: transparent;
  box-shadow: none;
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
  white-space: nowrap;
  font-size: inherit;
  font-weight: inherit;
}
body.sidebar-collapsed .sidebar.is-collapsed .nav-group .nav-item-parent:hover > span:not(.nav-chevron) {
  opacity: 0 !important;
  visibility: hidden !important;
}
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .nav-item,
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .nav-sub-item,
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .quick-link { justify-content: center; gap: 0; border-radius: 10px; }
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .nav-item {
  padding: var(--sidebar-nav-pad-y);
  margin-inline: var(--sidebar-rail-item-inset);
  width: calc(100% - var(--sidebar-rail-item-inset) * 2);
  min-height: var(--sidebar-nav-item-h);
  font-size: 0;
  transition: padding .32s var(--sidebar-ease), margin .32s var(--sidebar-ease), width .32s var(--sidebar-ease), border-radius .32s var(--sidebar-ease);
}
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .nav-item-parent { padding-right: var(--sidebar-nav-pad-y); }
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .quick-link {
  padding: var(--sidebar-nav-pad-y);
  margin-inline: var(--sidebar-rail-item-inset);
  width: calc(100% - var(--sidebar-rail-item-inset) * 2);
  min-height: var(--sidebar-nav-item-h);
  overflow: visible;
  border-radius: 10px;
  font-size: 0;
  transition: padding .32s var(--sidebar-ease), margin .32s var(--sidebar-ease), width .32s var(--sidebar-ease), border-radius .32s var(--sidebar-ease);
}
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .quick-link-label {
  opacity: 0;
  max-width: 0;
  flex: 0 0 0;
  overflow: hidden;
  visibility: hidden;
  padding: 0;
  margin: 0;
  pointer-events: none;
}
body.sidebar-collapsed .sidebar.is-collapsed .quick-link b,
body.sidebar-collapsed .sidebar.is-collapsed .quick-link-ic { font-size: var(--sidebar-quick-icon-box); }
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .sidebar-bottom {
  margin: 14px 8px 18px;
  padding: 12px 8px;
  border-radius: 10px;
  transition: margin .32s var(--sidebar-ease), padding .32s var(--sidebar-ease);
}
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .quick-nav { margin-inline: 0; overflow: visible; }
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .nav { padding-inline: 0; }
body.sidebar-collapsed .sidebar.is-collapsed .nav-item,
body.sidebar-collapsed .sidebar.is-collapsed .quick-link,
body.sidebar-collapsed .sidebar.is-collapsed .nav-sub-item { position: relative; }
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-collapsing) .nav-item > span:not(.nav-chevron),
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-collapsing) .nav-sub-item > span {
  position: absolute;
  left: calc(100% + 12px);
  top: 50%;
  z-index: 80;
  display: block;
  padding: var(--sidebar-rail-tip-pad-y) var(--sidebar-rail-tip-pad-x);
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 12px;
  color: #eef4fb;
  background: linear-gradient(180deg, #0f3152, #0a2540);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .24);
  font-size: var(--sidebar-rail-tip-font);
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-50%) translateX(-4px);
  transition: opacity .2s var(--sidebar-ease), visibility .2s var(--sidebar-ease), transform .2s var(--sidebar-ease);
}
body.sidebar-collapsed .sidebar.is-collapsed .quick-link::after {
  content: attr(data-sidebar-tip);
  position: absolute;
  left: calc(100% + 12px);
  top: 50%;
  z-index: 80;
  display: block;
  padding: var(--sidebar-rail-tip-pad-y) var(--sidebar-rail-tip-pad-x);
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 12px;
  color: #eef4fb;
  background: linear-gradient(180deg, #0f3152, #0a2540);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .24);
  font-size: var(--sidebar-rail-tip-font);
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-50%) translateX(-4px);
  transition: opacity .2s var(--sidebar-ease), visibility .2s var(--sidebar-ease), transform .2s var(--sidebar-ease);
}
.sidebar.is-collapsing .quick-link::after {
  content: none;
}
body.sidebar-collapsed .sidebar.is-collapsed .nav-item:hover > span:not(.nav-chevron),
body.sidebar-collapsed .sidebar.is-collapsed .nav-sub-item:hover > span,
body.sidebar-collapsed .sidebar.is-collapsed .quick-link:hover::after {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0);
}
.sidebar-bottom { position: relative; }
.sidebar-status-btn {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border: 0;
  border-radius: 12px;
  color: #d7e3f1;
  background: rgba(255, 255, 255, .055);
  text-align: left;
  cursor: pointer;
  transition: background .2s ease, padding .32s var(--sidebar-ease), gap .32s var(--sidebar-ease);
}
.sidebar-status-btn:hover { background: rgba(255, 255, 255, .1); }
.sidebar-status-text {
  min-width: 0;
  flex: 1;
  transition: opacity .24s var(--sidebar-ease), flex .32s var(--sidebar-ease), max-width .32s var(--sidebar-ease);
}
.sidebar-status-text strong,
.sidebar-status-text small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-status-text strong { color: #fff; font-size: 12px; }
.sidebar-status-text small { margin-top: 2px; color: #8ca3bb; font-size: 10px; }
.sidebar-status-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: 0 0 0 4px rgba(255, 255, 255, .06);
}
.sidebar-status-dot--online { background: #30d17a; box-shadow: 0 0 0 4px rgba(48, 209, 122, .15); }
.sidebar-status-dot--busy { background: #faad14; box-shadow: 0 0 0 4px rgba(250, 173, 20, .15); }
.sidebar-status-dot--away { background: #8ca3bb; }
.sidebar-status-dot--invisible { background: #6b7c90; }
.sidebar-status-dot--leave { background: #69b1ff; box-shadow: 0 0 0 4px rgba(105, 177, 255, .15); }
.sidebar-status-menu {
  position: absolute;
  left: calc(100% + 10px);
  bottom: 0;
  z-index: 80;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 156px;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 14px;
  background: linear-gradient(180deg, #0f3152, #0a2540);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .28);
}
.sidebar-status-menu[hidden] { display: none !important; }
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .sidebar-status-text {
  flex: 0 0 0;
  width: 0;
  max-width: 0;
  opacity: 0;
  visibility: hidden;
  overflow: hidden;
  margin: 0;
  padding: 0;
}
body.sidebar-collapsed .sidebar.is-collapsed:not(.is-expanding):not(.is-collapsing) .sidebar-status-btn {
  justify-content: center;
  gap: 0;
  padding: 10px 6px;
}
body.sidebar-collapsed .sidebar.is-collapsed .sidebar-status-menu { left: calc(100% + 12px); }
.sidebar-status-option {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 10px;
  color: #d7e3f1;
  background: transparent;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}
.sidebar-status-option em { margin-left: auto; color: #7f97b0; font-size: 10px; font-style: normal; }
.sidebar-status-option:hover,
.sidebar-status-option.active { color: #fff; background: rgba(23, 99, 182, .45); }
.bee-mark { position: relative; border-radius: 13px 13px 16px 16px; background: linear-gradient(145deg,#ffd34d,#ffb414); box-shadow: inset 0 -4px 0 rgba(9,33,58,.08); }
.bee-mark::before, .bee-mark::after { content: ""; position: absolute; top: 26%; width: 17%; height: 17%; border-radius: 50%; background: rgba(255,255,255,.45); }
.bee-mark::before { left: 22%; }.bee-mark::after { right: 22%; }
.bee-mark { font-size: 15px; }
.brand-mark.bee-mark { font-size: var(--sidebar-brand-mark-font); }
.brand > div { line-height: 1.25; }
.brand strong {
  display: block;
  overflow: hidden;
  color: #fff;
  font-size: var(--sidebar-brand-title-font);
  letter-spacing: 0.3px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.brand strong.brand-title-line {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  white-space: nowrap;
}
.brand-title-text {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.brand-pro-badge {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  height: 15px;
  padding: 0 5px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 4px;
  color: #b8c9d9;
  background: rgba(255, 255, 255, .07);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.35px;
  line-height: 1;
}
.brand-subtitle,
.brand span:not(.brand-pro-badge):not(.brand-title-text) {
  display: block;
  overflow: hidden;
  margin-top: 1px;
  color: #98acc1;
  font-size: var(--sidebar-brand-sub-font);
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nav { padding: var(--sidebar-nav-offset-top) var(--sidebar-brand-pad-x) 8px; }
.nav-item, .quick-link { display: flex; width: 100%; align-items: center; gap: var(--sidebar-nav-gap); border-radius: 8px; color: #c5d2df; background: transparent; text-align: left; }
.nav-item { padding: var(--sidebar-nav-pad-y) var(--sidebar-nav-pad-x); margin: 3px 0; min-height: var(--sidebar-nav-item-h); font-size: var(--sidebar-nav-font); font-weight: 600; }
.sidebar .nav-item > i.nav-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--sidebar-nav-icon-size);
  height: var(--sidebar-nav-icon-size);
  flex-shrink: 0;
  font-size: 0;
  font-style: normal;
  line-height: 0;
  text-align: center;
}
.sidebar .nav-item > i.nav-ic svg {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  max-height: 100%;
  flex-shrink: 0;
}
.nav-sub-item i.nav-sub-ic svg { width: var(--sidebar-nav-sub-icon-size); height: var(--sidebar-nav-sub-icon-size); flex-shrink: 0; }
.nav-item:hover, .nav-item.active { color: #fff; background: linear-gradient(100deg, #1763b6, #1979d9); }
.nav-group { margin: 2px 0; }
.nav-item-parent { position: relative; padding-right: 36px; }
.nav-chevron { position: absolute; right: 13px; top: 50%; width: 10px; height: 10px; margin-top: -5px; opacity: .75; }
.nav-chevron::before { content: ""; display: block; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-1px, -2px); transition: transform .15s ease; }
.nav-group.is-open .nav-chevron::before { transform: rotate(-135deg) translate(-1px, 1px); }
.nav-submenu {
  display: none;
  flex-direction: column;
  align-items: stretch;
  gap: 1px;
  margin: 2px 0 4px;
  padding: 2px 0 4px;
  border-left: 2px solid rgba(255,255,255,.12);
}
.nav-group.is-open > .nav-submenu {
  margin-left: 0;
  padding-left: 4px;
}
.nav-group.is-open .nav-submenu { display: flex; }
.nav-sub-item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  width: 100%;
  padding: 8px 10px 8px 4px;
  border: 0;
  border-radius: 6px;
  color: #a8b8c8;
  background: transparent;
  text-align: left;
  font-size: var(--sidebar-nav-sub-font);
  font-weight: 600;
  cursor: pointer;
}
.nav-sub-item > span {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
}
.nav-sub-item:hover { color: #fff; background: rgba(255,255,255,.08); }
.nav-sub-item.active { color: #fff; background: rgba(23,99,182,.55); }
.nav-group.is-active > .nav-item-parent.active { background: linear-gradient(100deg, #1763b6, #1979d9); }
.quick-nav { margin: auto var(--sidebar-brand-pad-x) 0; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.1); overflow: visible; transition: margin .34s var(--sidebar-ease); }
.quick-nav h4 { margin: 0 0 10px 11px; color: #fff; font-size: var(--sidebar-quick-font); }
.quick-link { padding: var(--sidebar-nav-pad-y) calc(var(--sidebar-nav-pad-x) - 2px); min-height: var(--sidebar-nav-item-h); font-size: var(--sidebar-quick-font); overflow: visible; transition: padding .34s var(--sidebar-ease), margin .34s var(--sidebar-ease), width .34s var(--sidebar-ease), font-size .26s var(--sidebar-ease), gap .34s var(--sidebar-ease); }
.quick-link:hover { color: #fff; background: rgba(255,255,255,.07); }
.quick-link b,
.quick-link-ic { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: var(--sidebar-quick-icon-box); height: var(--sidebar-quick-icon-box); color: #8ca4bc; font-size: var(--sidebar-quick-icon-box); line-height: 0; font-style: normal; }
.quick-link-ic svg { width: var(--sidebar-quick-icon-size); height: var(--sidebar-quick-icon-size); flex-shrink: 0; }
.quick-link-label {
  flex: 1 1 auto;
  min-width: 0;
  max-width: clamp(100px, calc(var(--sidebar-width) - 96px), 124px);
  white-space: nowrap;
  overflow: hidden;
  transition: opacity .26s var(--sidebar-ease), max-width .34s var(--sidebar-ease), flex .34s var(--sidebar-ease), visibility .26s var(--sidebar-ease);
}
.nav-item > span:not(.nav-chevron) {
  flex: 1 1 auto;
  min-width: 0;
  max-width: clamp(100px, calc(var(--sidebar-width) - 96px), 124px);
  overflow: hidden;
  white-space: nowrap;
  transition: opacity .26s var(--sidebar-ease), max-width .34s var(--sidebar-ease), flex .34s var(--sidebar-ease), visibility .26s var(--sidebar-ease);
}
.quick-nav h4 {
  overflow: hidden;
  transition: opacity .26s var(--sidebar-ease), max-width .34s var(--sidebar-ease), max-height .34s var(--sidebar-ease), margin .34s var(--sidebar-ease), visibility .26s var(--sidebar-ease);
}
.sidebar-bottom { display: flex; gap: 10px; align-items: center; margin: 14px var(--sidebar-brand-pad-x) 18px; padding: 12px 10px; border-radius: 9px; background: rgba(255,255,255,.055); }
.sidebar-bottom strong, .sidebar-bottom small { display: block; }
.sidebar-bottom small { color: #8ca3bb; font-size: 11px; }
.bot-light { width: 9px; height: 9px; border-radius: 50%; background: #30d17a; box-shadow: 0 0 0 4px rgba(48,209,122,.15); }
.main {
  display: flex;
  flex-direction: column;
  width: calc(100% - var(--app-sidebar-offset));
  height: 100vh;
  min-height: 0;
  margin-left: var(--app-sidebar-offset);
  overflow: hidden;
  transition: margin-left .34s var(--sidebar-ease), width .34s var(--sidebar-ease);
}
.topbar {
  display: flex;
  flex-shrink: 0;
  position: sticky;
  top: 0;
  z-index: 30;
  min-height: var(--vp-topbar-h);
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 1vw + 8px, 18px);
  padding: clamp(8px, 0.5vw + 6px, 10px) clamp(18px, 1vw + 14px, 28px);
  border-bottom: 1px solid var(--line);
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(8px);
}
.mobile-menu {
  display: none;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.topbar h1 { display: inline-flex; margin: 0; font-size: clamp(18px, 0.55vw + 14px, 22px); line-height: 1.2; }
.topbar-head {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  flex: 1;
}
.topbar-title-row {
  display: flex;
  align-items: flex-end;
  gap: clamp(10px, 1vw + 6px, 14px);
  min-width: 0;
}
.topbar-title-row .page-title-row { flex-shrink: 0; }
.page-title-row {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.page-title-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  border-radius: 0;
  color: #3f3f46;
  background: transparent;
  transition: color .15s ease;
  font-size: 0;
  font-style: normal;
  font-weight: 400;
  line-height: 0;
  box-shadow: none;
}
.page-title-icon svg {
  display: block;
  width: 20px;
  height: 20px;
}
.page-title-icon-versions {
  font-size: 0;
  line-height: 0;
}
.page-title-icon-versions svg {
  display: block;
  width: 20px;
  height: 20px;
  color: #3f3f46;
}
#pageTitleText { font-size: inherit; font-weight: inherit; line-height: inherit; }
.page-hint {
  display: block;
  flex: 1;
  min-width: 0;
  max-width: min(520px, 42vw);
  margin: 0;
  padding-bottom: 1px;
  color: #738196;
  font-size: 12px;
  line-height: 1.45;
}
.eyebrow, .panel-kicker { margin: 0; color: #a4aebe; font-size: 9px; font-weight: var(--weight-strong); letter-spacing: 1.5px; line-height: 1.2; }
.topbar-actions { --topbar-ctrl-h: 44px; --topbar-icon-size: 26px; display: flex; align-items: center; gap: 14px; flex-shrink: 0; padding-left: 4px; }
.topbar-create-wrap { position: relative; flex-shrink: 0; }
.topbar-create-btn {
  display: grid;
  width: var(--topbar-ctrl-h);
  height: var(--topbar-ctrl-h);
  place-items: center;
  border: 1px solid #e3eaf2;
  border-radius: 50%;
  color: #617083;
  background: #fff;
  box-shadow: none;
  font-size: 0;
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.topbar-actions .icon-button-bell,
.topbar-actions .icon-button-help,
.topbar-actions .icon-button-advisor,
.topbar-actions .icon-button-routine,
.topbar-actions .topbar-create-btn {
  width: var(--topbar-ctrl-h);
  height: var(--topbar-ctrl-h);
  display: grid;
  place-items: center;
  padding: 0;
  line-height: 0;
  border: 1px solid #e3eaf2;
  border-radius: 50%;
  background: #fff;
  box-shadow: none;
  flex-shrink: 0;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.topbar-actions .icon-button-advisor .icon-advisor {
  display: block;
  width: var(--topbar-icon-size);
  height: var(--topbar-icon-size);
  margin: 0;
  flex: 0 0 auto;
  background-size: var(--topbar-icon-size) var(--topbar-icon-size);
  background-position: center center;
  background-repeat: no-repeat;
}
.topbar-actions .icon-button-bell:hover,
.topbar-actions .icon-button-help:hover,
.topbar-actions .icon-button-advisor:hover,
.topbar-actions .icon-button-routine:hover,
.topbar-actions .topbar-create-btn:hover {
  border-color: #cce0ff;
  background: #f7faff;
  box-shadow: 0 2px 8px rgba(22, 119, 255, .08);
}
.topbar-actions .icon-button-bell.is-active,
.topbar-actions .icon-button-help.is-active,
.topbar-actions .icon-button-advisor.is-active,
.topbar-actions .icon-button-routine.is-active,
.topbar-actions .topbar-create-btn[aria-expanded="true"] {
  border-color: #91caff;
  background: #eef6ff;
  box-shadow: 0 0 0 3px rgba(22, 119, 255, .1);
}
.topbar-actions .icon-button-bell:focus-visible,
.topbar-actions .icon-button-help:focus-visible,
.topbar-actions .icon-button-advisor:focus-visible,
.topbar-actions .icon-button-routine:focus-visible,
.topbar-actions .topbar-create-btn:focus-visible {
  outline: none;
  border-color: #91caff;
  box-shadow: 0 0 0 3px rgba(22, 119, 255, .14);
}
.topbar-create-plus {
  display: block;
  width: var(--topbar-icon-size);
  height: var(--topbar-icon-size);
  background: center/var(--topbar-icon-size) var(--topbar-icon-size) no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%235a677a' stroke-width='2.25' stroke-linecap='round' d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
}
.topbar-actions .topbar-create-btn:hover .topbar-create-plus,
.topbar-actions .topbar-create-btn[aria-expanded="true"] .topbar-create-plus {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%231677ff' stroke-width='2.25' stroke-linecap='round' d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
}
.topbar-create-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 50;
  min-width: 168px;
  padding: 6px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(11, 36, 70, .12);
}
.topbar-create-menu-divider { margin: 6px 0; border: 0; border-top: 1px solid #edf2f7; }
.topbar-create-menu-item {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  padding: 6px 8px;
  border: 0;
  border-radius: 8px;
  color: #40536b;
  background: transparent;
  font-size: 12px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.topbar-create-menu-item:hover { color: #1677ff; background: #f5f9ff; }
.topbar-create-menu-item .xm-ic { width: 16px; height: 16px; opacity: .72; }
.topbar-create-menu-item:hover .xm-ic { opacity: 1; }
.user { display: flex; align-items: center; gap: 10px; }
.search { display: flex; width: 300px; gap: 8px; align-items: center; padding: 8px 16px; border: 1px solid var(--line); border-radius: 999px; background: #f9fbfd; transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.topbar-actions .search {
  height: var(--topbar-ctrl-h);
  box-sizing: border-box;
  gap: 8px;
  padding: 0 16px 0 18px;
  min-height: var(--topbar-ctrl-h);
  align-items: center;
  min-width: 300px;
}
.topbar-actions .search:focus-within { border-color: #b9d6ff; background: #fff; box-shadow: 0 0 0 3px rgba(22,119,255,.08); }
.topbar-actions .search > span {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin: 0;
  align-self: center;
  font-size: 0;
  line-height: 0;
}
.search span { color: #7c8ba0; font-size: 20px; }
.topbar-actions .search span { font-size: 0; line-height: 0; }
input, select, textarea { width: 100%; outline: 0; border: 1px solid #dfe6ef; border-radius: 7px; color: var(--text); background: #fff; padding: 9px 10px; }
.search input { border: 0; background: transparent; padding: 0; }
.topbar-actions .search input { height: auto; min-height: 0; padding: 0; margin: 0; line-height: 1.35; font-size: 13px; align-self: center; }
.icon-button { position: relative; color: #617083; background: transparent; font-size: 23px; }
.icon-button-bell { display: grid; width: var(--topbar-ctrl-h); height: var(--topbar-ctrl-h); place-items: center; border: 1px solid #e3eaf2; border-radius: 50%; background: #fff; font-size: 0; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.topbar-actions .icon-bell,
.topbar-actions .icon-help,
.topbar-actions .icon-advisor,
.topbar-actions .icon-routine {
  display: block;
  flex: 0 0 auto;
  width: var(--topbar-icon-size);
  height: var(--topbar-icon-size);
  background-size: var(--topbar-icon-size) var(--topbar-icon-size);
  background-position: center center;
  background-repeat: no-repeat;
}
.icon-button-help { display: grid; place-items: center; border: 1px solid #e3eaf2; border-radius: 50%; background: #fff; font-size: 0; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.icon-help {
  width: var(--topbar-icon-size);
  height: var(--topbar-icon-size);
  background: center/var(--topbar-icon-size) var(--topbar-icon-size) no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath fill='%235a677a' d='M634.231879 802.717198c-59.83476 88.961124-120.692826 157.574828-223.105311 157.574828-69.891813-11.273764-98.587366-60.905138-83.420945-111.446231l131.73737-432.239422c3.15997-10.592242-2.167363-21.907962-11.902074-25.291013-9.744945-3.394307-28.77844 9.116635-45.271066 26.995841l-79.590709 94.907557c-2.172479-15.893992-0.234337-42.276872-0.234337-52.895721 59.83476-88.972381 158.083411-159.195745 224.732367-159.195745 63.394842 6.444782 93.332688 56.595996 82.298378 111.753223L496.849952 847.208505c-1.777483 9.854439 3.451612 19.766183 12.463869 22.895453 9.739828 3.394307 30.234605-9.121751 46.721091-26.990724l79.585593-94.907557C637.802194 764.094552 634.231879 792.08914 634.231879 802.717198zM611.149161 243.470127c-50.374294 0-91.212398-36.31509-91.212398-89.886193 0-53.56087 40.83708-89.87596 91.212398-89.87596 50.364061 0 91.201142 36.31509 91.201142 89.87596C702.350302 207.155037 661.513222 243.470127 611.149161 243.470127z'/%3E%3C/svg%3E");
}
.topbar-actions .icon-button-help:hover .icon-help,
.topbar-actions .icon-button-help.is-active .icon-help {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath fill='%231677ff' d='M634.231879 802.717198c-59.83476 88.961124-120.692826 157.574828-223.105311 157.574828-69.891813-11.273764-98.587366-60.905138-83.420945-111.446231l131.73737-432.239422c3.15997-10.592242-2.167363-21.907962-11.902074-25.291013-9.744945-3.394307-28.77844 9.116635-45.271066 26.995841l-79.590709 94.907557c-2.172479-15.893992-0.234337-42.276872-0.234337-52.895721 59.83476-88.972381 158.083411-159.195745 224.732367-159.195745 63.394842 6.444782 93.332688 56.595996 82.298378 111.753223L496.849952 847.208505c-1.777483 9.854439 3.451612 19.766183 12.463869 22.895453 9.739828 3.394307 30.234605-9.121751 46.721091-26.990724l79.585593-94.907557C637.802194 764.094552 634.231879 792.08914 634.231879 802.717198zM611.149161 243.470127c-50.374294 0-91.212398-36.31509-91.212398-89.886193 0-53.56087 40.83708-89.87596 91.212398-89.87596 50.364061 0 91.201142 36.31509 91.201142 89.87596C702.350302 207.155037 661.513222 243.470127 611.149161 243.470127z'/%3E%3C/svg%3E");
}
.icon-button-advisor {
  display: grid;
  place-items: center;
  border: 1px solid #e3eaf2;
  border-radius: 50%;
  background: #fff;
  font-size: 0;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.icon-advisor {
  display: block;
  width: var(--topbar-icon-size);
  height: var(--topbar-icon-size);
  background: center/var(--topbar-icon-size) var(--topbar-icon-size) no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='3' y1='2' x2='21' y2='20' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2336cfc9'/%3E%3Cstop offset='.48' stop-color='%234096ff'/%3E%3Cstop offset='1' stop-color='%237724ea'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg transform='translate(12 12.5) scale(1.12) translate(-12 -12)'%3E%3Cpath fill='url(%23g)' d='M12 2.2c1.1 3.8 4.5 6.4 8.5 7.3-4 .9-7.4 3.5-8.5 7.3-1.1-3.8-4.5-6.4-8.5-7.3 4-.9 7.4-3.5 8.5-7.3z'/%3E%3C/g%3E%3C/svg%3E");
}
.topbar-actions .icon-button-advisor:hover .icon-advisor,
.topbar-actions .icon-button-advisor.is-active .icon-advisor {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='3' y1='2' x2='21' y2='20' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2348e6e0'/%3E%3Cstop offset='.48' stop-color='%2369b1ff'/%3E%3Cstop offset='1' stop-color='%239654eb'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg transform='translate(12 12.5) scale(1.12) translate(-12 -12)'%3E%3Cpath fill='url(%23g)' d='M12 2.2c1.1 3.8 4.5 6.4 8.5 7.3-4 .9-7.4 3.5-8.5 7.3-1.1-3.8-4.5-6.4-8.5-7.3 4-.9 7.4-3.5 8.5-7.3z'/%3E%3C/g%3E%3C/svg%3E");
}
.icon-button-routine {
  display: grid;
  place-items: center;
  border: 1px solid #e3eaf2;
  border-radius: 50%;
  background: #fff;
  font-size: 0;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.icon-routine {
  display: block;
  width: var(--topbar-icon-size);
  height: var(--topbar-icon-size);
  background: center/var(--topbar-icon-size) var(--topbar-icon-size) no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath fill='%235a677a' d='M60.67208 409.597713a38.665238 38.665238 0 0 0 36.904609-27.198285c55.173991-176.988925 219.918542-305.606288 415.005359-305.606288s359.945695 128.617363 415.131118 305.606288a38.63094 38.63094 0 1 0 73.740622-23.082529C936.482012 151.12826 742.218347 0 512.639211 0S88.79641 151.12826 23.836067 359.316899a38.665238 38.665238 0 0 0 36.836013 50.30368z m963.967131 102.139336a25.54055 25.54055 0 0 0-25.643444-25.334762H39.041498a38.402287 38.402287 0 1 0 0 76.79314H944.862148c-25.346195 216.237228-209.217578 384.011433-432.23437 384.011433h-0.251518a25.15184 25.15184 0 0 0-25.334762 25.060378v26.660951a25.026081 25.026081 0 0 0 24.763129 25.071811h0.823151c282.775277 0 512.011433-229.224723 512.011433-512v-0.262951z m-588.781708-178.932476a76.804573 76.804573 0 1 0 76.793141-76.804573 76.79314 76.79314 0 0 0-76.793141 76.804573z'/%3E%3C/svg%3E");
}
.topbar-actions .icon-button-routine:hover .icon-routine,
.topbar-actions .icon-button-routine.is-active .icon-routine {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath fill='%231677ff' d='M60.67208 409.597713a38.665238 38.665238 0 0 0 36.904609-27.198285c55.173991-176.988925 219.918542-305.606288 415.005359-305.606288s359.945695 128.617363 415.131118 305.606288a38.63094 38.63094 0 1 0 73.740622-23.082529C936.482012 151.12826 742.218347 0 512.639211 0S88.79641 151.12826 23.836067 359.316899a38.665238 38.665238 0 0 0 36.836013 50.30368z m963.967131 102.139336a25.54055 25.54055 0 0 0-25.643444-25.334762H39.041498a38.402287 38.402287 0 1 0 0 76.79314H944.862148c-25.346195 216.237228-209.217578 384.011433-432.23437 384.011433h-0.251518a25.15184 25.15184 0 0 0-25.334762 25.060378v26.660951a25.026081 25.026081 0 0 0 24.763129 25.071811h0.823151c282.775277 0 512.011433-229.224723 512.011433-512v-0.262951z m-588.781708-178.932476a76.804573 76.804573 0 1 0 76.793141-76.804573 76.79314 76.79314 0 0 0-76.793141 76.804573z'/%3E%3C/svg%3E");
}
.icon-button-routine em {
  min-width: 22px;
  padding: 1px 3px;
  background: var(--red);
  font-size: 9px;
  letter-spacing: -0.02em;
}
.icon-button-routine em.is-done {
  background: #52c41a;
}
.topbar-user-wrap { position: relative; flex-shrink: 0; margin-left: 12px; }
.topbar-user-wrap .user { gap: 6px; padding: 4px 6px 4px 4px; border: 1px solid transparent; border-radius: 10px; transition: border-color .15s, background .15s; }
.topbar-user-wrap .user:hover,
.topbar-user-wrap .user[aria-expanded="true"] { border-color: #e3eaf2; background: #f9fbfd; }
.topbar-user-wrap .user-caret { width: 12px; height: 12px; flex-shrink: 0; }
.user-caret { color: #9aa8b8; font-style: normal; font-size: 12px; }
.topbar-user-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 120;
  min-width: 240px;
  padding: 6px;
  border: 1px solid #e3eaf2;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(18, 45, 82, .12);
}
.topbar-user-menu-divider { margin: 6px 0; border: 0; border-top: 1px solid #edf2f7; }
.topbar-user-menu-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  padding: 10px 10px;
  border: 0;
  border-radius: 8px;
  color: var(--text);
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.topbar-user-menu-item:hover { background: #f5f9ff; }
.topbar-user-menu-item.is-danger:hover { background: #f5f9ff; }
.topbar-user-menu-item b,
.topbar-user-menu-item small { display: block; }
.topbar-user-menu-item b { font-size: 13px; color: #17263a; }
.topbar-user-menu-item small { margin-top: 2px; color: #7b8798; font-size: 11px; line-height: 1.4; }
.topbar-user-menu-item.is-danger b { color: #17263a; }
.topbar-user-menu-item--routine {
  align-items: center;
}
.topbar-user-menu-badge {
  flex: 0 0 auto;
  align-self: center;
  margin-left: auto;
  min-width: 40px;
  padding: 2px 8px;
  border-radius: 999px;
  background: #eef2f7;
  color: #5f6f84;
  font: 600 11px/16px var(--font-yuanyuan, system-ui, sans-serif);
  text-align: center;
  font-style: normal;
  box-shadow: inset 0 0 0 1px rgba(15, 35, 68, .06);
}
.topbar-user-menu-badge.is-pending {
  background: #fff7e6;
  color: #d46b08;
  box-shadow: inset 0 0 0 1px rgba(212, 107, 8, .12);
}
.topbar-user-menu-badge.is-done {
  background: #edf9ee;
  color: #389e0d;
  box-shadow: inset 0 0 0 1px rgba(56, 158, 13, .12);
}
.topbar-menu-ico {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  background: transparent center/22px no-repeat;
}
.menu-ico-recap { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19V5'/%3E%3Cpath d='M4 19h16'/%3E%3Cpath d='M8 15l3-4 3 2 4-6'/%3E%3C/svg%3E"); }
.menu-ico-routine { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath fill='%23252525' d='M60.67208 409.597713a38.665238 38.665238 0 0 0 36.904609-27.198285c55.173991-176.988925 219.918542-305.606288 415.005359-305.606288s359.945695 128.617363 415.131118 305.606288a38.63094 38.63094 0 1 0 73.740622-23.082529C936.482012 151.12826 742.218347 0 512.639211 0S88.79641 151.12826 23.836067 359.316899a38.665238 38.665238 0 0 0 36.836013 50.30368z m963.967131 102.139336a25.54055 25.54055 0 0 0-25.643444-25.334762H39.041498a38.402287 38.402287 0 1 0 0 76.79314H944.862148c-25.346195 216.237228-209.217578 384.011433-432.23437 384.011433h-0.251518a25.15184 25.15184 0 0 0-25.334762 25.060378v26.660951a25.026081 25.026081 0 0 0 24.763129 25.071811h0.823151c282.775277 0 512.011433-229.224723 512.011433-512v-0.262951z m-588.781708-178.932476a76.804573 76.804573 0 1 0 76.793141-76.804573 76.79314 76.79314 0 0 0-76.793141 76.804573z'/%3E%3C/svg%3E"); }
.menu-ico-profile { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M6 21v-2a4 4 0 014-4h4a4 4 0 014 4v2'/%3E%3C/svg%3E"); }
.menu-ico-help { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath fill='%23252525' d='M634.231879 802.717198c-59.83476 88.961124-120.692826 157.574828-223.105311 157.574828-69.891813-11.273764-98.587366-60.905138-83.420945-111.446231l131.73737-432.239422c3.15997-10.592242-2.167363-21.907962-11.902074-25.291013-9.744945-3.394307-28.77844 9.116635-45.271066 26.995841l-79.590709 94.907557c-2.172479-15.893992-0.234337-42.276872-0.234337-52.895721 59.83476-88.972381 158.083411-159.195745 224.732367-159.195745 63.394842 6.444782 93.332688 56.595996 82.298378 111.753223L496.849952 847.208505c-1.777483 9.854439 3.451612 19.766183 12.463869 22.895453 9.739828 3.394307 30.234605-9.121751 46.721091-26.990724l79.585593-94.907557C637.802194 764.094552 634.231879 792.08914 634.231879 802.717198zM611.149161 243.470127c-50.374294 0-91.212398-36.31509-91.212398-89.886193 0-53.56087 40.83708-89.87596 91.212398-89.87596 50.364061 0 91.201142 36.31509 91.201142 89.87596C702.350302 207.155037 661.513222 243.470127 611.149161 243.470127z'/%3E%3C/svg%3E"); }
.menu-ico-feedback { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z'/%3E%3Cpath d='M8 9h8M8 13h5'/%3E%3C/svg%3E"); }
.menu-ico-leave { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E"); }
.menu-ico-desktop { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3Cpath d='M12 7v4M10 9h4'/%3E%3C/svg%3E"); }
.menu-ico-logout { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4'/%3E%3Cpolyline points='16 17 21 12 16 7'/%3E%3Cline x1='21' x2='9' y1='12' y2='12'/%3E%3C/svg%3E"); }
.topbar-user-menu-item:disabled,
.topbar-user-menu-item[aria-disabled="true"] { opacity: .55; cursor: default; pointer-events: none; }
.icon-bell {
  width: var(--topbar-icon-size);
  height: var(--topbar-icon-size);
  background: center/var(--topbar-icon-size) var(--topbar-icon-size) no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%235a677a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M18 8a6 6 0 10-12 0c0 6-3 8-3 8h18s-3-2-3-8'/%3E%3Cpath stroke='%235a677a' stroke-width='2' stroke-linecap='round' d='M13.73 21a2 2 0 01-3.46 0'/%3E%3C/svg%3E");
}
.topbar-actions .icon-button-bell:hover .icon-bell,
.topbar-actions .icon-button-bell.is-active .icon-bell {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%231677ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M18 8a6 6 0 10-12 0c0 6-3 8-3 8h18s-3-2-3-8'/%3E%3Cpath stroke='%231677ff' stroke-width='2' stroke-linecap='round' d='M13.73 21a2 2 0 01-3.46 0'/%3E%3C/svg%3E");
}
.icon-button em { position: absolute; top: -4px; right: -4px; min-width: 17px; padding: 1px 4px; border-radius: 10px; color: #fff; background: var(--red); font: normal 10px/15px Arial; box-shadow: 0 0 0 2px #fff; }
.icon-button em.is-capped { min-width: 24px; padding: 1px 3px; font-size: 9px; letter-spacing: -0.02em; }
.user { color: var(--text); background: transparent; text-align: left; }
.user strong, .user small { display: block; }
.user small { color: var(--muted); font-size: 11px; }
.avatar { display: grid; flex: 0 0 auto; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: #fff; background: #308ad7; font-size: 11px; font-weight: var(--weight-strong); }
.avatar-main { width: 38px; height: 38px; background: linear-gradient(145deg, #83c1eb, #17578c); }
.view {
  display: none;
  flex: 1 1 auto;
  min-height: 0;
  padding: var(--vp-view-pad);
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.view.active { display: block; }
#orgView.view.active,
#versionsView.view.active,
#kpiView.view.active,
#settingsView.view.active {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* 组织 / 版本 / 绩效 / 系统设置：正文与任务、工作台对齐（基准 14px，避免局部 12px 显小） */
#orgView,
#versionsView,
#kpiView,
#settingsView {
  font-size: var(--font-page);
  line-height: 1.5;
}
#settingsView.view {
  padding: 18px;
  background: #fff;
}
#settingsView.view.active { padding-bottom: 18px; }
#settingsView .settings-main-body:has(.role-perm-layout) {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding-bottom: 16px;
}
#settingsView .settings-main-body:has(.role-perm-layout) > .management-card.wide { flex-shrink: 0; }
#orgView .org-member-table { font-size: var(--font-page); }
#orgView .org-member-table th { font-size: var(--font-page-sm); }
#orgView .org-dept-label b { font-size: var(--font-page); }
#orgView .org-dept-count,
#orgView .org-dept-lead-chip,
#orgView .org-dept-search,
#orgView .org-dept-menu button,
#orgView .org-dept-inline-form input,
#orgView .org-dept-inline-form .primary-button,
#orgView .org-dept-inline-form .ghost-button,
#orgView .org-online-status,
#orgView .org-pagination-info,
#orgView .org-page-btn,
#orgView .org-page-size,
#orgView .org-profile-section h4,
#orgView .org-profile-title { font-size: var(--font-page-sm); }
#orgView .org-table-header h3 { font-size: var(--font-page-lg); }
#orgView .org-table-header h3 em { font-size: var(--font-page-sm); }
#orgView .org-member-panel-name { font-size: var(--font-page-lg); }
#versionsView .timeline-head b,
#versionsView .settings-version-timeline-only .timeline-head b { font-size: var(--font-page); }
#versionsView .timeline-body small,
#versionsView .settings-version-timeline-only .timeline-body small { font-size: var(--font-page-sm); }
#versionsView .version-timeline-toolbar h3 { font-size: var(--font-page-lg); }
#versionsView .version-timeline-toolbar p,
#versionsView .version-timeline-filters button,
#versionsView .versions-scope-btn { font-size: var(--font-page-sm); }
#versionsView .version-metrics-hero-title { font-size: var(--font-page-lg); }
#versionsView .version-metrics-hero-desc { font-size: var(--font-page-xs); }
#settingsView .settings-maintain-table td,
#settingsView .settings-maintain-table th,
#settingsView .settings-maintain-table--sla input[type="number"],
#settingsView .settings-maintain-table--sla input[type="text"] { font-size: var(--font-page-sm); }
#settingsView .settings-maintain-intro { font-size: var(--font-page-sm); }
#settingsView .settings-section > h4 { font-size: var(--font-page-lg); }
#settingsView .settings-section > p { font-size: var(--font-page-sm); }
.welcome { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; padding: 20px 22px; border-radius: 11px; color: #fff; background: linear-gradient(110deg, #135ab3, #2188f3 72%, #66b7ff); box-shadow: 0 8px 20px rgba(20,102,194,.18); }
.command-row { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; padding: 11px 14px; border-top: 1px solid #edf2f7; border-left: 3px solid transparent; cursor: pointer; transition: border-color .16s ease, background .16s ease; }
.command-row.is-active { border-left-color: #1677ff; background: #f7fbff; }
.command-row:first-child { border-top: 0; }.command-row b, .command-row small { display: block; }.command-row b { color: #17263a; font-size: 13px; }.command-row small { margin-top: 2px; color: #758397; font-size: 11px; }.command-row time { color: #8b98a8; font-size: 11px; }.command-row.risk { background: #fffafa; }
#dashboardView.view.active {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
}
#dashboardView.view.active:has(.xm-role-panel[data-role-panel="employee"].active) {
  overflow-y: hidden;
}
#dashboardView.view.active:has(.xm-role-panel[data-role-panel="employee"].active) .xm-home-main {
  overflow-y: hidden;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.xm-home {
  display: flex;
  flex-direction: column;
  flex: 1;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 0;
  gap: 0;
  align-items: stretch;
  overflow-x: hidden;
}
.xm-home-left {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-self: stretch;
  width: 196px;
  max-width: 196px;
  min-width: 0;
  min-height: 100%;
  flex-shrink: 0;
}
.xm-home-left > .xm-side-card {
  flex: 0 0 auto;
  min-height: 0;
  height: auto;
  display: flex;
  flex-direction: column;
  overflow: visible;
}
.xm-home-left > .xm-side-card:nth-child(1) {
  flex: 0 0 auto;
}
.xm-home-left-bottom {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: auto;
  flex: 1 1 auto;
  min-height: 0;
  justify-content: flex-end;
}
.xm-home-left-bottom > .xm-side-card {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  justify-content: flex-start;
}
.xm-home-left-bottom > .xm-quick-card {
  flex: 1.4 1 0;
}
.xm-home-left-bottom > .xm-pending-card {
  flex: 1 1 0;
}
.xm-home-left-bottom > .xm-guide-card {
  flex: 1 1 0;
}
.xm-home-left .xm-pending-card,
.xm-home-left .xm-guide-card {
  justify-content: flex-start;
}
.xm-home-left .xm-pending-card h3,
.xm-home-left .xm-guide-card h3 { margin-bottom: 6px; }
.xm-home-left .xm-pending-card .xm-pending-item { margin: 0; }
.xm-home-left .xm-pending-card .xm-pending-item + .xm-pending-item { margin-top: 6px; }
.xm-home-left .xm-pending-card .xm-pending-item:last-child { margin-bottom: 0; }
.xm-home-left > .xm-side-card { padding: 11px 12px; }
.xm-home-left > .xm-side-card.compact { padding: 11px 12px; }
.xm-home-left > .xm-side-card h3 { margin-bottom: 7px; font-size: 13px; }
.xm-home-left .xm-view-card { gap: 7px; margin-bottom: 4px; padding: 7px 7px; }
.xm-home-left .xm-view-icon { width: 26px; height: 26px; border-radius: 8px; background-size: 15px; }
.xm-home-left .xm-view-card .xm-chevron { display: none; }
.xm-home-left .xm-view-card .xm-view-text b { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xm-home-left .xm-view-card .xm-view-text small { display: block; font-size: 11px; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xm-home-left .xm-quick,
.xm-home-left .xm-quick-compact { gap: 7px; padding: 7px 7px; font-size: 12px; }
.xm-home-left .xm-ic { width: 15px; height: 15px; }
.xm-home-left .xm-pending-card .xm-pending-item { padding: 0 7px; gap: 7px; }
.xm-home-left .xm-side-card.compact .xm-pending-item { font-size: 12px; }
.xm-quick-compact { margin: 0; padding: 6px 5px; font-size: 12px; }
.xm-guide-card .xm-quick-compact + .xm-quick-compact { margin-top: 1px; }
.xm-view-card.is-locked { display: none !important; }
.xm-view-card[disabled] { opacity: .45; cursor: not-allowed; }
.org-dept-panel-body { display: flex; flex-direction: column; flex: 1; min-height: 0; padding: 0; }
.org-dept-searchbar {
  display: flex; align-items: center; gap: 8px; padding: 12px 12px 10px; border-bottom: 1px solid #eef2f6; flex-shrink: 0;
}
.org-dept-search {
  flex: 1; min-width: 0; height: 34px; padding: 0 10px; border: 1px solid #e4ebf3; border-radius: 8px;
  font-size: 13px; color: var(--text); background: #fff;
}
.org-dept-search::placeholder { color: #a8b4c2; }
.org-dept-search:focus { outline: none; border-color: #b9d6ff; box-shadow: 0 0 0 2px rgba(22, 119, 255, .12); }
.org-dept-add-btn {
  flex-shrink: 0; width: 34px; height: 34px; border: 1px solid #e4ebf3; border-radius: 8px;
  color: #1677ff; background: #fff; font-size: 20px; font-weight: 400; line-height: 1; cursor: pointer;
}
.org-dept-add-btn:hover { border-color: #b9d6ff; background: #f5f9ff; }
.org-dept-tree { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 0 8px; }
.org-dept-node.is-footer { margin-top: 8px; padding-top: 8px; border-top: 1px solid #eef2f6; }
.org-dept-node.is-footer .org-dept-caret.is-spacer { visibility: hidden; }
.org-dept-node.is-root-org > .org-dept-row .org-dept-label b { font-weight: var(--weight-strong); }
.org-dept-empty { margin: 16px 12px; font-size: 12px; color: var(--muted); }
.org-dept-node { --dept-indent: calc(var(--dept-depth, 0) * 20px); }
.org-dept-row {
  display: flex; align-items: center; gap: 4px; min-height: 40px; margin: 2px 4px; padding-right: 4px; border-radius: 8px;
  padding-left: calc(8px + var(--dept-indent)); cursor: pointer;
}
.org-dept-node.is-active > .org-dept-row { background: #eef6ff; }
.org-dept-node:hover > .org-dept-row { background: #f8fbff; }
.org-dept-node.is-active:hover > .org-dept-row { background: #eef6ff; }
.org-dept-caret {
  flex-shrink: 0; width: 20px; height: 28px; border: 0; background: transparent; cursor: pointer; position: relative;
}
.org-dept-caret.is-spacer { visibility: hidden; pointer-events: none; }
.org-dept-caret::before {
  content: ""; position: absolute; left: 6px; top: 50%; width: 6px; height: 6px; margin-top: -4px;
  border-right: 1.5px solid #9aa8b8; border-bottom: 1.5px solid #9aa8b8; transform: rotate(-45deg); transition: transform .15s;
}
.org-dept-node.is-expanded > .org-dept-row .org-dept-caret::before { transform: rotate(45deg); margin-top: -6px; }
.org-dept-select {
  display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; border: 0; background: transparent;
  text-align: left; padding: 6px 4px; cursor: pointer; color: var(--text);
}
.org-dept-folder {
  flex-shrink: 0; width: 18px; height: 18px; background: center/18px no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='1.75'%3E%3Cpath d='M3 7h6l2 3h10v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z'/%3E%3C/svg%3E");
}
.org-dept-node.has-children .org-dept-folder.is-expandable { cursor: pointer; }
.org-dept-node.has-children:not(.is-expanded) .org-dept-folder.is-expandable {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%231677ff' stroke-width='1.75'%3E%3Cpath d='M3 7h6l2 3h10v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z'/%3E%3C/svg%3E");
}
.org-dept-node.is-system .org-dept-folder {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='1.75'%3E%3Cpath d='M20 7H4a2 2 0 00-2 2v10a2 2 0 002 2h16a2 2 0 002-2V9a2 2 0 00-2-2zM4 7l2-3h12l2 3'/%3E%3C/svg%3E");
}
.dept-project-row.is-locked { opacity: .92; cursor: default; pointer-events: none; }
.dept-project-row.is-locked input { pointer-events: none; }
.org-root-settings p strong { color: #1677ff; }
.org-member-panel-hint { display: block; margin-top: 4px; font-size: 11px; font-weight: 500; color: #6d8096; }
.org-member-panel-hint--project { color: #1677ff; }
.org-dept-label { flex: 1; min-width: 0; overflow: hidden; display: inline-flex; align-items: center; gap: 6px; }
.org-dept-label b { flex: 1; min-width: 0; display: block; font-size: var(--font-page); font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.org-dept-node.is-active .org-dept-label b { color: #1677ff; }
.org-dept-node.is-active .org-dept-folder { filter: var(--icon-hover-filter); }
.org-dept-count {
  flex-shrink: 0; min-width: 0; padding: 0; text-align: right;
  font-size: 12px; font-weight: 600; color: #8b98a8; font-variant-numeric: tabular-nums; line-height: 1.2;
}
.org-dept-row-tail {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  margin-right: 2px;
}
.org-dept-node.is-active .org-dept-count { color: #1677ff; }
.org-dept-lead-chip {
  flex-shrink: 0; max-width: 72px; padding: 0 6px; font-size: 12px; font-weight: 600; color: #6d8096;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.org-dept-row-menu { position: relative; flex-shrink: 0; }
.org-dept-more {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border: 0; border-radius: 6px; background: transparent; color: #8b98a8;
  cursor: pointer; opacity: 0; transition: opacity .12s, background .12s;
}
.org-dept-row:hover .org-dept-more, .org-dept-node.is-active .org-dept-more, .org-dept-more[aria-expanded="true"] { opacity: 1; }
.org-dept-more:hover, .org-dept-more[aria-expanded="true"] { background: rgba(22, 119, 255, .08); color: #1677ff; }
.org-dept-menu {
  position: absolute; right: 0; top: calc(100% + 4px); z-index: 30; min-width: 148px;
  padding: 6px 0; border: 1px solid #e8eef5; border-radius: 10px; background: #fff;
  box-shadow: 0 10px 28px rgba(18, 45, 82, .14);
}
.org-dept-menu button {
  display: block; width: 100%; padding: 9px 14px; border: 0; background: transparent; text-align: left;
  font-size: 13px; color: var(--text); cursor: pointer;
}
.org-dept-menu button:hover { background: #f5f9ff; color: #1677ff; }
.org-dept-menu-meta {
  margin: 4px 0 0; padding: 8px 14px 4px; border-top: 1px solid #f0f2f5; font-size: 11px; color: #a8b4c2;
}
.org-dept-inline-form, .org-dept-inline-slot .org-dept-inline-form {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  padding: 8px 12px 10px calc(12px + var(--dept-indent, 0px)); border-top: 1px dashed #e8eef5; background: #fafcff;
}
.org-dept-inline-form input {
  flex: 1; min-width: 100px; height: 32px; padding: 0 10px; border: 1px solid #dfe7f2; border-radius: 8px; font-size: 12px;
}
.org-dept-inline-form .primary-button, .org-dept-inline-form .ghost-button { height: 32px; padding: 0 12px; font-size: 12px; }
.org-dept-inline-slot { border-top: 1px solid #eef2f6; }
.xm-person-add.is-replace span { font-size: 11px; font-weight: var(--weight-strong); }
.org-member-panel-name { font-size: 15px; font-weight: var(--weight-strong); color: var(--text); }
.org-member-panel-count { margin-left: 8px; font-size: 13px; font-weight: 600; color: #8b98a8; }
.org-dept-lead-badge {
  display: inline-flex; margin-left: 6px; padding: 0 6px; height: 18px; align-items: center;
  border-radius: 999px; font-size: 10px; font-weight: var(--weight-strong); color: #9a5b16; background: #fff4e6; border: 1px solid #ffd8a8;
}
.org-dept-settings .management-grid { margin-top: 10px; }
.xm-side-card, .xm-panel { border: 1px solid #e7edf5; border-radius: 12px; background: rgba(255,255,255,.96); box-shadow: 0 8px 22px rgba(18, 45, 82, .035); }
.xm-side-card { padding: 12px; }
.xm-side-card h3 { margin: 0 0 8px; color: #13243a; font-size: 13px; line-height: 1.2; flex-shrink: 0; }
.xm-view-card { display: flex; align-items: center; gap: 8px; width: 100%; margin: 0 0 5px; padding: 8px 8px; border: 1px solid transparent; border-radius: 9px; color: #26364a; background: transparent; text-align: left; flex-shrink: 0; }
.xm-view-card:last-of-type { margin-bottom: 0; }
.xm-view-card.active { border-color: #91caff; background: #eef6ff; }
.xm-view-text { flex: 1; min-width: 0; }
.xm-view-card .xm-view-text b, .xm-view-card .xm-view-text small { display: block; }
.xm-view-card .xm-view-text b { font-size: 12px; line-height: 1.25; color: #13243a; }
.xm-view-card .xm-view-text small { margin-top: 1px; color: #7b8798; font-size: 10px; line-height: 1.3; }
.xm-view-icon { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 0; background: transparent center/18px no-repeat; }
.xm-view-icon.role-employee { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath stroke-linecap='round' d='M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z'/%3E%3C/svg%3E"); }
.xm-view-icon.role-manager { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath stroke-linecap='round' d='M17 20h5v-2a4 4 0 00-5-3.87M9 20H4v-2a4 4 0 015-3.87M16 3.13a4 4 0 010 7.75M8 3.13a4 4 0 000 7.75M12 14a4 4 0 00-4 4v2h8v-2a4 4 0 00-4-4z'/%3E%3C/svg%3E"); }
.xm-view-icon.role-boss { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath stroke-linecap='round' d='M3 21h18M5 21V9l7-4 7 4v12M9 21v-6h6v6'/%3E%3C/svg%3E"); }
.xm-chevron { flex: 0 0 auto; width: 8px; height: 8px; border-top: 2px solid #8ba0b6; border-right: 2px solid #8ba0b6; transform: rotate(45deg); font-style: normal; }
.xm-view-card.active .xm-chevron { border-color: #1677ff; }
.xm-quick { display: flex; align-items: center; gap: 7px; width: 100%; margin: 0; padding: 6px 5px; border: 0; border-radius: 8px; color: #40536b; background: transparent; font-size: 12px; line-height: 1.25; text-align: left; cursor: pointer; flex-shrink: 0; }
.xm-home-left-bottom .xm-quick + .xm-quick { margin-top: 1px; }
.xm-quick:hover { color: #1677ff; background: #f5f9ff; }
.xm-ic { flex: 0 0 auto; width: 16px; height: 16px; background: center/contain no-repeat; opacity: .72; }
.xm-quick:hover .xm-ic { opacity: 1; }
.ic-plus { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2340536b' stroke-width='2'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E"); }
.ic-demand { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2340536b' stroke-width='2'%3E%3Cpath d='M7 4h10v16l-5-3-5 3z'/%3E%3C/svg%3E"); }
.ic-feedback { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2340536b' stroke-width='2'%3E%3Cpath d='M6 4h12a2 2 0 012 2v9a2 2 0 01-2 2H10l-4 4V6a2 2 0 00-2-2z'/%3E%3C/svg%3E"); }
.ic-folder { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2340536b' stroke-width='2'%3E%3Cpath d='M3 7h5l2 3h11v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z'/%3E%3C/svg%3E"); }
.ic-edit { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2340536b' stroke-width='2'%3E%3Cpath d='M11 4H6a2 2 0 00-2 2v12h12v-5M18.5 2.5a2.12 2.12 0 013 3L12 15l-4 1 1-4 9.5-9.5z'/%3E%3C/svg%3E"); }
.ic-star { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2340536b' stroke-width='2'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87L18.18 22 12 18.56 5.82 22 7 14.14 2 9.27l6.91-1.01L12 2z'/%3E%3C/svg%3E"); }
.ic-template { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2340536b' stroke-width='2'%3E%3Cpath d='M8 3h8l4 4v14H4V3h4zM8 3v6h8'/%3E%3C/svg%3E"); }
.ic-chart { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2340536b' stroke-width='2'%3E%3Cpath d='M4 19V5M10 19V9M16 19v-6M22 19V3'/%3E%3C/svg%3E"); }
.ic-help { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2340536b' stroke-width='2'%3E%3Cpath d='M9.09 9a3 3 0 115.82 1c0 2-3 2.5-3 4M12 17h.01'/%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E"); }
.ic-org { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2340536b' stroke-width='2'%3E%3Cpath d='M17 20h5v-2a4 4 0 00-5-3.87M9 20H4v-2a4 4 0 015-3.87M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z'/%3E%3C/svg%3E"); }
.ic-profile { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2340536b' stroke-width='2'%3E%3Cpath d='M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z'/%3E%3C/svg%3E"); }
.ic-gear { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23617083' stroke-width='2'%3E%3Cpath d='M12 15a3 3 0 100-6 3 3 0 000 6zM19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 01-2.83 2.83l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.68a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06A1.65 1.65 0 0019.4 9c.36 0 .7.07 1 .2H21a2 2 0 010 4h-.09c-.69.08-1.3.42-1.51 1z'/%3E%3C/svg%3E"); }
.ic-plus-white { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23fff' stroke-width='2.2'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E"); }
.xm-pending-card h3 { display: flex; align-items: center; justify-content: space-between; }
.xm-pending-card h3 > b { color: #1677ff; font-size: 14px; font-weight: var(--weight-display); }
.xm-status-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; font-style: normal; }
.xm-status-dot.dot-warn { background: #ff9518; }
.xm-status-dot.dot-danger { background: #ff5151; }
.xm-side-card.compact .xm-pending-item span { flex: 1; }
.xm-side-card.compact { padding: 11px 12px; }
.xm-pending-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 7px 7px;
  border: 0;
  border-radius: 8px;
  color: #40536b;
  background: transparent;
  font-size: 12px;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
  transition: color .15s, background .15s;
}
.xm-pending-item + .xm-pending-item { margin-top: 2px; }
.xm-pending-item:hover { color: #1677ff; background: #f5f9ff; }
.xm-pending-item b { margin-left: auto; color: #102033; font-weight: var(--weight-display); }
.xm-pending-item:hover b { color: #1677ff; }
.xm-side-card.compact b { margin-left: auto; color: #102033; }
.xm-home-main { display: flex; flex-direction: column; flex: 1; gap: var(--vp-page-gap, 12px); min-width: 0; max-width: 100%; min-height: 0; overflow-x: hidden; }
.xm-greeting, .xm-manager-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.xm-greeting { min-height: 44px; }
.xm-greeting h2, .xm-manager-head h2 { margin: 0; font-size: 20px; line-height: 1.2; }
.xm-greeting p, .xm-manager-head p { margin: 3px 0 0; color: #6f7f92; font-size: 12px; }
.xm-greeting-date { margin: 4px 0 0 !important; color: #8b98a8 !important; font-size: 12px !important; }
.xm-greeting-sub { display: none; }
.xm-greeting-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  flex-shrink: 0;
  justify-content: flex-end;
}
.xm-view-switcher {
  display: flex;
  align-items: stretch;
  gap: 4px;
  flex-wrap: nowrap;
  padding: 4px;
  border: 1px solid #ececf1;
  border-radius: 12px;
  background: #f7f7f8;
}
.xm-view-switcher .xm-view-card {
  width: auto;
  flex: 1 1 0;
  min-width: 118px;
  max-width: none;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.xm-view-switcher .xm-view-card[hidden],
.xm-view-switcher .xm-view-card.is-locked {
  display: none !important;
}
.xm-view-switcher .xm-view-card:hover {
  border-color: transparent;
  background: #ececed;
}
.xm-view-switcher .xm-view-card.active {
  border-color: #91caff;
  background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%);
  box-shadow: 0 1px 2px rgba(22, 119, 255, .08);
}
.xm-view-switcher .xm-view-card .xm-chevron { display: none; }
.xm-view-switcher .xm-view-icon {
  width: 28px;
  height: 28px;
  background: transparent center/22px no-repeat;
}
.xm-view-switcher .xm-view-icon.role-employee { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M6 21v-2a4 4 0 014-4h4a4 4 0 014 4v2'/%3E%3C/svg%3E"); }
.xm-view-switcher .xm-view-icon.role-manager { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 00-4-4H6a4 4 0 00-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75'/%3E%3C/svg%3E"); }
.xm-view-switcher .xm-view-icon.role-boss { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='5' rx='1'/%3E%3Crect x='14' y='12' width='7' height='9' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E"); }
.xm-view-switcher .xm-view-card.active .xm-view-icon { background-color: transparent; }
.xm-view-switcher .xm-view-text b { font-size: 12px; font-weight: 600; color: #353740; white-space: nowrap; }
.xm-view-switcher .xm-view-card.active .xm-view-text b { color: #1677ff; font-weight: var(--weight-strong); }
.xm-view-switcher .xm-view-text small {
  display: block;
  font-size: 10px;
  line-height: 1.3;
  color: #6e6e80;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.xm-view-switcher .xm-view-card.active .xm-view-text small { color: #5b9fff; }
.xm-btn-ghost.secondary-button { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border: 1px solid #dbe3ed; border-radius: 8px; color: #40536b; background: #fff; font-weight: 600; box-shadow: 0 1px 2px rgba(18,45,82,.04); }
.xm-btn-primary.primary-button { display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border: 0; border-radius: 8px; color: #fff; background: #1677ff; font-weight: var(--weight-strong); box-shadow: 0 6px 16px rgba(22,119,255,.28); }
.xm-btn-primary .xm-ic { width: 14px; height: 14px; opacity: 1; }
.xm-link-btn { color: #1677ff; font-weight: 400; }
.xm-panel-title h3 small { color: #8b98a8; font-weight: 500; font-size: 12px; }
.date-pill { display: inline-flex; align-items: center; min-height: 37px; padding: 8px 14px; border: 1px solid #dbe3ed; border-radius: 7px; color: #617083; background: #fff; font-weight: var(--weight-strong); }
.xm-role-panel > .xm-manager-head { display: none; }
.xm-role-panel { display: none; }
.xm-role-panel.active { display: grid; gap: 0; }
.xm-panel-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px 9px; }
.xm-panel-title h3 { margin: 0; color: #13243a; font-size: 14px; line-height: 1.25; }
.xm-metrics { display: grid; gap: 10px; align-items: stretch; }
.xm-metrics.five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.xm-metrics.six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.xm-metrics article {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 10px;
  min-height: 88px;
  height: 100%;
  padding: 12px 14px;
  border: 1px solid #d7e4f2;
  border-radius: var(--dash-card-radius);
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 35, 62, .06);
  font-family: var(--font-yuanyuan);
}
.xm-metrics article::before { content: none; }
.xm-metric-icon {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  background: transparent center/24px no-repeat;
}
.xm-metrics article > span:not(.xm-metric-icon) {
  flex: 1 1 auto;
  min-width: 0;
  margin-top: 2px;
}
.xm-metrics article > b {
  width: 100%;
  margin: 2px 0 1px 44px;
}
#employeeMetrics [data-metric] { cursor: pointer; }
#employeeMetrics article,
#managerMetrics article,
#bossMetrics article {
  flex-wrap: nowrap;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  min-height: 88px;
}
#employeeMetrics article > div,
#managerMetrics article > div,
#bossMetrics article > div {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
}
#employeeMetrics article > span.xm-metric-icon,
#managerMetrics article > span.xm-metric-icon,
#bossMetrics article > span.xm-metric-icon {
  flex: 0 0 auto;
  align-self: center;
}
#employeeMetrics article > div > span:not(.xm-metric-icon),
#managerMetrics article > div > span:not(.xm-metric-icon),
#bossMetrics article > div > span:not(.xm-metric-icon) {
  display: block;
  margin: 0;
  color: #465871;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
}
#employeeMetrics article > div > b,
#managerMetrics article > div > b,
#bossMetrics article > div > b {
  display: block;
  width: auto;
  margin: 0;
  color: #0d0d0d;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.05;
}
#employeeMetrics article > div > small,
#managerMetrics article > div > small,
#bossMetrics article > div > small {
  display: block;
  margin-top: 0;
  color: #64748b;
  font-size: 11px;
  line-height: 1.35;
}
#employeeMetrics [data-metric="owned"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2'/%3E%3Cpath d='M15 2H9a1 1 0 00-1 1v2a1 1 0 001 1h6a1 1 0 001-1V3a1 1 0 00-1-1z'/%3E%3Cpath d='M12 11h4M12 16h4M8 11h.01M8 16h.01'/%3E%3C/svg%3E"); }
#employeeMetrics [data-metric="pending"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9'/%3E%3Cpath d='M13.73 21a2 2 0 01-3.46 0'/%3E%3C/svg%3E"); }
#employeeMetrics [data-metric="soon"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='13' r='8'/%3E%3Cpath d='M12 9v4l2 1M5 3L3 5M19 3l2 2M5 21h14'/%3E%3C/svg%3E"); }
#employeeMetrics [data-metric="late"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E"); }
#employeeMetrics [data-metric="done"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 11-5.93-9.14'/%3E%3Cpath d='M22 4L12 14.01l-3-3'/%3E%3C/svg%3E"); }
#managerMetrics [data-metric="mgr-total"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 6h8M11 12h8M11 18h8'/%3E%3Cpath d='m5 8 2 2 3.5-3.5'/%3E%3Cpath d='m5 14 2 2 3.5-3.5'/%3E%3C/svg%3E"); }
#managerMetrics [data-metric="mgr-doing"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolygon points='10 8 16 12 10 16 10 8'/%3E%3C/svg%3E"); }
#managerMetrics [data-metric="mgr-done"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 11-5.93-9.14'/%3E%3Cpath d='M22 4L12 14.01l-3-3'/%3E%3C/svg%3E"); }
#managerMetrics [data-metric="mgr-late"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E"); }
#managerMetrics [data-metric="mgr-version"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='6' x2='6' y1='3' y2='15'/%3E%3Ccircle cx='18' cy='6' r='3'/%3E%3Ccircle cx='6' cy='18' r='3'/%3E%3Cpath d='M18 9a9 9 0 01-9 9'/%3E%3C/svg%3E"); }
#managerMetrics [data-metric="mgr-rate"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.21 15.89A10 10 0 118 2.83'/%3E%3Cpath d='M22 12A10 10 0 0012 2v10z'/%3E%3C/svg%3E"); }
#bossMetrics [data-metric="boss-block"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m4.9 4.9 14.2 14.2'/%3E%3C/svg%3E"); }
#bossMetrics [data-metric="boss-decision"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpath d='M14 2v6h6M9 15l2 2 4-4'/%3E%3C/svg%3E"); }
#bossMetrics [data-metric="boss-version"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='6' x2='6' y1='3' y2='15'/%3E%3Ccircle cx='18' cy='6' r='3'/%3E%3Ccircle cx='6' cy='18' r='3'/%3E%3Cpath d='M18 9a9 9 0 01-9 9'/%3E%3C/svg%3E"); }
#bossMetrics [data-metric="boss-project"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'/%3E%3C/svg%3E"); }
#bossMetrics [data-metric="boss-late"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E"); }
#bossMetrics [data-metric="boss-rate"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 7L13.5 15.5 8.5 10.5 2 17'/%3E%3Cpath d='M16 7h6v6'/%3E%3C/svg%3E"); }
.xm-metric-label, .xm-metrics article > span:not(.xm-metric-icon) {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  color: #6e6e80;
  font-weight: 500;
}
.xm-metrics small { display: block; color: #6e6e80; }
.xm-metrics small b, .xm-metrics small .up { display: inline; margin: 0; font-size: 11px; font-weight: var(--weight-strong); line-height: inherit; }
.xm-metrics small b.up, .xm-metrics small .up { color: var(--trend-good); }
.xm-metrics small b.down, .xm-metrics small .down { color: var(--trend-bad); font-weight: var(--weight-strong); }
.xm-metrics small b.flat, .xm-metrics small .flat { color: var(--trend-flat); font-weight: 500; }
.xm-metrics span, .xm-metrics small { font-size: 11px; line-height: 1.25; }
.xm-metrics article > b { display: block; margin: 3px 0 1px; color: #0d0d0d; font-size: 22px; font-weight: var(--weight-strong); line-height: 1.05; }
.xm-grid { display: grid; gap: 12px; }
.xm-grid.two, .employee-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.xm-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.manager-top { grid-template-columns: minmax(0, 1.55fr) minmax(280px, .85fr); align-items: start; }
.manager-top > .xm-panel { display: flex; flex-direction: column; min-width: 0; height: auto; }
.manager-top .wide { min-height: 0; flex: 1; }
.manager-top .xm-action-grid { flex: 1; align-content: start; }
.xm-role-panel[data-role-panel="manager"].active,
.xm-role-panel[data-role-panel="boss"].active {
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
  overflow-y: visible;
  gap: 0;
}
.xm-role-panel[data-role-panel="manager"].active,
.xm-role-panel[data-role-panel="boss"].active {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.dash-board {
  display: flex;
  flex-direction: column;
  gap: var(--vp-dash-row-gap, 12px);
  min-width: 0;
}
.dash-row {
  display: grid;
  gap: var(--vp-dash-row-gap, 12px);
  align-items: stretch;
  min-width: 0;
}
.dash-row-split { grid-template-columns: minmax(0, 1.55fr) minmax(260px, 0.85fr); }
.dash-row-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dash-row-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dash-row-single { grid-template-columns: minmax(0, 1fr); }
.dash-board .dash-kpi-strip {
  padding: 0;
  align-items: stretch;
}
.dash-board .dash-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: auto;
  max-height: none;
  height: auto;
  border-radius: 12px;
  overflow: hidden;
}
.dash-board .dash-card-tall.is-scrollable { max-height: 360px; }
.dash-board .dash-card.is-scrollable:not(.dash-card-tall) { max-height: 320px; }
.dash-board .dash-card-wide { min-width: 0; }
.dash-board .dash-card-actions .xm-action-grid {
  align-content: start;
  padding: 0 14px 14px;
}
.dash-board .dash-card .xm-panel-title {
  flex-shrink: 0;
  border-bottom: 1px solid #f0f2f5;
}
.dash-board .dash-card-body {
  flex: 0 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: hidden;
}
.dash-board .dash-card.is-scrollable .dash-card-body {
  flex: 1 1 auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.dash-board .dash-card-body.xm-table {
  overflow-x: auto;
  overflow-y: hidden;
}
.dash-board .dash-card.is-scrollable .dash-card-body.xm-table {
  overflow-y: auto;
}
.dash-board .dash-card-body.xm-risk-strip {
  display: grid;
  align-content: start;
  padding: 0 12px 12px;
}
.dash-board .dash-card-body.xm-list-body {
  padding: 0;
}
.dash-board .dash-card-body .empty-tip {
  padding: 16px;
  text-align: center;
}
.xm-dashboard-section {
  display: grid;
  gap: 14px;
  min-width: 0;
}
.xm-dashboard-section + .xm-dashboard-section {
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid #e4ebf3;
}
.xm-dashboard-section--metrics {
  gap: 0;
}
.xm-dashboard-section--metrics + .xm-dashboard-section {
  margin-top: 20px;
  padding-top: 20px;
}
.xm-dashboard-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 0 2px 2px;
}
.xm-dashboard-section-head h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 650;
  color: #13243a;
  line-height: 1.25;
}
.xm-dashboard-section-head p {
  margin: 4px 0 0;
  font-size: 12px;
  color: #667685;
  line-height: 1.4;
}
.xm-role-panel[data-role-panel="manager"] .xm-grid,
.xm-role-panel[data-role-panel="boss"] .xm-grid {
  gap: 16px;
  align-items: start;
}
.xm-role-panel[data-role-panel="manager"] .xm-grid > .xm-panel,
.xm-role-panel[data-role-panel="boss"] .xm-grid > .xm-panel,
.xm-role-panel[data-role-panel="boss"] .xm-dashboard-section > .xm-panel,
.dash-board .dash-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  align-self: stretch;
}
.xm-role-panel[data-role-panel="manager"] .xm-grid.three > .xm-panel,
.xm-role-panel[data-role-panel="boss"] .xm-grid.three > .xm-panel,
.xm-role-panel[data-role-panel="manager"] .xm-grid.two > .xm-panel,
.xm-role-panel[data-role-panel="boss"] .xm-grid.two > .xm-panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  align-self: start;
}
.xm-role-panel[data-role-panel="manager"] #managerProjectHealth,
.xm-role-panel[data-role-panel="manager"] #managerVersionDelayDonut,
.xm-role-panel[data-role-panel="manager"] #managerVersionDelayChart,
.xm-role-panel[data-role-panel="boss"] #bossVersionDelayDonut,
.xm-role-panel[data-role-panel="boss"] #bossVersionDelayChart,
.xm-role-panel[data-role-panel="manager"] #managerMemberRank,
.xm-role-panel[data-role-panel="boss"] #bossHardList,
.xm-role-panel[data-role-panel="boss"] #bossProjectRiskList,
.xm-role-panel[data-role-panel="boss"] #bossDecisionList2,
.xm-role-panel[data-role-panel="manager"] #managerApprovalList,
.xm-role-panel[data-role-panel="manager"] #managerFocusProjects,
.xm-role-panel[data-role-panel="manager"] #managerActivityList {
  flex: 1;
  min-height: 0;
}
.xm-risk-strip .empty-tip { grid-column: 1 / -1; }
#managerVersionDelayDonut .stats-donut-wrap,
#bossVersionDelayDonut .stats-donut-wrap {
  flex-wrap: wrap;
  justify-content: center;
  min-height: 160px;
  padding: 8px 12px 12px;
}
.dash-board #managerVersionDelayDonut .stats-donut-wrap,
.dash-board #bossVersionDelayDonut .stats-donut-wrap {
  min-height: 0;
}
#managerVersionDelayChart .stats-version-delay-chart,
#bossVersionDelayChart .stats-version-delay-chart {
  min-height: 140px;
}
#managerMemberRank .rank-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 11px 16px;
  border-top: 1px solid #edf2f7;
}
#managerMemberRank .rank-row:first-child { border-top: 0; }
#managerMemberRank .rank-row > span { min-width: 28px; color: #20b56b; font-weight: var(--weight-strong); font-size: 13px; text-align: right; }
#managerMemberRank .rank-row > .tag { flex-shrink: 0; }
.xm-priority-list { padding: 0 13px 12px; }
.xm-priority-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) 126px 70px; gap: 10px; align-items: center; min-height: 42px; padding: 8px 8px; border-top: 1px solid #edf2f7; border-left: 3px solid transparent; cursor: pointer; transition: border-color .16s ease, background .16s ease; }
.xm-priority-row.is-active { border-left-color: #1677ff; background: #f7fbff; }
#employeeTaskRows tr.is-active { background: #f7fbff; box-shadow: inset 3px 0 0 #1677ff; }
.xm-response-row.is-active,
.xm-risk-card.is-active { border-left: 3px solid #1677ff; background: #f7fbff; }
.xm-priority-row:first-child { border-top: 0; }
.xm-priority-row b, .xm-list-row b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xm-priority-row b { font-size: 13px; }
.xm-priority-row small, .xm-list-row small { display: block; color: #7b8798; font-size: 11px; line-height: 1.35; }
.xm-priority-row time { color: #7c8a9d; font-size: 12px; text-align: right; white-space: nowrap; }
.xm-priority { display: inline-grid; width: 28px; height: 26px; place-items: center; border-radius: 7px; color: #fff; background: #ff5151; font-size: 11px; font-weight: var(--weight-display); }
.xm-priority.p0 { background: #ff5151; }
.xm-priority.p1 { background: #ff9518; }.xm-priority.p2 { background: #1677ff; }.xm-priority.p3 { background: #20b56b; }
.xm-priority-row .status-pill { justify-self: end; padding: 2px 0; color: #1677ff; background: transparent; font-size: 12px; font-weight: var(--weight-strong); }
.xm-priority-row .status-pill.tag { padding: 0; border: 0; }
.xm-list-body .empty-tip { padding: 12px 16px; }
.xm-panel.xm-metrics-panel,
.xm-home .xm-panel.xm-metrics-panel {
  padding-bottom: 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.xm-metrics-panel .xm-metrics-title {
  padding: 0 15px 4px;
  border-bottom: 0;
  background: transparent;
}
.xm-metrics-panel .xm-metrics { padding: 8px 15px 10px; align-items: stretch; }
.xm-dashboard-section--metrics #managerMetrics,
.xm-dashboard-section--metrics #bossMetrics,
.dash-board .dash-kpi-strip#managerMetrics,
.dash-board .dash-kpi-strip#bossMetrics {
  padding: 2px 0 4px;
  align-items: stretch;
}
@media (min-width: 981px) {
  .xm-dashboard-section--metrics #managerMetrics,
  .xm-dashboard-section--metrics #bossMetrics,
  .dash-board .dash-kpi-strip#managerMetrics,
  .dash-board .dash-kpi-strip#bossMetrics {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  #managerMetrics article,
  #bossMetrics article {
    min-height: 80px;
    padding: 8px 10px;
  }
  #managerMetrics article > div > b,
  #bossMetrics article > div > b {
    font-size: 20px;
  }
}
@media (max-width: 980px) {
  .xm-dashboard-section--metrics #managerMetrics,
  .xm-dashboard-section--metrics #bossMetrics,
  .dash-board .dash-kpi-strip#managerMetrics,
  .dash-board .dash-kpi-strip#bossMetrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .dash-row-split,
  .dash-row-three,
  .dash-row-two,
  .dash-row-single { grid-template-columns: 1fr; }
  .dash-board .dash-card,
  .dash-board .dash-card-tall {
    min-height: 240px;
    max-height: 320px;
  }
}
@media (max-width: 620px) {
  .xm-dashboard-section--metrics #managerMetrics,
  .xm-dashboard-section--metrics #bossMetrics,
  .dash-board .dash-kpi-strip#managerMetrics,
  .dash-board .dash-kpi-strip#bossMetrics {
    grid-template-columns: 1fr;
  }
}
.xm-home .xm-panel:not(.xm-metrics-panel),
.xm-home .xm-employee-right > .xm-panel,
.xm-home .xm-employee-right-bottom > .xm-panel,
.xm-role-panel[data-role-panel="manager"] .xm-panel,
.xm-role-panel[data-role-panel="boss"] .xm-panel {
  border-radius: var(--dash-card-radius);
  border-color: #d7e4f2;
  box-shadow: 0 8px 24px rgba(15, 35, 62, .06);
  overflow: hidden;
  font-family: var(--font-yuanyuan);
}
.xm-home .xm-employee-right > .xm-panel.xm-chart-panel {
  overflow: hidden;
}
.xm-home .xm-employee-right .xm-chart-panel .xm-panel-title {
  border-top-left-radius: var(--dash-card-radius);
  border-top-right-radius: var(--dash-card-radius);
}
.xm-employee-action-row .xm-list-body > .empty-tip,
.xm-employee-action-row .xm-priority-list > .empty-tip {
  margin: 14px 18px 16px;
  box-sizing: border-box;
  text-align: center;
}
.xm-response-row { grid-template-columns: 34px minmax(0, 1fr) auto; align-items: start; }
.xm-response-meta { display: grid; gap: 4px; justify-items: end; text-align: right; }
.xm-response-meta time { color: #8b98a8; font-size: 11px; line-height: 1.2; }
.xm-response-meta .tag { margin: 0; }
.xm-project-row { display: grid; grid-template-columns: minmax(0, 1fr) 82px auto; gap: 10px; align-items: center; min-height: 42px; padding: 9px 15px; border-top: 1px solid #edf2f7; cursor: pointer; }
.xm-project-row:first-child { border-top: 0; }
.xm-follow-projects .xm-project-row { grid-template-columns: 28px minmax(56px, 0.95fr) minmax(40px, 1.1fr) 34px auto; gap: 5px 8px; min-height: 44px; padding: 10px 15px; }
.xm-project-icon { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; color: #fff; font-size: 11px; font-weight: var(--weight-display); font-style: normal; flex-shrink: 0; }
.xm-project-icon.tone-green { background: linear-gradient(145deg, #5cd894, #2d8c5e); }
.xm-project-icon.tone-blue { background: linear-gradient(145deg, #6eb6ff, #1677ff); }
.xm-project-icon.tone-amber { background: linear-gradient(145deg, #ffcb66, #e6a23c); }
.xm-project-icon.tone-violet { background: linear-gradient(145deg, #b794f6, #7c5ce6); }
.xm-follow-projects .xm-project-name { overflow: hidden; color: #13243a; font-size: 13px; font-weight: var(--weight-strong); line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.xm-follow-projects .xm-project-bar { min-width: 0; height: 5px; overflow: hidden; border-radius: 4px; background: #edf2f7; }
.xm-follow-projects .xm-project-bar i { display: block; height: 100%; border-radius: 4px; background: #2d8c5e; }
.xm-follow-projects .xm-project-rate { color: #13243a; font-size: 12px; font-weight: 600; text-align: right; white-space: nowrap; }
.xm-risk-tag { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; line-height: 1.35; white-space: nowrap; }
.xm-risk-tag.risk-0 { color: #67c23a; background: #f0f9eb; }
.xm-risk-tag.risk-1 { color: #e6a23c; background: #fdf6ec; }
.xm-risk-tag.risk-2 { color: #f56c6c; background: #fef0f0; }
.xm-priority-badge { display: inline-grid; min-width: 30px; height: 22px; padding: 0 6px; place-items: center; border-radius: 6px; color: #fff; font-size: 10px; font-weight: var(--weight-display); }
.xm-priority-badge.p0 { background: #ff5151; }.xm-priority-badge.p1 { background: #ff9518; }.xm-priority-badge.p2 { background: #1677ff; }.xm-priority-badge.p3 { background: #20b56b; }
.xm-employee-table .row-action { padding: 0; color: #1677ff; font-weight: var(--weight-strong); }
.xm-panel-title-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; }
.xm-panel-title-tabs { flex-direction: column; align-items: stretch; gap: 8px; }
.xm-panel-title-tabs .xm-panel-title-row h3 { margin: 0; }
.xm-panel-title-tabs .xm-tabs { width: 100%; margin-left: 0; border-bottom: 1px solid #edf2f7; }
.xm-tabs button { position: relative; z-index: 2; padding: 6px 0 8px; border: 0; cursor: pointer; pointer-events: auto; }
#employeeTaskTabs button { min-width: 0; white-space: nowrap; }
.xm-tabs button.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; border-radius: 2px; background: #1677ff; }
.xm-notice-icon { font-size: 0; background: transparent center/16px no-repeat; }
.xm-notice-icon.notice-clock { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23ff5151' stroke-width='2'%3E%3Cpath d='M12 8v4l3 2M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E"); }
.xm-notice-icon.notice-pin { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath d='M12 17v5M8 3h8l1 5-4 2-4-2 1-5z'/%3E%3C/svg%3E"); }
.xm-notice-icon.notice-arrow { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"); }
.xm-notice-icon.notice-megaphone { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath d='M11 5L6 9H3v6h3l5 4V5zM15.54 8.46a5 5 0 010 7.07M19.07 4.93a9 9 0 010 14.14'/%3E%3C/svg%3E"); }
.xm-chart-panel #employeeEfficiency { flex-shrink: 0; padding: 4px 10px 6px; border-bottom: 1px solid #f0f3f7; overflow: hidden; }
.xm-efficiency-insight {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  padding: 0;
}
.xm-efficiency-insight article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 3px;
  row-gap: 0;
  min-width: 0;
  padding: 4px 5px;
  border: 1px solid #eef2f7;
  border-radius: 6px;
  background: #fafbfd;
  overflow: hidden;
}
.xm-eff-label {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 2px;
  grid-column: 1 / -1;
  max-width: 100%;
  color: #64748b;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.xm-eff-value {
  display: block;
  grid-column: 1;
  margin: 0;
  color: #102033;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.xm-eff-trend {
  display: block;
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  overflow: hidden;
  color: #94a3b8;
  font-size: 9px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: right;
}
.xm-eff-trend b.up { color: var(--trend-good); font-weight: var(--weight-strong); }
.xm-eff-trend b.down { color: var(--trend-bad); font-weight: var(--weight-strong); }
.xm-eff-trend b.flat { color: var(--trend-flat); font-weight: 500; }
.xm-chart-panel #employeeEfficiency .xm-metric-tip {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}
.xm-chart-panel #employeeEfficiency .xm-metric-tip i {
  font-size: 8px;
}
.xm-metric-tip {
  position: relative;
  display: inline-grid;
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  padding: 0;
  border: 1px solid #d9d9e3;
  border-radius: 50%;
  color: #8e8ea0;
  background: #fff;
  font-size: 0;
  line-height: 1;
  cursor: help;
  vertical-align: middle;
}
.xm-metric-tip i {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  color: #8e8ea0;
  font-size: 9px;
  font-style: normal;
  font-weight: var(--weight-strong);
  line-height: 1;
}
.xm-metric-tip:hover,
.xm-metric-tip:focus-visible {
  border-color: #acacbe;
  color: #252525;
  background: #f4f4f5;
  outline: none;
}
.xm-metric-tip:hover i,
.xm-metric-tip:focus-visible i { color: var(--icon-stroke-hover); }
.xm-metric-tip-pop {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.xm-metric-tip-float {
  position: fixed;
  z-index: 9999;
  max-width: 260px;
  padding: 10px 12px;
  border: 1px solid #ececf1;
  border-radius: 10px;
  color: #353740;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .1);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.55;
  text-align: left;
  white-space: normal;
  pointer-events: none;
}
.xm-metric-tip-float[hidden] { display: none !important; }
.xm-chart-block { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 0 8px; padding: 12px 16px 14px; align-items: end; }
.xm-chart-y-axis { display: flex; flex-direction: column; justify-content: space-between; height: 108px; margin-bottom: 26px; padding-right: 4px; color: #b0bac6; font-size: 10px; line-height: 1; text-align: right; }
.xm-chart-main { min-width: 0; }
.xm-week-chart { position: relative; width: 100%; height: 108px; margin: 0; padding: 0; overflow: hidden; border-radius: 4px; }
.xm-week-chart svg { display: block; width: 100%; height: 108px; }
.xm-week-chart .grid { stroke: #edf1f6; stroke-width: 1; }
.xm-week-chart .grid:last-of-type { stroke: #e3eaf2; }
.xm-week-chart .area { fill: url(#efficiencyAreaGradientEmp); }
.xm-week-chart .line { fill: none; stroke: #1677ff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.xm-week-chart .dot { fill: #1677ff; stroke: #fff; stroke-width: 2; }
.xm-chart-panel .xm-chart-axis { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; margin: 0; padding: 8px 0 0; color: #b0bac6; font-size: 10px; text-align: center; }
.xm-chart-panel .xm-chart-axis .is-today { color: #1677ff; font-weight: 400; }
.xm-role-panel[data-role-panel="employee"].active {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: stretch;
  min-height: 0;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.xm-employee-hero-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
  min-height: 0;
  flex: 1;
}
.xm-employee-hero-main {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}
.xm-employee-action-row,
.xm-employee-summary-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
}
@media (min-width: 768px) {
  .xm-employee-action-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.08fr);
  }
  .xm-employee-summary-row {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.85fr);
  }
}
.xm-today-action-list > .empty-tip {
  padding: 14px 15px;
}
.xm-today-action-row {
  display: grid;
  gap: 8px 10px;
  align-items: center;
  min-height: 56px;
  padding: 10px 15px;
  border-top: 1px solid #edf2f7;
  cursor: pointer;
}
.xm-today-action-row:first-child { border-top: 0; }
.xm-today-action-row.is-priority {
  grid-template-columns: 34px minmax(0, 1fr) auto auto;
}
.xm-today-action-row.is-response {
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: start;
}
.xm-today-action-body b,
.xm-today-action-body small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.xm-today-action-body b { color: #13243a; font-size: 12px; line-height: 1.25; }
.xm-today-action-body small { margin-top: 2px; color: #7b8798; font-size: 11px; line-height: 1.25; }
.xm-today-action-kicker {
  display: block;
  margin-bottom: 2px;
  color: #1677ff;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.2;
}
.xm-today-action-row.is-response .xm-today-action-kicker { color: #e67e22; }
.xm-today-action-row.is-priority .xm-today-action-kicker { color: #d4380d; }
.xm-today-action-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}
.xm-today-action-row time { color: #8b98a8; font-size: 11px; white-space: nowrap; }
.xm-employee-right-compact {
  align-self: stretch;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-summary-row .xm-panel,
.xm-role-panel[data-role-panel="employee"].active .xm-today-action-panel {
  display: flex;
  flex-direction: column;
  min-height: auto;
  height: auto;
}
.xm-role-panel[data-role-panel="employee"].active .xm-today-action-list,
.xm-role-panel[data-role-panel="employee"].active .xm-employee-summary-row .xm-list-body {
  overflow-y: hidden;
  flex: 0 1 auto;
  min-height: 0;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-summary-row .dash-scroll-host.is-scrollable,
.xm-role-panel[data-role-panel="employee"].active .xm-today-action-list.dash-scroll-host.is-scrollable {
  flex: 1 1 auto;
  min-height: 0;
}
@media (min-width: 960px) {
  .xm-employee-hero-split {
    grid-template-columns: minmax(0, 1fr) var(--vp-dashboard-aside-w);
    align-items: stretch;
  }
}
.xm-role-panel[data-role-panel="employee"].active {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.xm-employee-metrics-top {
  flex-shrink: 0;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-home .xm-employee-action-row .xm-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-home .xm-employee-insight-row .xm-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
}
.dash-scroll-host.is-scrollable {
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.xm-role-panel[data-role-panel="employee"].active .xm-task-panel .xm-employee-table {
  overflow-y: hidden;
  flex: 0 1 auto;
  min-height: 0;
}
.xm-role-panel[data-role-panel="employee"].active .xm-task-panel .xm-employee-table.dash-scroll-host.is-scrollable {
  flex: 1 1 auto;
  min-height: 120px;
}
.xm-role-panel[data-role-panel="employee"].active .priority-panel { min-height: auto; }
.xm-role-panel[data-role-panel="employee"].active .xm-task-panel {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  margin-top: 2px;
}
.xm-role-panel[data-role-panel="employee"].active .xm-task-panel .xm-panel-title-tabs {
  flex-shrink: 0;
}
.xm-role-panel[data-role-panel="employee"].active .xm-task-panel .xm-employee-table {
  flex: 0 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}
.xm-employee-right {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-self: stretch;
  min-width: 0;
  max-width: 100%;
  min-height: 0;
  height: auto;
  overflow: hidden;
}
.xm-employee-right > .xm-panel {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.xm-employee-right-bottom {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: auto;
  flex: 1 1 auto;
  min-height: 0;
  justify-content: flex-end;
}
.xm-employee-right-bottom > .xm-panel {
  flex: 1 1 0;
  min-height: 0;
  max-height: 280px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.xm-employee-right > .xm-panel .xm-panel-title,
.xm-employee-right-bottom > .xm-panel .xm-panel-title { flex-shrink: 0; }
.xm-employee-right .xm-list-body,
.xm-employee-right #employeeNoticeCenter,
.xm-employee-right #employeeTeamActivity {
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.xm-employee-right .xm-chart-panel { flex: 0 0 auto; min-height: 210px; overflow: hidden; }
.xm-employee-right .xm-chart-block { flex: 1; min-height: 148px; }
.xm-notice-row { display: grid; grid-template-columns: 32px minmax(0, 1fr) 58px; gap: 9px; align-items: center; min-height: 48px; padding: 9px 15px; border-top: 1px solid #edf2f7; cursor: pointer; }
.xm-activity-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 52px; padding: 10px 15px; border-top: 1px solid #edf2f7; cursor: pointer; }
.xm-activity-body b { display: block; color: #13243a; font-size: 12px; font-weight: var(--weight-strong); line-height: 1.25; }
.xm-activity-body small { display: block; margin-top: 2px; color: #7b8798; font-size: 11px; line-height: 1.25; }
.xm-activity-row time { color: #8b98a8; font-size: 11px; white-space: nowrap; text-align: right; }
.xm-response-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: start; min-height: 56px; padding: 11px 15px; border-top: 1px solid #edf2f7; cursor: pointer; }
.xm-notice-row:first-child, .xm-activity-row:first-child, .xm-response-row:first-child { border-top: 0; }
.xm-notice-icon, .xm-avatar {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #fff;
  font-size: 11px;
  font-weight: var(--weight-display);
  line-height: 1;
  text-align: center;
  box-sizing: border-box;
  flex-shrink: 0;
  padding: 0;
  overflow: hidden;
}
.xm-notice-icon.red,
.xm-notice-icon.orange,
.xm-notice-icon.blue,
.xm-notice-icon.green { background: transparent; }
.xm-avatar { background: linear-gradient(145deg, #83c1eb, #17578c); }
.xm-person { display: inline-flex; align-items: center; gap: 5px; min-width: 0; }
.xm-person .xm-avatar { width: 28px; height: 28px; font-size: 10px; }
.xm-person > span:not(.xm-avatar) { display: block; min-width: 0; }
.xm-person b, .xm-person small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xm-person b { color: #13243a; font-size: 12px; line-height: 1.2; }
.xm-person small { color: #7b8798; font-size: 11px; line-height: 1.25; }
.xm-notice-row b, .xm-activity-row b, .xm-response-row b { display: block; overflow: hidden; color: #13243a; font-size: 12px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.xm-notice-row small, .xm-activity-row small, .xm-response-row small { display: block; margin-top: 2px; overflow: hidden; color: #7b8798; font-size: 11px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.xm-notice-row time, .xm-activity-row time, .xm-response-row time { color: #8b98a8; font-size: 11px; white-space: nowrap; }
.xm-efficiency:not(.xm-efficiency-insight) { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 0; }
.xm-efficiency:not(.xm-efficiency-insight) article { padding: 8px 9px; border-radius: 9px; background: #f8fbff; }
.xm-efficiency:not(.xm-efficiency-insight) span, .xm-efficiency:not(.xm-efficiency-insight) small { display: block; color: #708095; font-size: 11px; }
.xm-efficiency:not(.xm-efficiency-insight) article > b { display: block; margin: 2px 0; color: #102033; font-size: 18px; line-height: 1.05; }
.xm-line-spark { height: 104px; margin: 2px 15px 14px; padding: 0; border-bottom: 1px solid #e6edf6; background: linear-gradient(180deg, transparent, rgba(22,119,255,.05)); }
.xm-line-spark svg { display: block; width: 100%; height: 100%; }
.xm-list-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 11px 16px; border-top: 1px solid #edf2f7; cursor: pointer; }
.xm-list-row:first-child { border-top: 0; }
.xm-bar { height: 4px; overflow: hidden; border-radius: 5px; background: #edf2f7; }.xm-bar i { display: block; height: 100%; border-radius: 5px; background: #20b56b; }
.xm-table { overflow-x: auto; max-width: 100%; }
.xm-table table { min-width: 760px; }
.xm-role-panel[data-role-panel="employee"] .xm-employee-table { max-width: 100%; }
.xm-role-panel[data-role-panel="employee"] .xm-employee-table table { min-width: 0; width: 100%; table-layout: fixed; }
.xm-role-panel[data-role-panel="employee"] .xm-employee-table th,
.xm-role-panel[data-role-panel="employee"] .xm-employee-table td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xm-table th { font-size: 11px; }
.xm-table td { padding-top: 8px; padding-bottom: 8px; font-size: 12px; }
.xm-panel .tag { font-size: 10px; line-height: 17px; padding: 1px 7px; }
.xm-table .progress-cell { display: flex; align-items: center; gap: 8px; min-width: 108px; }
.xm-employee-table .progress-cell .xm-bar { flex: 1 1 auto; width: 56px; min-width: 56px; max-width: 72px; height: 6px; display: block; }
.xm-employee-table .progress-cell .progress-value { flex: 0 0 auto; min-width: 30px; color: #6f7f92; font-size: 11px; text-align: right; white-space: nowrap; }
.xm-tabs { display: flex; gap: 18px; }
.xm-tabs button { color: #687486; background: transparent; font-size: 12px; }.xm-tabs button.active { color: #1677ff; font-weight: var(--weight-display); }
.xm-risk-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 2px 16px 16px; }
.xm-risk-card { display: grid; gap: 5px; padding: 12px; border-radius: 12px; background: #fbfdff; }
.xm-action-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 0 16px 16px; }
.xm-action-grid button { position: relative; display: grid; min-height: 70px; place-items: end center; padding: 38px 8px 10px; border: 1px solid #e6edf6; border-radius: 10px; color: #31506f; background: #fff; font-size: 12px; font-weight: var(--weight-strong); }
/* 工作台快捷操作图标见 icons.css */
.xm-home .danger-text { color: #f14444; }
.xm-donut { position: relative; display: grid; width: 176px; height: 176px; place-items: center; align-content: center; margin: 10px auto 12px; border-radius: 50%; background: conic-gradient(#1677ff 0 68%, #ff9518 68% 81%, #20b56b 81% 96%, #ff5151 96% 100%); color: #102033; }
.xm-donut::after { content: ""; position: absolute; inset: 42px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px rgba(230,237,246,.7); }
.xm-donut b, .xm-donut span { display: block; position: relative; z-index: 1; }
.xm-donut b { font-size: 28px; }.xm-donut span { color: #6f7f92; font-size: 12px; }
.xm-legend { padding: 0 18px 16px; color: #627287; font-size: 12px; }
.xm-line-chart { display: flex; align-items: end; gap: 12px; height: 168px; margin: 8px 18px 18px; padding: 0 10px; border-bottom: 1px solid #e6edf6; background: linear-gradient(180deg, transparent, rgba(22,119,255,.05)); }
.xm-line-chart i { flex: 1; border-radius: 8px 8px 0 0; background: linear-gradient(180deg, #4d9dff, #cfe4ff); }
.rank-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 11px 16px; border-top: 1px solid #edf2f7; }
.rank-row:first-child { border-top: 0; }
.task-mini { display: flex; gap: 9px; align-items: center; padding: 10px 15px; border-top: 1px solid #f0f2f5; cursor: pointer; }.task-mini:hover { background: #f8fbff; }.task-mini > div { min-width: 0; flex: 1; }.task-mini b, .task-mini small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.task-mini b { font-size: 12px; }.task-mini small { color: var(--muted); font-size: 11px; }.task-mini time { color: var(--muted); font-size: 11px; white-space: nowrap; }.empty-tip { padding: 15px 18px; color: var(--muted); font-size: 12px; }
.routine-row { display: flex; gap: 12px; align-items: center; padding: 12px 16px; border-top: 1px solid #eef1f5; }.routine-row > div { min-width: 0; flex: 1; }.routine-row b, .routine-row small { display: block; }.routine-row small { color: var(--muted); font-size: 11px; }.routine-row .row-actions { flex-wrap: wrap; }.routine-state { display: grid; width: 25px; height: 25px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #8793a3; background: #f1f4f7; font-weight: var(--weight-strong); }.routine-row.done .routine-state { color: #fff; background: var(--green); }.routine-row.exception .routine-state { color: #fff; background: var(--orange); }.routine-row.rest .routine-state { color: #9a5b16; background: #fff4e6; }.routine-row.missed .routine-state { color: #fff; background: #ff5151; }.routine-row.skipped .routine-state { color: #fff; background: #9aa5b3; }.routine-page { max-width: 960px; }.routine-page .routine-row { padding: 15px 18px; }
.routine-dept-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.routine-dept-tab { height: 34px; padding: 0 14px; border: 1px solid #dfe7f2; border-radius: 999px; color: #5f6f84; background: #fff; font-size: 12px; font-weight: var(--weight-strong); cursor: pointer; transition: .15s ease; }
.routine-dept-tab:hover { border-color: #b9d7ff; color: #1677ff; }
.routine-dept-tab.active { border-color: #1677ff; color: #1677ff; background: #eef6ff; }
.routine-dept-active-hint { margin: 0 0 12px; color: #6d8096; font-size: 12px; }
.routine-template-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.routine-template-card-head h4 { margin: 0; }
.routine-template-card--new { border-style: dashed; background: #f8fbff; }
.routine-stats-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px; }
.routine-stats-toolbar label { display: inline-flex; align-items: center; gap: 8px; margin: 0; color: #5f6f84; font-size: 12px; font-weight: 600; }
.routine-stats-toolbar select { height: 34px; min-width: 108px; padding: 0 10px; border: 1px solid #dfe7f2; border-radius: 8px; background: #fff; font-size: 12px; }
.routine-stats-panel { display: grid; gap: 16px; }
.routine-stats-kpi { margin: 0; }
.routine-stats-kpi article { min-height: 88px; }
.routine-stats-range { margin: -6px 0 0; color: #8b98a8; font-size: 11px; line-height: 1.5; }
.routine-stats-block h4 { margin: 0 0 10px; font-size: 14px; color: #102033; }
.routine-stats-table .eff-table-head,
.routine-stats-table .routine-stats-row { grid-template-columns: minmax(0, 1.2fr) 72px 72px 72px 64px minmax(100px, 1fr); }
.routine-stats-table .routine-stats-row { cursor: default; }
.routine-stats-table .routine-stats-row:hover { background: #fbfdff; }
.routine-stats-table .routine-stats-row span:last-child { display: grid; gap: 4px; align-content: center; }
.routine-stats-intro .xm-link-btn { margin-left: 8px; }
#managementModal.management-modal--routine-stats { width: var(--panel-width); max-width: min(var(--panel-width), 96vw); }
.routine-drawer { width: var(--panel-width); max-width: var(--panel-width); }
.routine-drawer-summary { margin-bottom: 12px; padding: 14px; border: 1px solid #dbeafe; border-radius: 12px; background: #f6faff; }
.routine-drawer-summary b, .routine-drawer-summary span { display: block; }.routine-drawer-summary b { color: #1559b7; font-size: 18px; }.routine-drawer-summary span { margin-top: 4px; color: #64748b; font-size: 12px; line-height: 1.7; }
.welcome p, .welcome h2, .welcome span { margin: 0; }
.welcome p { color: #bfddff; font-size: 12px; }
.welcome h2 { margin: 2px 0; font-size: 22px; }
.welcome span { color: #e1efff; font-size: 13px; }
.welcome .primary-button { border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.18); }
.danger-text { color: #fff2a9; }
.primary-button, .secondary-button { padding: 9px 17px; border-radius: 7px; color: #fff; background: var(--blue); font-weight: 600; }
.secondary-button { border: 1px solid #dbe3ed; color: #617083; background: #fff; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 10px; }
.metric-card { display: flex; min-height: 104px; gap: 14px; align-items: center; padding: 16px 20px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: var(--shadow); }
.metric-card.clickable { cursor: pointer; transition: transform .18s ease, border-color .18s ease; }
.metric-card.clickable:hover { transform: translateY(-2px); border-color: #b9d8fb; }
.metric-card span, .metric-card small { display: block; color: var(--muted); }
.metric-card strong { display: block; margin-top: -2px; font-size: 28px; }
.metric-card small { font-size: 11px; }
.metric-card small b { color: var(--green); }
.metric-icon { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 16px; color: #fff; font-size: 22px; box-shadow: inset 0 0 0 8px rgba(255,255,255,.12), 0 6px 12px rgba(0,0,0,.08); }
.blue { background: #1681f8; } .green { background: #20b86b; } .orange { background: #ff9518; } .red { background: #ff5656; }
.content-grid { display: grid; gap: 10px; margin-bottom: 10px; }
.top-content { grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); }
.middle-content { grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); }
.bottom-content { grid-template-columns: 1.15fr 1.15fr 1fr; }
.panel { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: var(--shadow); }
.panel-header { display: flex; align-items: center; justify-content: space-between; padding: 13px 18px 11px; }
.panel-header h3 { margin: 1px 0 0; font-size: 16px; }
.panel-header h3 small { color: var(--muted); font-size: 11px; font-weight: 500; }
.text-button { color: var(--blue); background: transparent; font-size: 12px; font-weight: 400; }
.text-button span { font-size: 16px; font-weight: 400; }
.xm-panel-title .text-button,
.panel-header .text-button,
.eff-panel-head .text-button,
.stats-panel-head .text-button { font-weight: 400; }
.xm-chart-y-axis,
.xm-chart-panel .xm-chart-axis,
.stats-trend-axis,
.eff-trend-xlabel,
.eff-trend-ylabel,
.stats-trend-legend span { font-weight: 400; }
.tabs { display: flex; gap: 26px; padding: 0 18px; border-bottom: 1px solid var(--line); }
.tabs button { padding: 9px 2px; color: #687486; background: transparent; font-size: 12px; }
.tabs button.active { margin-bottom: -1px; border-bottom: 2px solid var(--blue); color: var(--blue); }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; text-align: left; }
th { color: #768397; background: #fbfcfe; font-size: 11px; font-weight: 500; }
td, th { padding: 9px 14px; border-bottom: 1px solid #edf0f4; white-space: nowrap; }
td { font-size: 12px; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr { cursor: pointer; }
tbody tr:hover { background: #f8fbff; }
.tag { display: inline-block; padding: 2px 8px; border-radius: 20px; font-size: 11px; }
.tag.blue { color: #1677ff; background: #eef6ff; } .tag.green { color: #17a55c; background: #ecfaf3; }
.tag.orange { color: #e98000; background: #fff7e9; } .tag.red { color: #f14444; background: #fff0f0; }
.tag.purple { color: #7b3ff2; background: #f3edff; }
.tag.gray { color: #748091; background: #f2f4f7; }
.version-plan-list { display: grid; gap: 14px; }
.version-plan-row { padding: 12px 0; border-bottom: 1px solid #eef1f5; }
.version-plan-row.is-new { border-bottom: none; padding-top: 8px; }
.roster-grid { display: grid; gap: 8px; }
.roster-grid-checks { gap: 10px; }
.roster-project-card { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border: 1px solid #e8eef5; border-radius: 10px; background: #fbfdff; cursor: pointer; user-select: none; }
.roster-project-card.is-enrolled { border-color: #c5ddff; background: #f5f9ff; }
.roster-project-card input { width: 16px; height: 16px; margin-top: 2px; accent-color: #1677ff; flex-shrink: 0; }
.roster-project-copy { display: grid; gap: 4px; min-width: 0; }
.roster-project-copy b { font-size: 13px; color: #2f4057; }
.roster-project-copy small { color: #8b98a8; font-size: 11px; line-height: 1.45; }
.roster-project-card.is-disabled { opacity: .6; pointer-events: none; }
.member-assign-org select { width: 100%; min-height: 38px; }
.roster-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; }
.roster-row select { min-width: 120px; }
.management-body .danger-text { color: #f14444; font-weight: 600; }
.priority { display: flex; gap: 6px; align-items: center; }
.priority i, .dot { width: 7px; height: 7px; border-radius: 50%; }
.priority .紧急 { background: var(--red); } .priority .重要 { background: var(--orange); } .priority .普通 { background: #b6bfcb; }
.notices { padding: 11px 14px; }
.notice { display: flex; gap: 10px; padding: 10px 16px; border-top: 1px solid #f0f2f5; }
.notice:first-child { border-top: 0; }
.notice-icon { display: block; flex: 0 0 auto; width: 31px; height: 31px; border-radius: 9px; }
.notice div:nth-child(2) { min-width: 0; }
.notice strong, .notice p { display: block; overflow: hidden; margin: 0; text-overflow: ellipsis; white-space: nowrap; }
.notice strong { font-size: 12px; }
.notice p, .notice time { color: var(--muted); font-size: 11px; }
.notice time { margin-left: auto; white-space: nowrap; }
.project-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 0 14px 14px; }
.project-card { padding: 13px; border: 1px solid var(--line); border-radius: 8px; }
.project-title { display: flex; align-items: center; justify-content: space-between; }
.project-card h4, .project-card p { margin: 0; }
.project-card p { color: var(--muted); font-size: 11px; }
.project-card .counts { display: flex; justify-content: space-between; margin: 12px 0; font-size: 11px; }
.project-card .counts b { display: block; font-size: 15px; }
.progress { overflow: hidden; height: 4px; border-radius: 3px; background: #edf1f5; }
.progress i { display: block; height: 100%; border-radius: 3px; background: var(--green); }
.project-card footer { display: flex; justify-content: space-between; margin-top: 6px; color: var(--muted); font-size: 10px; }
.donut-content { display: flex; align-items: center; justify-content: center; gap: 28px; padding: 10px 10px 17px; }
.donut { display: grid; width: 140px; height: 140px; place-items: center; border-radius: 50%; background: conic-gradient(var(--green) 0 78%, var(--blue) 78% 93%, #a9b4c3 93% 98%, var(--red) 98% 100%); }
.donut div { display: grid; width: 93px; height: 93px; place-items: center; align-content: center; border-radius: 50%; background: #fff; }
.donut strong { font-size: 24px; } .donut small { color: var(--muted); font-size: 11px; }
.legend p { display: flex; gap: 9px; align-items: center; margin: 10px 0; color: var(--muted); font-size: 11px; }
.legend span { min-width: 50px; } .legend b { color: var(--text); }
.green-bg { background: var(--green); } .blue-bg { background: var(--blue); } .gray-bg { background: #a9b4c3; } .red-bg { background: var(--red); }
.simple-row, .team-row { display: grid; align-items: center; gap: 8px; padding: 8px 17px; border-top: 1px solid #f0f2f5; font-size: 11px; }
.simple-row { grid-template-columns: 14px 1fr auto auto; }
.simple-row i { color: #ffb21a; font-style: normal; }
.team-row { grid-template-columns: 1fr repeat(4, 28px) 54px; }
.team-row .person { display: flex; gap: 7px; align-items: center; }
.team-row .avatar { width: 24px; height: 24px; font-size: 10px; }
.mini-progress { height: 5px; border-radius: 3px; background: #e9edf2; }
.mini-progress i { display: block; height: 100%; border-radius: 3px; background: var(--green); }
.create-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 8px 16px 17px; }
.create-grid button { padding: 14px 7px; border-radius: 7px; color: #fff; font-size: 12px; }
.blue-button { background: var(--blue); }.green-button { background: var(--green); }.red-button { background: var(--red); }.orange-button { background: var(--orange); }
.page-heading { display: flex; justify-content: space-between; align-items: end; padding: 2px 0 16px; }
.page-heading h2, .page-heading p { margin: 0; }
.page-heading p { color: var(--muted); font-size: 12px; }
.page-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin: -2px 0 12px; padding: 10px 12px; border: 1px solid #e3ebf5; border-radius: 12px; background: rgba(255,255,255,.76); }
.page-toolbar p { margin: 0; color: #6b7a8d; font-size: 12px; }
.page-toolbar button { flex: 0 0 auto; }
.org-page-toolbar { flex-direction: column; align-items: stretch; gap: 10px; flex-shrink: 0; width: 100%; box-sizing: border-box; }
.org-toolbar-lead { line-height: 1.55; }
.org-project-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
  gap: 12px;
  width: 100%;
  box-sizing: border-box;
}
.org-project-card {
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
  min-width: 0; min-height: 118px; padding: 14px 12px; border: 1px solid #e8eef5; border-radius: 12px;
  background: #fff; text-align: left; cursor: pointer; transition: border-color .15s, box-shadow .15s, background .15s;
}
.org-project-card:hover { border-color: #b9d6ff; background: #f8fbff; }
.org-project-card.active { border-color: #1677ff; background: #eef6ff; box-shadow: 0 0 0 1px #dcecff; }
.org-project-card.active .org-project-card-head b { color: #1677ff; }
.org-project-card-head { display: flex; align-items: center; gap: 8px; width: 100%; }
.org-project-card-head b { font-size: 15px; color: #2f4057; }
.org-project-logo { width: 28px; height: 28px; border-radius: 8px; flex-shrink: 0; }
.org-project-card-rates { display: flex; gap: 8px; width: 100%; }
.org-rate-pill { display: inline-flex; align-items: baseline; gap: 6px; padding: 4px 10px; border-radius: 999px; background: #f0f6fc; font-size: 11px; color: #6d8096; }
.org-rate-pill i { font-style: normal; }
.org-rate-pill b { font-size: 14px; color: #1677ff; }
.org-rate-pill.is-warn { background: #fff4e6; }
.org-rate-pill.is-warn b { color: #d48806; }
.org-project-card-stats { display: flex; flex-wrap: wrap; gap: 6px 12px; width: 100%; }
.org-project-card-stats em { font-style: normal; font-size: 11px; color: #8aa0b8; }
.org-project-card-stats em b { margin-right: 2px; font-size: 13px; color: #2f4057; }
.org-project-card-stats em.is-late b { color: #f14444; }
.org-project-card.active .org-project-card-stats em.is-late b { color: #e02020; }
#orgView.view.active { padding-bottom: 18px; }
#orgView > .org-join-banner { flex-shrink: 0; }
#orgView > .org-company-banner,
#orgView > .org-filter-bar { flex-shrink: 0; }

/* ── 组织架构 · 公司隔离说明条 ── */
.org-company-banner {
  display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 20px;
  margin-bottom: 10px; padding: 10px 14px; border: 1px solid #d6e8ff; border-radius: 10px;
  background: linear-gradient(90deg, #f0f7ff 0%, #fff 100%); color: #2f4057; font-size: 13px;
}
.org-company-banner[hidden] { display: none !important; }
.org-company-banner__lead {
  display: flex; align-items: flex-start; gap: 10px; flex: 1 1 280px; min-width: 0;
}
.org-company-banner__icon {
  display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px;
  border-radius: 8px; background: #1677ff; color: #fff; flex-shrink: 0;
}
.org-company-banner__icon .org-svg-icon { width: 15px; height: 15px; }
.org-company-banner__text { flex: 1; min-width: 0; line-height: 1.5; }
.org-company-banner__text b { color: #1677ff; font-weight: 700; }
.org-company-banner__actions {
  display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex-shrink: 0;
}
.org-company-banner__select {
  display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: #5c6f85; font-weight: 600; white-space: nowrap;
}
.org-company-banner__select select {
  min-width: 160px; max-width: 240px; height: 34px; padding: 0 28px 0 10px; border: 1px solid #b9d6ff;
  border-radius: 8px; background: #fff; color: #2f4057; font-size: 13px; font-weight: 600; cursor: pointer;
}
.org-company-banner__link {
  border: 0; background: transparent; color: #1677ff; font-size: 12px; font-weight: 600;
  cursor: pointer; padding: 0; text-decoration: underline; white-space: nowrap;
}
.org-isolation-panel { display: flex; flex-direction: column; gap: 16px; }
.org-isolation-intro {
  padding: 14px 16px; border: 1px solid #dfe7f2; border-radius: 10px; background: #f8fbff;
  font-size: 13px; line-height: 1.6; color: #4f6278;
}
.org-isolation-intro h4 { margin: 0 0 8px; font-size: 15px; color: #2f4057; }
.org-isolation-grant-form {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; align-items: end;
  padding: 14px 16px; border: 1px solid var(--line); border-radius: 10px; background: #fff;
}
.org-isolation-grant-form label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: #5c6f85; font-weight: 600; }
.org-isolation-grant-form input,
.org-isolation-grant-form select {
  height: 36px; padding: 0 10px; border: 1px solid #dfe7f2; border-radius: 8px; font-size: 13px;
}
.org-isolation-grants-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.org-isolation-grants-table th,
.org-isolation-grants-table td { padding: 10px 12px; border-bottom: 1px solid #eef2f7; text-align: left; }
.org-isolation-grants-table th { color: #5c6f85; font-weight: 600; background: #f8fafc; }
.org-invite-link-input {
  width: 100%; min-width: 220px; height: 34px; padding: 0 10px; border: 1px solid #dfe7f2; border-radius: 8px;
  font-size: 12px; color: #2f4057; background: #f8fafc;
}

/* ── 组织架构筛选栏 ── */
.org-filter-bar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px;
  margin-bottom: 14px; padding: 12px 16px; border: 1px solid var(--line); border-radius: 10px;
  background: #fff; box-shadow: var(--shadow);
}
.org-filter-field { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.org-filter-field span { display: none; }
.org-filter-field select {
  width: auto; min-width: 130px; height: 36px; padding: 0 28px 0 10px; border: 1px solid #dfe7f2;
  border-radius: 8px; background: #fff; color: #2f4057; font-size: 13px; font-weight: 500; cursor: pointer;
}
.org-filter-actions { display: flex; gap: 8px; margin-left: auto; align-items: center; }
.org-filter-clear { height: 36px; padding: 0 4px; font-size: 12px; white-space: nowrap; }
.org-export-btn {
  display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px;
  border: 1px solid #dfe7f2; border-radius: 8px; background: #fff; color: #4f6278;
  font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.org-export-btn:hover { border-color: #b9d6ff; color: #1677ff; background: #f5f9ff; }
.org-export-btn svg { width: 14px; height: 14px; flex-shrink: 0; }

/* ── 组织架构布局 ── */
.org-layout { display: grid; grid-template-columns: minmax(280px, 320px) minmax(0, 1fr) 400px; gap: 12px; flex: 1; min-height: 0; align-items: start; align-self: stretch; }
.org-layout > .panel { display: flex; flex-direction: column; margin-bottom: 0; overflow: hidden; }
.org-dept-panel, .org-member-panel, .org-profile-panel { min-height: 0; align-self: stretch; }
.org-dept-panel { padding: 0; min-width: 0; width: 100%; max-width: 100%; }
.org-member-panel { padding: 0; min-width: 0; width: 100%; }
.org-layout .org-table-scroll { flex: 1; min-height: 0; overflow-y: auto; }
.org-profile-panel {
  padding: 0; min-width: 0; background: #fff;
  display: flex; flex-direction: column;
}
.org-profile-card {
  display: flex; flex-direction: column; flex: 1; min-height: 0;
  overflow-x: hidden; overflow-y: auto;
  padding: 16px 18px 18px;
  box-sizing: border-box;
}
.org-profile-empty {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  flex: 1; min-height: 240px; padding: 24px; color: #8b98a8; font-size: 13px; text-align: center;
}
.org-profile-empty b { color: #4f6278; font-size: 14px; }
.org-table-wrap { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.org-table-header {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 18px 12px; border-bottom: 1px solid #f0f2f5; flex-shrink: 0;
}
.org-table-header h3 { margin: 0; font-size: 15px; font-weight: var(--weight-strong); color: var(--text); }
.org-table-header h3 em { font-style: normal; font-weight: 600; color: #8b98a8; font-size: 13px; }
.org-table-header-actions { display: flex; gap: 8px; align-items: center; }
.org-table-scroll { flex: 1; min-height: 0; overflow: auto; }
.org-member-table { width: 100%; border-collapse: collapse; font-size: var(--font-page); }
.org-member-table thead { position: sticky; top: 0; z-index: 2; background: #fafbfc; }
.org-member-table th {
  padding: 10px 12px; border-bottom: 1px solid #eef2f6; color: #8b98a8;
  font-size: var(--font-page-sm); font-weight: 600; text-align: left; white-space: nowrap;
}
.org-member-table td { padding: 12px; border-bottom: 1px solid #f5f7fa; vertical-align: middle; }
.org-member-table tbody tr { cursor: pointer; transition: background .12s; }
.org-member-table tbody tr:hover { background: #f8fbff; }
.org-member-table tbody tr.is-selected { background: #eef6ff; }
.org-th-actions { width: 52px; text-align: center; }
.org-member-table input[type="checkbox"] { width: 16px; height: 16px; accent-color: #1677ff; cursor: pointer; }
.org-cell-member { display: flex; align-items: center; gap: 10px; min-width: 0; }
.org-cell-member-meta { display: flex; flex-wrap: wrap; align-items: center; column-gap: 6px; row-gap: 2px; min-width: 0; align-content: center; }
.org-cell-member-meta b { font-weight: 600; color: var(--text); white-space: nowrap; }
.org-cell-member b { font-weight: 600; color: var(--text); white-space: nowrap; }
.org-avatar {
  display: grid; flex-shrink: 0; width: 32px; height: 32px; place-items: center;
  border-radius: 50%; color: #fff; font-size: 12px; font-weight: var(--weight-strong);
}
.org-avatar--blue { background: linear-gradient(145deg, #69b1ff, #1677ff); }
.org-avatar--green { background: linear-gradient(145deg, #73d897, #20b56b); }
.org-avatar--orange { background: linear-gradient(145deg, #ffc069, #fa8c16); }
.org-avatar--purple { background: linear-gradient(145deg, #b37feb, #722ed1); }
.org-avatar--teal { background: linear-gradient(145deg, #5cdbd3, #13c2c2); }
.org-lead-tag {
  display: inline-flex; margin-left: 0; margin-top: 1px; padding: 0 6px; height: 18px; align-items: center;
  border-radius: 4px; font-size: 10px; font-weight: var(--weight-strong); color: #ad6800; background: #fff7e6; border: 1px solid #ffd591;
  white-space: nowrap; width: fit-content;
}
.org-lead-tag--scoped { color: #873800; background: #fff1e6; border-color: #ffbb96; }
.org-lead-scope { flex: 1 1 100%; font-size: 11px; color: #ad6800; font-weight: 500; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 160px; }
.org-profile-head .org-lead-tag { margin-left: 6px; margin-top: 0; vertical-align: middle; }
.org-profile-head .org-lead-scope { display: inline; margin-left: 6px; max-width: none; }
.org-online-status { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #4f6278; white-space: nowrap; }
.org-online-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.org-online-dot--online { background: #20b56b; box-shadow: 0 0 0 2px rgba(32,181,107,.2); }
.org-online-dot--busy { background: #fa8c16; box-shadow: 0 0 0 2px rgba(250,140,22,.2); }
.org-online-dot--offline { background: #bfbfbf; }
.org-perf-tag {
  display: inline-flex; padding: 2px 10px; border-radius: 999px; font-size: 11px; font-weight: var(--weight-strong); white-space: nowrap;
}
.org-perf-tag--excellent { color: #1a8f55; background: #ecfaf3; }
.org-perf-tag--follow { color: #d48806; background: #fff7e6; }
.org-perf-tag--normal { color: #1677ff; background: #eef6ff; }
.org-perf-tag--risk { color: #f14444; background: #fff2f0; }
.org-rate-cell { font-weight: var(--weight-strong); color: #2f4057; font-variant-numeric: tabular-nums; }
.org-rate-cell.is-high { color: #20b56b; }
.org-rate-cell.is-low { color: #f14444; }
.org-late-cell { font-weight: var(--weight-strong); color: #8b98a8; font-variant-numeric: tabular-nums; }
.org-late-cell.has-late { color: #f14444; }
.org-row-menu-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 6;
}
.org-row-menu-wrap.is-menu-active {
  z-index: 40;
}
.org-row-more {
  display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px;
  border: 0; border-radius: 6px; background: transparent; color: #8b98a8; cursor: pointer;
}
.org-row-menu-wrap.is-menu-active .org-row-more { background: #eef6ff; color: #1677ff; }
.org-row-menu {
  position: fixed;
  top: var(--org-menu-top, -9999px);
  left: var(--org-menu-left, -9999px);
  right: auto;
  bottom: auto;
  z-index: 10120;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 132px;
  padding: 4px;
  border: 1px solid #e6edf5;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 35, 68, 0.12);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}
.org-row-menu.is-measuring {
  position: fixed;
  left: -9999px;
  top: 0;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  transform: none !important;
}
.org-row-menu-wrap.is-menu-active .org-row-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.org-row-menu-wrap.is-menu-active.is-drop-up .org-row-menu {
  transform: translateY(0);
}
.org-row-menu-item {
  display: block;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #2f4057;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
}
.org-row-menu-item:hover { background: #f0f6ff; color: #1677ff; }
.org-row-menu-item--danger { color: #cf1322; }
.org-row-menu-item--danger:hover { background: #fff1f0; color: #cf1322; }
.org-th-actions { position: relative; overflow: visible; }
.org-member-table td.org-th-actions { overflow: visible; }
.org-table-footer {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 18px; border-top: 1px solid #f0f2f5; flex-shrink: 0; background: #fafbfc;
}
.org-pagination-info { color: #8b98a8; font-size: 12px; }
.org-pagination-controls { display: flex; align-items: center; gap: 6px; }
.org-page-btn {
  display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px;
  padding: 0 6px; border: 1px solid #dfe7f2; border-radius: 6px; background: #fff; color: #4f6278;
  font-size: 12px; cursor: pointer;
}
.org-page-btn:hover:not(:disabled) { border-color: #b9d6ff; color: #1677ff; }
.org-page-btn.is-active { border-color: #1677ff; background: #1677ff; color: #fff; }
.org-page-btn:disabled { opacity: .45; cursor: not-allowed; }
.org-page-size { height: 28px; padding: 0 8px; border: 1px solid #dfe7f2; border-radius: 6px; font-size: 12px; color: #4f6278; }

/* ── 成员详情固定卡片 ── */
.org-profile-head { text-align: center; padding: 0 0 12px; border-bottom: 1px solid #f0f2f5; }
.org-avatar.org-profile-avatar { width: 56px; height: 56px; font-size: 22px; margin: 0 auto 8px; }
.org-profile-head h3 { margin: 0 0 2px; font-size: 16px; font-weight: var(--weight-strong); color: var(--text); }
.org-profile-title { margin: 0 0 6px; color: #6d8096; font-size: 12px; }
.org-profile-contact {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  color: #8b98a8; font-size: 11px;
}
.org-profile-contact span:not(:first-child)::before {
  content: "·"; margin: 0 8px; color: #c5ced8;
}
.org-profile-section { padding: 12px 0; border-bottom: 1px solid #f0f2f5; }
.org-profile-section--compact { padding: 10px 0; }
.org-profile-section:last-of-type { border-bottom: 0; padding-bottom: 0; }
.org-profile-section h4 { margin: 0 0 8px; font-size: 12px; font-weight: var(--weight-strong); color: #2f4057; }
.org-profile-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; }
.org-profile-stats--row { grid-template-columns: repeat(4, 1fr); gap: 6px; }
.org-profile-stat {
  display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 4px;
  border: 1px solid #eef2f6; border-radius: 8px; background: #fafbfc; text-align: center;
}
.org-profile-stat b { font-size: 16px; color: #1677ff; line-height: 1; font-variant-numeric: tabular-nums; }
.org-profile-stat span { font-size: 10px; color: #8b98a8; }
.org-profile-stat.is-warn b { color: #fa8c16; }
.org-profile-stat.is-danger b { color: #f14444; }
.org-profile-chart { position: relative; height: 72px; padding: 0; }
.org-profile-chart svg { display: block; width: 100%; height: 100%; }
.org-profile-chart .chart-line { fill: none; stroke: #1677ff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.org-profile-chart .chart-area { fill: url(#orgChartGrad); opacity: .15; }
.org-profile-chart-axis { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; margin-top: 2px; color: #a8b4c2; font-size: 9px; text-align: center; }
.org-profile-projects { display: grid; gap: 6px; }
.org-profile-project {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; align-items: center;
  padding: 8px 10px; border: 1px solid #eef2f6; border-radius: 8px; background: #fafbfc;
}
.org-profile-project b { display: block; font-size: 12px; color: #2f4057; }
.org-profile-project small { display: block; margin-top: 1px; color: #8b98a8; font-size: 10px; }
.org-profile-project em { font-style: normal; font-size: 11px; font-weight: var(--weight-strong); color: #1677ff; }
.org-profile-more { margin: 0; color: #8b98a8; font-size: 11px; text-align: center; }
.org-profile-metrics { display: grid; gap: 6px; }
.org-profile-metrics--compact { gap: 4px; }
.org-profile-metric {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 7px 10px; border-radius: 7px; background: #fafbfc; font-size: 11px; color: #4f6278;
}
.org-profile-metric b { font-weight: 600; color: #2f4057; font-size: 11px; }
.org-profile-metric .org-perf-tag { flex-shrink: 0; font-size: 10px; padding: 1px 8px; }
.org-profile-footer { margin-top: auto; padding-top: 14px; flex-shrink: 0; display: grid; gap: 8px; }
.org-profile-footer .primary-button,
.org-profile-footer .secondary-button { width: 100%; height: 36px; border-radius: 8px; font-size: 13px; font-weight: 600; }
.org-profile-routine-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.org-kpi-summary { display: grid; gap: 8px; }
.org-kpi-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.org-kpi-score { display: flex; align-items: baseline; gap: 4px; color: #1677ff; }
.org-kpi-score b { font-size: 28px; line-height: 1; font-variant-numeric: tabular-nums; }
.org-kpi-score span { font-size: 12px; color: #8b98a8; }
.org-kpi-coef { text-align: right; }
.org-kpi-coef span { display: block; font-size: 11px; color: #8b98a8; }
.org-kpi-coef b { font-size: 18px; color: #2f4057; font-variant-numeric: tabular-nums; }
.org-kpi-template { margin: 0; font-size: 11px; color: #8b98a8; }
.org-kpi-dims, .org-kpi-penalties { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.org-kpi-dims li, .org-kpi-penalties li { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; align-items: center; font-size: 11px; color: #607086; padding: 4px 0; border-bottom: 1px dashed #eef2f6; }
.org-kpi-dims li b, .org-kpi-penalties li b { color: #2f4057; font-variant-numeric: tabular-nums; }
.org-kpi-dims li em { color: #a8b4c2; font-style: normal; font-size: 10px; }
.org-kpi-summary--muted p { margin: 0; font-size: 12px; color: #8b98a8; }
.kpi-settings-intro p { margin: 0; line-height: 1.6; color: #607086; font-size: 13px; }
.kpi-settings-grid { margin-bottom: 12px; }
.kpi-weight-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.kpi-weight-field { display: grid; gap: 4px; }
.kpi-weight-field span { font-size: 12px; color: #607086; }
.kpi-weight-field input { height: 34px; border: 1px solid #dfe7f2; border-radius: 8px; padding: 0 10px; }
.kpi-snapshot-note { margin: 0 0 10px; font-size: 12px; color: #607086; line-height: 1.5; }
.kpi-snapshot-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin-bottom: 12px; }
.kpi-snapshot-toolbar label { display: grid; gap: 4px; font-size: 12px; color: #607086; }
.kpi-snapshot-toolbar input, .kpi-snapshot-toolbar select { height: 34px; border: 1px solid #dfe7f2; border-radius: 8px; padding: 0 10px; min-width: 140px; }
.kpi-snapshot-list { margin-top: 4px; }
.kpi-penalty-row { display: grid; grid-template-columns: 120px 1fr 1fr; gap: 10px; align-items: end; padding: 8px 0; border-bottom: 1px dashed #eef2f6; }
.kpi-penalty-row b { font-size: 13px; color: #2f4057; padding-bottom: 8px; }
.kpi-penalty-row label { display: grid; gap: 4px; font-size: 12px; color: #607086; }
.kpi-penalty-row input { height: 34px; border: 1px solid #dfe7f2; border-radius: 8px; padding: 0 10px; }
.kpi-detail-table-wrap { overflow: auto; }
.kpi-detail-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.kpi-detail-table th, .kpi-detail-table td { padding: 8px 10px; border-bottom: 1px solid #eef2f6; text-align: left; }
.kpi-detail-table th { color: #8b98a8; font-weight: 600; background: #fafbfc; }
.org-profile-tabs { display: flex; gap: 6px; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid #eef2f6; }
.org-profile-tab { border: 0; background: #f5f8fc; color: #607086; font-size: 12px; padding: 6px 12px; border-radius: 999px; cursor: pointer; }
.org-profile-tab.is-active { background: #e8f1ff; color: #1677ff; font-weight: 600; }
.org-profile-tab-body { min-height: 120px; }
.org-member-kpi-panel, .org-member-kpi-readonly, .org-member-kpi-empty { display: grid; gap: 12px; }
.org-member-kpi-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.org-member-kpi-head h3 { margin: 0; font-size: 16px; }
.org-member-kpi-head p, .org-member-kpi-note { margin: 0; font-size: 12px; color: #607086; line-height: 1.5; }
.org-member-kpi-block { display: grid; gap: 8px; padding: 12px; border: 1px solid #eef2f6; border-radius: 10px; background: #fafbfc; }
.org-member-kpi-block h4 { margin: 0; font-size: 13px; color: #2f4057; }
.org-member-kpi-block-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.org-member-kpi-block-head small { color: #8b98a8; font-size: 11px; }
.org-member-kpi-custom { display: none; }
.org-member-kpi-custom.is-open { display: grid; }
.org-member-kpi-footer { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.kpi-mode-switch { display: flex; gap: 8px; flex-wrap: wrap; }
.kpi-mode-btn { border: 1px solid #dfe7f2; background: #fff; color: #607086; font-size: 12px; padding: 6px 12px; border-radius: 999px; cursor: pointer; }
.kpi-mode-btn.is-active { border-color: #1677ff; background: #e8f1ff; color: #1677ff; font-weight: 600; }
.kpi-mode-badge { font-size: 11px; padding: 4px 8px; border-radius: 999px; background: #eef2f6; color: #607086; white-space: nowrap; }
.kpi-mode-badge--custom { background: #fff7e6; color: #d48806; }
.kpi-mode-badge--disabled { background: #fff1f0; color: #cf1322; }
.kpi-project-chip-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.kpi-project-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid #dfe7f2; border-radius: 999px; font-size: 12px; color: #607086; cursor: pointer; }
.kpi-project-chip.is-on { border-color: #1677ff; background: #e8f1ff; color: #1677ff; }
.kpi-project-chip input { margin: 0; }
.kpi-inline-field { display: grid; gap: 4px; font-size: 12px; color: #607086; }
.kpi-inline-field input, .kpi-inline-field select { height: 34px; border: 1px solid #dfe7f2; border-radius: 8px; padding: 0 10px; }
.kpi-weight-preview { display: flex; flex-wrap: wrap; gap: 6px; }
.kpi-weight-chip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border-radius: 999px; font-size: 11px; background: #eef2f6; color: #607086; }
.kpi-weight-chip[data-tone="green"] { background: #f6ffed; color: #389e0d; }
.kpi-weight-chip[data-tone="blue"] { background: #e8f1ff; color: #1677ff; }
.kpi-weight-chip b { font-weight: 700; }
.kpi-preview-empty { margin: 0; font-size: 12px; color: #8b98a8; }
.kpi-settings-fold { border: 1px solid #eef2f6; border-radius: 8px; padding: 8px 10px; background: #fff; }
.kpi-settings-fold summary { cursor: pointer; font-size: 12px; color: #2f4057; font-weight: 600; }
.member-digest-note { margin: 0; color: #8b98a8; font-size: 12px; line-height: 1.5; }
.filter-bar { display: flex; gap: 12px; align-items: end; padding: 17px; border-bottom: 1px solid var(--line); }
.filter-bar label { width: 170px; } .filter-bar label:first-child { width: 240px; }
label span { display: block; margin-bottom: 6px; color: #637083; font-size: 12px; }
label b { color: var(--red); }
.full-table { min-height: 500px; }
.row-action { color: var(--blue); background: transparent; font-size: 12px; }
.row-actions { display: flex; gap: 10px; }
.compact-metrics .metric-card { min-height: 92px; }
.large-project-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.large-project { padding: 18px; }
.large-project h3 { margin: 0 0 4px; }
.large-project > p { min-height: 42px; color: var(--muted); font-size: 12px; }
.corp-binding { display: inline-block; padding: 3px 8px; border-radius: 14px; color: #1677ff; background: #eef6ff; font-size: 11px; }
.large-project .counts { display: flex; justify-content: space-between; margin: 18px 0; }
.large-project .counts span { color: var(--muted); font-size: 11px; }
.large-project .counts b { display: block; color: var(--text); font-size: 20px; }
.large-project footer { display: flex; justify-content: space-between; margin-top: 10px; color: var(--muted); font-size: 11px; }
.stats-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; padding: 0 16px; min-height: 52px; border-bottom: 1px solid #eef2f6; }
.stats-tabs { display: flex; flex-wrap: wrap; gap: 2px; align-items: center; flex: 1 1 auto; min-width: 0; }
.stats-tabs button { height: 42px; padding: 0 14px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: #607086; font-size: 13px; font-weight: var(--weight-strong); cursor: pointer; margin-bottom: -1px; white-space: nowrap; }
.stats-tabs button:hover { color: #2f4057; }
.stats-tabs button.active { color: #1677ff; border-bottom-color: #1677ff; }
.stats-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-left: auto; flex-shrink: 0; }
.eff-date-presets { display: inline-flex; gap: 4px; padding: 3px; border: 1px solid #dfe7f2; border-radius: 8px; background: #f7f9fc; }
.eff-date-preset {
  height: 30px; padding: 0 12px; border: 0; border-radius: 6px; background: transparent;
  color: #607086; font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.eff-date-preset:hover { color: #2f4057; background: rgba(255,255,255,.7); }
.eff-date-preset.active { background: #fff; color: #1677ff; box-shadow: 0 1px 3px rgba(15,35,70,.08); }
.stats-date-field { display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; height: 36px; border: 1px solid #dfe7f2; border-radius: 8px; background: #fff; color: #607086; font-size: 12px; white-space: nowrap; }
.stats-date-field input { width: 118px; height: 30px; border: 0; background: transparent; color: #2f4057; font-size: 12px; font-weight: 600; }
.stats-date-field input:focus { outline: none; }
.stats-project-field select { min-width: 132px; height: 36px; padding: 0 10px; border: 1px solid #dfe7f2; border-radius: 8px; background: #fff; color: #2f4057; font-size: 12px; font-weight: 600; }
.stats-export-btn { height: 36px; padding: 0 14px; border-radius: 8px; font-size: 12px; font-weight: var(--weight-strong); white-space: nowrap; }
.stats-tab-panels { display: grid; }
.stats-tab-panel { display: none; grid-template-columns: 1fr; gap: 10px; align-content: start; }
.stats-tab-panel.active { display: grid; }
.stats-kpi { margin-bottom: 2px; }
.stats-kpi .eff-kpi-card[data-tone="purple"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath d='M12 20V10M6 14l6-6 6 6'/%3E%3C/svg%3E"); }
.stats-kpi .eff-kpi-card[data-tone="yellow"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath d='M12 8v4l3 2M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E"); }
.stats-kpi .eff-kpi-card[data-tone="blue"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath d='M9 5H7a2 2 0 00-2 2v12h10V7a2 2 0 00-2-2h-2M9 5a2 2 0 014 0'/%3E%3C/svg%3E"); }
.stats-kpi .eff-kpi-card[data-tone="green"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath d='M9 12l2 2 4-4M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E"); }
.stats-kpi .eff-kpi-card[data-tone="orange"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath d='M12 8v4l3 2M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E"); }
.stats-kpi .eff-kpi-card[data-tone="red"] .xm-metric-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E"); }
.stats-row { display: grid; gap: 10px; align-items: stretch; }
.stats-row.two { grid-template-columns: minmax(0, 1.55fr) minmax(280px, .85fr); }
.stats-row.hero-three { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr) minmax(0, 1fr); }
.stats-row.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stats-row.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stats-row.bottom-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stats-chart-panel { display: flex; flex-direction: column; min-height: 280px; height: 100%; }
.stats-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 18px 10px; border-bottom: 1px solid #f0f2f5; flex-shrink: 0; }
.stats-panel-head h3 { margin: 0; color: #13243a; font-size: 14px; line-height: 1.35; flex: 1; min-width: 0; }
.stats-panel-head h3 small { color: #7a8798; font-size: 11px; font-weight: 500; }
.stats-link-btn { flex-shrink: 0; padding: 2px 0; color: #1677ff; background: transparent; font-size: 12px; font-weight: 600; white-space: nowrap; cursor: pointer; line-height: 1.2; }
.stats-link-btn:hover { color: #0958d9; text-decoration: underline; }
.stats-panel-body { flex: 1; display: flex; flex-direction: column; justify-content: center; min-height: 0; }
.stats-chart-panel .panel-header { padding-bottom: 8px; }
.stats-chart-panel .panel-header h3 { font-size: 14px; }
.stats-chart-body { padding: 0 16px 16px; flex: 1; display: flex; flex-direction: column; justify-content: center; }
.stats-trend-chart { position: relative; height: 220px; padding: 8px 8px 0; }
.stats-trend-chart svg { display: block; width: 100%; height: 100%; }
.stats-trend-chart .grid { stroke: #edf1f6; stroke-width: 1; }
.stats-trend-chart .line-new { fill: none; stroke: #1677ff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.stats-trend-chart .line-done { fill: none; stroke: #20b56b; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.stats-trend-chart .line-late { fill: none; stroke: #ff5151; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 5 4; vector-effect: non-scaling-stroke; }
.stats-trend-legend { display: flex; flex-wrap: wrap; gap: 14px; padding: 8px 16px 14px; border-top: 1px solid #f0f2f5; flex-shrink: 0; }
.stats-trend-legend span { display: inline-flex; align-items: center; gap: 6px; color: #7a8798; font-size: 11px; }
.stats-trend-legend i { display: inline-block; width: 16px; height: 3px; border-radius: 2px; font-style: normal; }
.stats-trend-legend i.new { background: #1677ff; }
.stats-trend-legend i.done { background: #20b56b; }
.stats-trend-legend i.late { background: #ff5151; }
.stats-trend-axis { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; padding: 0 16px 12px; color: #8b98a8; font-size: 11px; text-align: center; flex-shrink: 0; }
.stats-donut-wrap { display: flex; align-items: center; justify-content: center; gap: 20px; min-height: 210px; padding: 12px 16px 16px; }
.stats-donut { display: grid; width: 140px; height: 140px; place-items: center; border-radius: 50%; flex-shrink: 0; aspect-ratio: 1; }
.stats-donut div { display: grid; width: 92px; height: 92px; place-items: center; align-content: center; border-radius: 50%; background: #fff; text-align: center; }
.stats-donut strong { font-size: 22px; color: #102033; line-height: 1; }
.stats-donut small { display: block; margin-top: 2px; color: #7a8798; font-size: 11px; line-height: 1.2; }
.stats-donut-wrap--eff.is-empty {
  min-height: 0;
}
.stats-legend { flex: 1; min-width: 100px; max-width: 180px; }
.stats-legend p { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; gap: 8px; align-items: center; margin: 7px 0; color: #7a8798; font-size: 11px; }
.stats-legend i { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; font-style: normal; }
.stats-legend span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stats-legend b { color: #2f4057; font-size: 12px; white-space: nowrap; }
.stats-rank-list { padding: 4px 0 8px; align-self: flex-start; width: 100%; }
.stats-rank-row { display: grid; grid-template-columns: 88px minmax(0, 1fr) 42px; gap: 10px; align-items: center; padding: 10px 18px; border-top: 1px solid #f0f2f5; font-size: 12px; }
.stats-rank-row:first-child { border-top: 0; }
.stats-rank-row span { color: #2f4057; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stats-rank-row b { text-align: right; color: #20b56b; font-weight: var(--weight-strong); }
.stats-priority-chart { display: flex; align-items: end; justify-content: space-around; gap: 10px; height: 210px; padding: 12px 16px 10px; }
.stats-priority-col { display: flex; flex: 1; max-width: 52px; flex-direction: column; align-items: center; justify-content: end; gap: 6px; height: 100%; }
.stats-priority-col i { display: block; width: 100%; min-height: 8px; border-radius: 6px 6px 0 0; font-style: normal; }
.stats-priority-col i.p0 { background: linear-gradient(180deg, #ff7a7a, #ff5151); }
.stats-priority-col i.p1 { background: linear-gradient(180deg, #ffb04d, #ff9518); }
.stats-priority-col i.p2 { background: linear-gradient(180deg, #58aeff, #1677ff); }
.stats-priority-col i.p3 { background: linear-gradient(180deg, #6fd9a0, #20b56b); }
.stats-priority-col span { color: #7a8798; font-size: 11px; }
.stats-priority-col b { color: #2f4057; font-size: 12px; font-weight: var(--weight-strong); order: -1; }
.stats-duration-list { padding: 4px 0 8px; flex: 1; }
.stats-duration-row { display: grid; grid-template-columns: 72px minmax(0, 1fr) 42px; gap: 10px; align-items: center; padding: 10px 18px; border-top: 1px solid #f0f2f5; font-size: 12px; }
.stats-duration-row:first-child { border-top: 0; }
.stats-duration-row span { color: #607086; white-space: nowrap; }
.stats-duration-row b { text-align: right; color: #2f4057; }
.stats-member-table { padding: 0 0 8px; flex: 1; overflow-x: auto; }
.stats-member-head, .stats-member-row { display: grid; grid-template-columns: 32px minmax(0, 1.4fr) 56px 72px 56px; gap: 8px; align-items: center; padding: 10px 18px; font-size: 12px; }
.stats-member-head { color: #8b98a8; border-bottom: 1px solid #f0f2f5; }
.stats-member-row { border-top: 1px solid #f0f2f5; }
.stats-member-row:first-of-type { border-top: 0; }
.stats-member-rank { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: #f2f6fb; color: #607086; font-size: 11px; font-weight: var(--weight-display); }
.stats-member-rank.top1 { background: #fff4d6; color: #c99200; }
.stats-member-rank.top2 { background: #eef2f7; color: #7a8798; }
.stats-member-rank.top3 { background: #fff0e8; color: #c76a2a; }
.stats-member-person { display: flex; gap: 8px; align-items: center; min-width: 0; }
.stats-member-person .avatar { width: 28px; height: 28px; font-size: 11px; flex-shrink: 0; }
.stats-member-person b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #2f4057; font-size: 12px; }
.stats-alert-list { padding: 0 0 8px; flex: 1; }
.stats-alert-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 18px; border-top: 1px solid #f0f2f5; cursor: pointer; }
.stats-alert-row:first-child { border-top: 0; }
.stats-alert-row:hover { background: #fff8f8; }
.stats-alert-row > div { min-width: 0; flex: 1; }
.stats-alert-row b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; color: #2f4057; }
.stats-alert-row small { display: block; margin-top: 2px; color: #8b98a8; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stats-alert-row em { padding: 3px 8px; border-radius: 999px; color: #ff5151; background: #fff0f0; font-style: normal; font-size: 11px; font-weight: var(--weight-strong); white-space: nowrap; flex-shrink: 0; }
.stats-progress-list { padding: 0 0 8px; flex: 1; }
.stats-progress-row { padding: 12px 18px; border-top: 1px solid #f0f2f5; }
.stats-progress-row:first-child { border-top: 0; }
.stats-progress-row div { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 7px; font-size: 12px; }
.stats-progress-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #2f4057; }
.stats-progress-row b { color: #20b56b; flex-shrink: 0; }
.stats-overview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 12px 16px 16px; flex: 1; align-content: start; }
.stats-overview-item { display: flex; gap: 10px; align-items: center; min-height: 64px; padding: 12px; border: 1px solid #e8eef5; border-radius: 10px; background: #fbfdff; }
.stats-overview-item i { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 10px; background: #eaf3ff; color: #1677ff; font-style: normal; font-size: 14px; font-weight: var(--weight-display); flex-shrink: 0; aspect-ratio: 1; }
.stats-overview-item b { display: block; font-size: 18px; color: #2f4057; line-height: 1.1; }
.stats-overview-item span { display: block; margin-top: 2px; color: #7a8798; font-size: 11px; }
.stats-custom-panel { padding: 18px 20px 22px; }
.stats-custom-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.stats-custom-card { display: flex; flex-direction: column; padding: 16px; border: 1px solid #e8eef5; border-radius: 12px; background: #fbfdff; }
.stats-custom-card h4 { margin: 0 0 6px; font-size: 14px; color: #2f4057; }
.stats-custom-card p { margin: 0 0 12px; flex: 1; color: #7a8798; font-size: 12px; line-height: 1.55; }
.stats-team-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 0 16px 16px; }
.stats-team-card { padding: 14px 16px; border: 1px solid #e8eef5; border-radius: 12px; background: #fbfdff; }
.stats-team-card h4 { margin: 0 0 8px; font-size: 14px; color: #2f4057; }
.stats-team-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.stats-team-metrics span { display: block; color: #7a8798; font-size: 11px; }
.stats-team-metrics b { display: block; margin-top: 2px; color: #2f4057; font-size: 18px; line-height: 1.1; }
.stats-empty-tip { padding: 24px 18px; color: #8b98a8; font-size: 12px; text-align: center; }
.stats-empty-tip--compact {
  margin: 0;
  padding: 0;
  font-size: 12px;
  line-height: 1.4;
  color: #9aa6b7;
}

/* ── 效能中心（参考图：KPI + 三栏主图区 + 三栏底区） ── */
.efficiency-view .stats-chart-panel { min-height: 0; height: auto; }
.efficiency-view .stats-panel-body { justify-content: flex-start; }
.efficiency-view .eff-main { background: transparent; }
.eff-page-head {
  display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 14px;
  flex-shrink: 0;
  margin-bottom: 10px; padding: 14px 18px;
  border-radius: 12px;
  background: linear-gradient(180deg, #fff 0%, #fafcff 100%);
  box-shadow: 0 8px 24px rgba(16, 38, 72, 0.04);
}
.eff-page-head-main {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex: 1 1 280px;
  min-width: 0;
}
.eff-page-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.eff-page-head h2 { margin: 0; font-size: 22px; font-weight: var(--weight-display); color: #102033; letter-spacing: -.2px; }
.eff-page-head p { margin: 6px 0 0; color: #7a8798; font-size: 13px; line-height: 1.5; }
.eff-page-filters { margin-left: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.eff-main { display: block; min-width: 0; }
.eff-board { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.eff-row {
  display: grid;
  gap: 12px;
  align-items: stretch;
  min-width: 0;
}
.eff-row-hero {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1.32fr) minmax(0, 0.88fr);
}
.eff-row-bottom {
  grid-template-columns: minmax(0, 1.58fr) minmax(0, 0.92fr) minmax(0, 0.92fr);
}
.eff-col-stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  min-height: 0;
}
.eff-col-stack > .eff-card { flex: 1; min-height: 0; }
.eff-denied { padding: 28px 24px; text-align: center; }
.eff-denied h3 { margin: 0 0 8px; }
.eff-denied p { margin: 0; color: #7a8798; font-size: 13px; line-height: 1.6; }
.eff-kpi-card[data-eff-kpi] { cursor: pointer; }
.eff-kpi-card[data-eff-kpi]:hover { border-color: #b9d6ff; box-shadow: 0 4px 14px rgba(22,119,255,.08); }
.eff-kpi-strip { flex-shrink: 0; }
#statsView .eff-kpi-strip.task-quick-cards {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
  min-width: 0;
}
#statsView .eff-kpi-strip .eff-kpi-card {
  min-height: 88px;
  height: auto;
  padding: 14px 10px;
  gap: 10px;
  border-radius: 10px;
  border-color: #e7eef8;
  box-shadow: 0 8px 22px rgba(11, 36, 70, .04);
  flex-wrap: nowrap;
}
#statsView .eff-kpi-strip .eff-kpi-card:hover {
  border-color: #b9d7ff;
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(22, 119, 255, .08);
}
#statsView .eff-kpi-strip .eff-kpi-card > i.xm-metric-icon {
  display: block;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 20px 20px;
  font-style: normal;
}
#statsView .eff-kpi-strip .eff-kpi-card > div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  flex: 1 1 auto;
  gap: 2px;
}
#statsView .eff-kpi-strip .eff-kpi-card > div > span {
  margin: 0;
  color: #17263b;
  font-size: 12px;
  font-weight: var(--weight-display);
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#statsView .eff-kpi-strip .eff-kpi-card > div > b {
  margin: 6px 0 0;
  color: #071a33;
  font-size: 22px;
  font-weight: var(--weight-strong);
  line-height: 1;
  letter-spacing: -.4px;
}
#statsView .eff-kpi-strip .eff-kpi-card > div > b::after { content: none; }
#statsView .eff-kpi-strip .eff-kpi-card > div > small {
  display: block;
  margin: 2px 0 0;
  color: #9aa6b7;
  font-size: 11px;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#statsView .eff-kpi-strip .eff-kpi-card > div > small b {
  display: inline;
  margin: 0;
  font-size: inherit;
  font-weight: var(--weight-strong);
  line-height: inherit;
  letter-spacing: 0;
}
#statsView .eff-kpi-strip .eff-kpi-card > div > small b::after { content: none; }
#statsView .eff-kpi-strip .eff-kpi-card > div > small b.up { color: var(--trend-good); }
#statsView .eff-kpi-strip .eff-kpi-card > div > small b.down { color: var(--trend-bad); }
#statsView .eff-kpi-strip .eff-kpi-card > div > small b.flat { color: var(--trend-flat); }
@media (max-width: 1280px) {
  #statsView .eff-kpi-strip.task-quick-cards {
    grid-template-columns: repeat(6, minmax(108px, 1fr));
  }
  #statsView .eff-kpi-strip .eff-kpi-card {
    min-height: 84px;
    padding: 12px 8px;
  }
  #statsView .eff-kpi-strip .eff-kpi-card > div > b { font-size: 20px; }
}
@media (max-width: 980px) {
  #statsView .eff-kpi-strip.task-quick-cards {
    grid-template-columns: repeat(6, minmax(104px, 1fr));
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
  }
}
.eff-card {
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(16, 38, 72, 0.06);
}
.eff-card .stats-panel-body { flex: 1; min-height: 0; }
.eff-row-hero .eff-card-trend { min-height: 318px; }
.eff-row-hero .eff-card-project { min-height: 318px; }
.eff-row-hero .eff-card-project .eff-scroll { max-height: 248px; }
.eff-row-hero .eff-card-task-status { min-height: 318px; }
.eff-row-bottom .eff-card-rank { min-height: 420px; }
.eff-row-bottom .eff-card-rank .eff-scroll { max-height: none; flex: 1; }
.eff-col-mid .eff-card-member-status { flex: 0 1 auto; min-height: 248px; }
.eff-col-mid .eff-card-presence { min-height: 300px; width: 100%; }
.eff-col-mid .eff-card-presence .stats-panel-body { width: 100%; }
.eff-presence-body { padding: 10px 14px 12px; display: grid; gap: 10px; width: 100%; box-sizing: border-box; }
.eff-presence-card { display: grid; gap: 10px; width: 100%; min-width: 0; }
.eff-presence-summary { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; width: 100%; }
.eff-presence-chip {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #e8edf3;
  border-radius: 10px;
  background: #fff;
  color: #2f4057;
  cursor: pointer;
  box-sizing: border-box;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.eff-presence-chip:hover { border-color: #91caff; box-shadow: 0 4px 14px rgba(22, 119, 255, .08); transform: translateY(-1px); }
.eff-presence-chip b { font-size: 16px; font-weight: var(--weight-strong); color: #102033; }
.eff-presence-chip-label { font-size: 11px; color: #607086; }
.eff-presence-chip-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.eff-presence-chip--online .eff-presence-chip-dot { background: #52c41a; box-shadow: 0 0 0 3px rgba(82, 196, 26, .15); }
.eff-presence-chip--busy .eff-presence-chip-dot { background: #faad14; box-shadow: 0 0 0 3px rgba(250, 173, 20, .15); }
.eff-presence-chip--away .eff-presence-chip-dot { background: #8c8c8c; }
.eff-presence-chip--leave .eff-presence-chip-dot { background: #69b1ff; box-shadow: 0 0 0 3px rgba(105, 177, 255, .15); }
.eff-presence-chip--offline .eff-presence-chip-dot { background: #bfbfbf; }
.eff-presence-dept-block { display: grid; gap: 6px; padding-top: 2px; border-top: 1px dashed #edf1f6; }
.eff-presence-dept-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #607086; font-size: 11px; font-weight: 600; }
.eff-presence-dept-table { display: grid; gap: 4px; width: 100%; }
.eff-presence-dept-head,
.eff-presence-dept-row {
  display: grid;
  grid-template-columns: 1.4fr repeat(3, minmax(42px, 0.7fr));
  gap: 8px;
  align-items: center;
  font-size: 12px;
}
.eff-presence-dept-head { color: #8b98a8; padding: 0 8px; }
.eff-presence-dept-row {
  padding: 7px 8px;
  border: 0;
  border-radius: 8px;
  background: #f8fafc;
  color: #2f4057;
  cursor: pointer;
  text-align: left;
}
.eff-presence-dept-row:hover { background: #eef6ff; }
.eff-presence-dept-row .is-warn { color: #cf1322; font-weight: 600; }
.eff-presence-drawer .eff-presence-table .eff-table-head,
.eff-presence-drawer .eff-presence-table .eff-table-row {
  grid-template-columns: 1.2fr 0.9fr 1fr 0.6fr 0.6fr;
}
.presence-detail .member-digest-kpi article small { display: block; margin-top: 2px; color: #8b98a8; font-size: 10px; font-weight: 500; }
.eff-col-mid .eff-card-alerts { flex: 1 1 auto; min-height: 168px; }
.eff-col-side .eff-card-dept { flex: 0 1 auto; min-height: 200px; }
.eff-col-side .eff-card-dept .eff-scroll { max-height: 148px; }
.eff-col-side .eff-card-suggest { flex: 1 1 auto; min-height: 168px; }
.eff-card-pie .stats-donut-wrap,
.eff-card-pie .stats-donut-wrap--eff {
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 20px;
  min-height: 0;
  padding: 14px 18px 16px;
}
.eff-row-hero .eff-card-task-status .stats-donut-wrap--eff {
  flex-direction: column;
  gap: 12px;
  padding: 10px 14px 14px;
}
.eff-row-hero .eff-card-task-status .stats-donut-wrap--eff.is-empty {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 0;
  padding: 14px 12px 16px;
}
.eff-row-hero .eff-card-task-status .stats-donut-wrap--eff.is-empty .stats-donut {
  width: 88px;
  height: 88px;
}
.eff-row-hero .eff-card-task-status .stats-donut-wrap--eff.is-empty .stats-donut div {
  width: 56px;
  height: 56px;
}
.eff-row-hero .eff-card-task-status .stats-donut-wrap--eff.is-empty .stats-donut strong {
  font-size: 20px;
}
.eff-row-hero .eff-card-task-status:has(.stats-donut-wrap--eff.is-empty) {
  min-height: 0;
}
.eff-row-hero .eff-card-task-status:has(.stats-donut-wrap--eff.is-empty) .eff-donut-body {
  min-height: 0;
  padding: 0;
}
.eff-col-mid .eff-card-member-status .stats-donut-wrap--eff.is-empty {
  min-height: 0;
  padding: 12px;
  flex-direction: column;
  gap: 8px;
}
.eff-col-mid .eff-card-member-status:has(.stats-donut-wrap--eff.is-empty) {
  min-height: 0;
}
.eff-row-hero .eff-card-task-status .stats-legend--eff {
  max-width: none;
  width: 100%;
}
.eff-col-mid .eff-card-member-status .stats-donut-wrap--eff {
  min-height: 180px;
  padding: 10px 14px 12px;
}
.eff-card-pie .stats-donut {
  width: 156px;
  height: 156px;
  flex-shrink: 0;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.02);
}
.eff-row-hero .eff-card-task-status .stats-donut {
  width: 132px;
  height: 132px;
}
.eff-col-mid .eff-card-member-status .stats-donut {
  width: 120px;
  height: 120px;
}
.eff-card-pie .stats-donut div {
  width: 84px;
  height: 84px;
}
.eff-row-hero .eff-card-task-status .stats-donut div {
  width: 72px;
  height: 72px;
}
.eff-col-mid .eff-card-member-status .stats-donut div {
  width: 66px;
  height: 66px;
}
.eff-card-pie .stats-donut strong { font-size: 26px; font-weight: var(--weight-display); color: #102033; letter-spacing: -.3px; }
.eff-card-pie .stats-donut small { font-size: 11px; color: #8c8c8c; }
.eff-card-pie .stats-legend,
.eff-card-pie .stats-legend--eff { flex: 1; min-width: 108px; max-width: 172px; }
.stats-legend--eff p {
  grid-template-columns: 10px minmax(0, 1fr) auto auto;
  gap: 6px 10px;
  margin: 9px 0;
  align-items: center;
}
.stats-legend--eff i { width: 10px; height: 10px; border-radius: 2px; }
.stats-legend--eff span { color: #595959; font-size: 12px; }
.stats-legend--eff em { font-style: normal; color: #262626; font-size: 13px; font-weight: var(--weight-strong); }
.stats-legend--eff b { color: #8c8c8c; font-size: 12px; font-weight: 600; }
.eff-donut-body {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
}
.eff-scroll { overflow: auto; justify-content: flex-start; }
.eff-card-rank .eff-member-table .eff-table-row { padding: 8px 14px; }
.eff-card-dept .eff-table-head { font-size: 11px; color: #8c8c8c; }
.eff-panel-head h3 { margin: 0; font-size: 15px; font-weight: var(--weight-strong); }
.eff-card-alerts .eff-panel-head h3 { color: #e5484d; }
.eff-card-trend .stats-panel-body { display: flex; flex-direction: column; align-items: stretch; width: 100%; min-width: 0; }
.eff-trend-chart.stats-trend-chart {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 520 / 210;
  padding: 4px 0 0;
  box-sizing: border-box;
  flex-shrink: 0;
}
.eff-trend-chart svg { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.eff-trend-xlabel { fill: #8c8c8c; font-size: 10px; font-weight: 500; }
.eff-trend-chart .stats-trend-axis { display: none; }
.eff-trend-grid { stroke: #f0f0f0; stroke-width: 1; }
.eff-trend-ylabel { fill: #bfbfbf; font-size: 10px; font-weight: 500; }
.eff-trend-line { fill: none; stroke: #1890ff; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; filter: drop-shadow(0 1px 2px rgba(24, 144, 255, 0.12)); }
.eff-trend-area { stroke: none; fill: url(#effTrendFillGradient); }
.eff-trend-dot { fill: #fff; stroke: #91caff; stroke-width: 2; }
.eff-trend-dot.is-active { fill: #1890ff; stroke: #fff; stroke-width: 2.5; filter: drop-shadow(0 2px 6px rgba(24, 144, 255, 0.35)); }
.eff-trend-badge rect { fill: #1890ff; }
.eff-trend-badge text { fill: #fff; font-size: 11px; font-weight: var(--weight-strong); }
.eff-trend-caption { margin: 0; padding: 0 16px 14px; color: #8c8c8c; font-size: 12px; }
.eff-trend-caption b { color: #1890ff; font-weight: 400; }
.eff-health { font-weight: var(--weight-strong); }
.eff-health--excellent { color: #52c41a; }
.eff-health--good { color: #1890ff; }
.eff-health--follow { color: #faad14; }
.eff-health--risk { color: #ff4d4f; }
.eff-member-tabs, .eff-detail-tabs { display: flex; gap: 4px; padding: 0 16px 8px; }
.eff-member-tabs button, .eff-detail-tabs button {
  height: 30px; padding: 0 12px; border: 1px solid #dfe7f2; border-radius: 8px; background: #fff;
  color: #607086; font-size: 12px; font-weight: var(--weight-strong); cursor: pointer;
}
.eff-member-tabs button.active, .eff-detail-tabs button.active { border-color: #1677ff; color: #1677ff; background: #eef6ff; }
.eff-table { width: 100%; font-size: 12px; }
.eff-table-head, .eff-table-row {
  display: grid; gap: 8px; align-items: center; padding: 10px 16px; text-align: left;
}
.eff-member-table .eff-table-head, .eff-member-table .eff-table-row {
  grid-template-columns: 36px minmax(0, 1.1fr) 72px 56px 56px 44px 52px 72px 48px 88px;
}
.eff-project-table .eff-table-head, .eff-project-table .eff-table-row {
  grid-template-columns: minmax(0, 1fr) 72px minmax(0, 1fr) 44px 48px 80px;
}
.eff-dept-table .eff-table-head, .eff-dept-table .eff-table-row {
  grid-template-columns: minmax(0, 1fr) 44px 48px 48px 44px 56px 48px 36px;
}
.eff-dept-table--compact .eff-table-head,
.eff-dept-table--compact .eff-table-row {
  grid-template-columns: minmax(0, 1fr) 52px 56px 72px;
  padding: 9px 14px;
  font-size: 12px;
}
.eff-col-side .eff-card-dept .eff-dept-table--compact .eff-table-head,
.eff-col-side .eff-card-dept .eff-dept-table--compact .eff-table-row {
  padding: 8px 12px;
}
.eff-dept-table--compact .eff-table-head span:nth-child(2),
.eff-dept-table--compact .eff-table-head span:nth-child(3),
.eff-dept-table--compact .eff-table-row span:nth-child(2),
.eff-dept-table--compact .eff-table-row span:nth-child(3) {
  text-align: right;
}
.eff-dept-table--compact .eff-table-head span:nth-child(4),
.eff-dept-table--compact .eff-table-row span:nth-child(4) {
  text-align: right;
}
.eff-dept-table--compact .eff-tag {
  justify-content: center;
  min-width: 56px;
  padding: 2px 6px;
  font-size: 10px;
}
.eff-dept-table--compact .eff-dept-name b {
  font-size: 13px;
  font-weight: 600;
  color: #262626;
}
.eff-dept-table--compact .eff-dept-score b {
  font-size: 16px;
  font-weight: var(--weight-display);
  color: #102033;
  line-height: 1;
}
.eff-dept-table--compact .eff-dept-trend {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 40px;
  font-size: 11px;
  font-weight: var(--weight-strong);
  white-space: nowrap;
}
.eff-table-head { color: #8b98a8; border-bottom: 1px solid #f0f2f5; font-weight: 600; }
.eff-table-row {
  width: 100%; border: 0; border-top: 1px solid #f0f2f5; background: transparent; cursor: pointer; color: inherit;
}
.eff-table-row:hover { background: #f8fbff; }
.efficiency-view .eff-project-table .progress { height: 8px; margin: 0; border-radius: 999px; background: #f5f5f5; }
.efficiency-view .eff-project-table .progress i { border-radius: 999px; background: linear-gradient(90deg, #36cfc9 0%, #13c2c2 100%); }
.eff-table-row em { font-style: normal; color: #8c8c8c; font-size: 11px; }
.eff-rank {
  display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%;
  background: #f2f6fb; color: #607086; font-size: 11px; font-weight: var(--weight-display);
}
.eff-rank.top1 { background: #fff4d6; color: #c99200; }
.eff-rank.top2 { background: #eef2f7; color: #7a8798; }
.eff-rank.top3 { background: #fff0e8; color: #c76a2a; }
.eff-table .is-warn { color: #ff5151; font-weight: var(--weight-strong); }
.eff-trend-up, .eff-dept-trend.eff-trend-up, .trend-rise { color: var(--trend-good); font-weight: var(--weight-strong); }
.eff-trend-down, .eff-dept-trend.eff-trend-down, .trend-fall { color: var(--trend-bad); font-weight: var(--weight-strong); }
.trend-flat { color: var(--trend-flat); font-weight: 500; }
.eff-tag { display: inline-flex; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: var(--weight-strong); white-space: nowrap; }
.eff-tag--excellent { color: #389e0d; background: #f6ffed; }
.eff-tag--good { color: #1890ff; background: #e6f4ff; }
.eff-tag--normal { color: #607086; background: #f5f5f5; }
.eff-tag--follow { color: #d48806; background: #fffbe6; }
.eff-tag--risk { color: #cf1322; background: #fff1f0; }
.eff-alert-list { display: grid; gap: 0; padding-bottom: 4px; }
.eff-alert-item {
  display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; align-items: start;
  padding: 10px 14px; border-top: 1px solid #f0f2f5; cursor: pointer;
}
.eff-alert-item:first-child { border-top: 0; }
.eff-alert-item:hover { background: #fff8f8; }
.eff-alert-icon {
  width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; flex-shrink: 0;
  background: #fff0f0 center/14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23ff5151' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E");
}
.eff-alert-item--medium .eff-alert-icon {
  background-color: #fff7e6;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23ff9518' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E");
}
.eff-alert-item p { margin: 0; color: #2f4057; font-size: 12px; line-height: 1.55; }
.eff-suggest-list { display: grid; gap: 0; }
.eff-suggest-item {
  display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; align-items: start;
  padding: 10px 14px; border-top: 1px solid #f0f2f5; cursor: pointer;
}
.eff-suggest-item:first-child { border-top: 0; }
.eff-suggest-item:hover { background: #f8fbff; }
.eff-suggest-icon {
  width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; flex-shrink: 0;
  background: transparent center/14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath d='M9.09 9a3 3 0 115.82 1c0 2-3 2.5-3 4M12 17h.01'/%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E");
}
.eff-suggest-item--good .eff-suggest-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath d='M9 12l2 2 4-4M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
}
.eff-suggest-item--warn .eff-suggest-icon {
  background-color: #fff7e6;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23ff9518' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E");
}
.eff-suggest-item p { margin: 0; color: #4f6278; font-size: 12px; line-height: 1.55; }
.eff-detail-drawer {
  width: var(--panel-width);
  max-width: var(--panel-width);
  right: calc(-1 * var(--panel-width));
  z-index: 44;
  border-left: 1px solid var(--line);
}
.eff-detail-drawer.show {
  right: 0;
  box-shadow: -8px 0 32px rgba(5,28,54,.12);
}
.eff-detail-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
  padding: 16px 18px; border-bottom: 1px solid #f0f2f5;
}
.eff-detail-head h2 { margin: 4px 0 0; font-size: 18px; }
.eff-detail-body { flex: 1; overflow: auto; padding: 8px 0 20px; }
.member-digest { padding: 0 18px 12px; }
.member-digest-head { display: flex; align-items: center; gap: 12px; padding: 8px 0 14px; border-bottom: 1px solid #f0f2f5; }
.member-digest-head h3 { margin: 0; font-size: 16px; }
.member-digest-head p { margin: 2px 0 0; color: #8b98a8; font-size: 12px; }
.member-digest-head .org-perf-tag { margin-left: auto; flex-shrink: 0; }
.member-digest-avatar.org-avatar { width: 44px; height: 44px; font-size: 18px; flex-shrink: 0; }
.member-digest-kpi { margin: 14px 0 10px; }
.member-digest-kpi article { min-height: 72px; }
.member-digest-meta { margin: 0 0 12px; color: #607086; font-size: 12px; line-height: 1.55; }
.member-digest-block { padding: 12px 0; border-top: 1px solid #f0f2f5; }
.member-digest-block--muted .member-digest-note { color: #a8b4c2; }
.member-digest-block h4 { margin: 0 0 8px; font-size: 13px; color: #2f4057; }
.member-digest-block h4 small { margin-left: 6px; color: #8b98a8; font-weight: 500; }
.member-digest-routine-list { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 6px; }
.member-digest-routine-item { display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 8px; background: #f7f9fc; font-size: 12px; }
.member-digest-routine-item b { color: #2f4057; font-weight: 600; }
.member-digest-routine-item span { color: #8b98a8; flex-shrink: 0; }
.member-digest-routine-item--done { background: #f6ffed; }
.member-digest-routine-item--missed { background: #fff2f0; }
.member-digest-routine-item--exception { background: #fff7e6; }
.member-digest-actions { display: grid; gap: 8px; padding-top: 12px; border-top: 1px solid #f0f2f5; }
.member-digest-actions .primary-button,
.member-digest-actions .secondary-button { width: 100%; height: 36px; border-radius: 8px; font-size: 13px; font-weight: 600; }
.eff-table--full .eff-table-row { padding: 12px 18px; }
@media (max-width: 1200px) {
  .eff-row-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .eff-row-hero .eff-card-task-status { grid-column: 1 / -1; }
  .eff-row-bottom { grid-template-columns: minmax(0, 1fr); }
  .eff-col-stack { flex-direction: column; }
  .eff-presence-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .efficiency-view .eff-trend-chart.stats-trend-chart { max-height: 220px; }
}
@media (max-width: 900px) {
  .eff-row-hero { grid-template-columns: 1fr; }
  .eff-row-hero .eff-card-task-status { grid-column: auto; }
  .eff-member-table .eff-table-head, .eff-member-table .eff-table-row {
    grid-template-columns: 32px minmax(0, 1fr) 64px 48px 40px;
  }
  .eff-member-table .eff-table-head span:nth-child(n+6),
  .eff-member-table .eff-table-row span:nth-child(n+6) { display: none; }
}

.stats-metrics { margin-top: 1px; }
.stats-grid { display: grid; grid-template-columns: 1.8fr 1fr; gap: 10px; }
.bar-chart { display: flex; height: 280px; gap: 22px; align-items: end; justify-content: space-around; padding: 20px 30px 28px; border-top: 1px solid #f0f2f5; }
.bar-column { display: flex; flex: 1; max-width: 48px; height: 100%; flex-direction: column; justify-content: end; gap: 6px; text-align: center; }
.bar-column i { display: block; border-radius: 5px 5px 0 0; background: linear-gradient(#58aeff, #1677ff); }
.bar-column span { color: var(--muted); font-size: 11px; }
.project-hub-main .rank-row { padding: 13px 18px; border-top: 1px solid #f0f2f5; }
.project-hub-main .rank-row div { display: flex; justify-content: space-between; margin-bottom: 7px; font-size: 12px; }
.project-hub-layout { display: grid; grid-template-columns: 252px minmax(0, 1fr); gap: 14px; align-items: stretch; min-height: calc(100vh - 120px); }
.project-hub-aside { display: flex; flex-direction: column; padding: 0; overflow: hidden; max-height: calc(100vh - 120px); position: sticky; top: 12px; }
.project-hub-aside-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; padding: 16px 14px 12px; border-bottom: 1px solid var(--line); }
.project-hub-aside-head h3 { margin: 4px 0 0; font-size: 16px; }
.hub-btn-sm { height: 32px; padding: 0 12px; font-size: 12px; white-space: nowrap; }
.project-hub-list-scroll { flex: 1; overflow-y: auto; }
.project-hub-pick { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 7px; align-items: center; width: 100%; padding: 11px 12px; border: 0; border-bottom: 1px solid #f0f2f5; background: #fff; text-align: left; cursor: pointer; color: #4f6278; }
.project-hub-pick:hover { background: #f5f9ff; }
.project-hub-pick.active { color: #1677ff; background: #eef6ff; border-left: 3px solid #1677ff; padding-left: 9px; }
.project-hub-pick.active b { color: #1677ff; }
.project-hub-pick .hub-pick-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 10px; background: #f2f6fb; color: #2f4057; font-size: 15px; font-weight: var(--weight-display); }
.project-hub-pick.active .hub-pick-icon { background: #dcecff; color: #1677ff; }
.project-hub-pick .hub-pick-main { min-width: 0; }
.project-hub-pick b { display: block; font-size: 13px; color: inherit; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.project-hub-pick small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.project-hub-pick .hub-pick-badge { padding: 3px 8px; border-radius: 999px; background: #f2f6fb; color: #607086; font-size: 10px; font-weight: var(--weight-strong); white-space: nowrap; }
.project-hub-pick.active .hub-pick-badge { background: #dcecff; color: #1677ff; }
.project-hub-main { min-height: 640px; padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.project-hub-head { padding: 18px 22px 14px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, #fbfdff 0%, #fff 100%); }
.project-hub-hero-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.project-hub-title { display: flex; align-items: center; gap: 12px; min-width: 0; }
.project-hub-icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 12px; background: linear-gradient(145deg, #eef6ff, #dcecff); color: #1677ff; font-size: 22px; font-weight: var(--weight-display); flex-shrink: 0; }
.project-hub-title h2 { margin: 2px 0 0; font-size: 22px; line-height: 1.2; }
.project-hub-hero-actions { display: flex; flex-wrap: wrap; gap: 8px; flex-shrink: 0; }
.project-hub-hero-actions .secondary-button, .project-hub-hero-actions .text-button { height: 32px; padding: 0 12px; font-size: 12px; }
.project-hub-desc { margin: 10px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; max-width: 720px; }
.project-hub-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.hub-chip { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; background: #f2f6fb; color: #4f6278; font-size: 11px; font-weight: 600; }
.hub-chip.accent { background: #eef6ff; color: #1677ff; }
.project-hub-stat-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.project-hub-stat { padding: 10px 12px; border: 1px solid #e8eef5; border-radius: 10px; background: #fff; text-align: center; }
.project-hub-stat b { display: block; font-size: 20px; color: #2f4057; line-height: 1.1; }
.project-hub-stat span { display: block; margin-top: 4px; color: #7a8798; font-size: 11px; }
.project-hub-stat.warn b { color: #e98000; }
.project-hub-stat.danger b { color: #f14444; }
.project-hub-toolbar { padding: 0 22px; border-bottom: 1px solid var(--line); background: #fff; }
.project-hub-tabs { display: flex; gap: 2px; }
.project-hub-tabs button { height: 42px; padding: 0 16px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: #607086; font-size: 13px; font-weight: var(--weight-strong); cursor: pointer; margin-bottom: -1px; }
.project-hub-tabs button:hover { color: #2f4057; }
.project-hub-tabs button.active { color: #1677ff; border-bottom-color: #1677ff; }
.project-hub-body { flex: 1; padding: 18px 22px 22px; overflow-y: auto; background: #f8fafc; }
.project-hub-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 22px 16px; border-top: 1px solid var(--line); background: #fff; }
.hub-section { margin-bottom: 16px; }
.hub-section:last-child { margin-bottom: 0; }
.hub-section-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; }
.hub-section-head h3 { margin: 0; font-size: 14px; font-weight: var(--weight-display); color: #2f4057; }
.hub-section-head p { margin: 0; color: var(--muted); font-size: 12px; }
.hub-quick-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.hub-quick-card { display: flex; flex-direction: column; gap: 8px; padding: 14px; border: 1px solid #e8eef5; border-radius: 12px; background: #fff; }
.hub-quick-card h4 { margin: 0; font-size: 13px; color: #2f4057; }
.hub-quick-card p { margin: 0; flex: 1; color: var(--muted); font-size: 12px; line-height: 1.5; }
.hub-task-list { display: flex; flex-direction: column; gap: 0; border: 1px solid #e8eef5; border-radius: 12px; background: #fff; overflow: hidden; }
.hub-task-list article { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; border-top: 1px solid #f0f2f5; cursor: pointer; }
.hub-task-list article:first-child { border-top: 0; }
.hub-task-list article:hover { background: #f5f9ff; }
.hub-task-list article b { display: block; font-size: 13px; color: #2f4057; }
.hub-task-list article small { color: var(--muted); font-size: 11px; }
.hub-empty { padding: 28px 20px; border: 1px dashed #d8dee8; border-radius: 12px; background: #fff; text-align: center; }
.hub-empty h4 { margin: 0 0 8px; font-size: 15px; }
.hub-empty p { margin: 0 0 14px; color: var(--muted); font-size: 13px; line-height: 1.55; max-width: 480px; margin-left: auto; margin-right: auto; }
.hub-metric-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.version-timeline-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 14px; align-items: start; }
.version-timeline-main { min-width: 0; }
.version-timeline-detail { position: sticky; top: 12px; }
.version-timeline-toolbar { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.version-timeline-toolbar h3 { margin: 0 0 4px; font-size: var(--font-page-lg); }
.version-timeline-toolbar p { margin: 0; color: var(--muted); font-size: var(--font-page-sm); line-height: 1.5; }
.version-timeline-filters { display: flex; gap: 6px; flex-shrink: 0; }
.version-timeline-filters button { height: 30px; padding: 0 12px; border: 1px solid #dfe7f2; border-radius: 999px; background: #fff; color: #607086; font-size: var(--font-page-sm); font-weight: var(--weight-strong); cursor: pointer; }
.version-timeline-filters button.active { border-color: #b9d6ff; color: #1677ff; background: #eef6ff; }
.version-timeline { display: flex; flex-direction: column; gap: 0; margin-bottom: 14px; }
.version-timeline-entry { display: flex; align-items: stretch; gap: 0; margin-bottom: 10px; }
.version-timeline-entry .version-timeline-item {
  flex: 1;
  margin-bottom: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-right: 0;
}
.version-timeline-entry.is-selected .version-timeline-item,
.version-timeline-entry.is-selected .version-timeline-toggle {
  border-color: #1677ff;
  background: #eef6ff;
  box-shadow: 0 0 0 1px #dcecff;
}
.version-timeline-entry.is-selected .version-timeline-item { box-shadow: none; }
.version-timeline-entry.is-selected .version-timeline-toggle { box-shadow: none; border-left: 1px solid #c8ddff; }
.version-timeline-toggle {
  width: 42px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  border: 1px solid #e8eef5;
  border-radius: 0 12px 12px 0;
  background: #fff;
  color: #7a8798;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.version-timeline-toggle:hover { border-color: #b9d6ff; background: #f8fbff; color: #1677ff; }
.version-timeline-toggle.is-open { color: #1677ff; }
.version-timeline-chevron {
  width: 16px;
  height: 16px;
  transition: transform .2s ease;
}
.version-timeline-toggle.is-open .version-timeline-chevron { transform: rotate(180deg); }
.version-timeline-item { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; width: 100%; padding: 12px 14px 12px 8px; border: 1px solid #e8eef5; border-radius: 12px; background: #fff; text-align: left; cursor: pointer; margin-bottom: 10px; }
.version-timeline-item:hover { border-color: #b9d6ff; background: #f8fbff; }
.version-timeline-item.active { border-color: #1677ff; background: #eef6ff; box-shadow: 0 0 0 1px #dcecff; }
.version-timeline-item.active .timeline-head b,
.version-timeline-item.active .timeline-meta-primary b { color: #1677ff; }
.version-timeline-item.is-history { background: #fbfdff; }
.version-timeline-item.is-history .timeline-dot { background: #e8eef5; color: #7a8798; }
.timeline-rail { position: relative; display: flex; justify-content: center; min-height: 100%; }
.timeline-dot { position: relative; z-index: 1; display: grid; width: 12px; height: 12px; margin-top: 6px; border-radius: 50%; background: #1677ff; box-shadow: 0 0 0 4px #eef6ff; }
.version-timeline-item.is-history .timeline-dot { background: #9aa7b6; box-shadow: 0 0 0 4px #f2f6fb; }
.timeline-line { position: absolute; top: 18px; bottom: -22px; left: 50%; width: 2px; margin-left: -1px; background: #dfe7f2; }
.timeline-body { min-width: 0; }
.timeline-meta-grid {
  display: grid;
  grid-template-columns: minmax(150px, 1.15fr) repeat(5, minmax(0, 1fr));
  gap: 10px 18px;
  align-items: center;
}
.timeline-meta-primary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; min-width: 0; }
.timeline-meta-primary b { font-size: var(--font-page); color: #2f4057; }
.timeline-meta-cell { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.timeline-meta-label { color: #9aa7b6; font-size: 11px; font-weight: 600; line-height: 1.3; }
.timeline-meta-value { color: #4f6278; font-size: 12px; font-weight: var(--weight-strong); line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.timeline-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-bottom: 6px; }
.timeline-head b { font-size: var(--font-page); color: #2f4057; }
.timeline-head em { margin-left: auto; color: #7a8798; font-size: 11px; font-style: normal; font-weight: 600; }
.timeline-body p { margin: 0 0 4px; color: #4f6278; font-size: 13px; line-height: 1.45; }
.timeline-body small { color: var(--muted); font-size: var(--font-page-sm); line-height: 1.45; }
.timeline-note { display: block; margin-top: 8px; padding: 8px 10px; border-radius: 8px; background: #f5f8fc; color: #607086; font-size: 11px; line-height: 1.5; }
.version-new-form { margin-top: 4px; }
.hub-table-scroll { overflow-x: auto; border: 1px solid #e8eef5; border-radius: 10px; background: #fff; }
.hub-collapse { border: 1px solid #e8eef5; border-radius: 12px; background: #fff; overflow: hidden; }
.hub-collapse summary { padding: 12px 14px; font-size: 13px; font-weight: var(--weight-display); color: #2f4057; cursor: pointer; list-style: none; }
.hub-collapse summary::-webkit-details-marker { display: none; }
.hub-collapse[open] summary { border-bottom: 1px solid #f0f2f5; }
.hub-collapse .hub-collapse-body { padding: 14px; }
.hub-rules-layout { display: flex; flex-direction: column; gap: 14px; }
.hub-rule-card { padding: 16px 18px; border: 1px solid #e8eef5; border-radius: 12px; background: #fff; }
.hub-rule-card > h4 { margin: 0 0 6px; font-size: 14px; }
.hub-rule-card > p { margin: 0 0 12px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.hub-mode-picker { display: flex; flex-wrap: wrap; gap: 8px; }
.hub-mode-picker button { height: 34px; padding: 0 14px; border: 1px solid #dfe7f2; border-radius: 999px; background: #fff; color: #607086; font-size: 12px; font-weight: var(--weight-strong); cursor: pointer; }
.hub-mode-picker button.active { border-color: #b9d6ff; color: #1677ff; background: #eef6ff; }
.hub-mode-hint { margin: 10px 0 0; color: #9aa7b6; font-size: 11px; line-height: 1.5; }
@media (max-width: 1100px) {
  .project-hub-layout { grid-template-columns: 1fr; }
  .project-hub-aside { max-height: none; position: static; }
  .project-hub-list-scroll { max-height: 220px; }
  .project-hub-stat-row, .hub-quick-grid, .hub-metric-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .version-timeline-layout { grid-template-columns: 1fr; }
  .version-timeline-detail { position: static; }
  .settings-version-timeline .version-timeline-layout { grid-template-columns: 1fr; }
  .timeline-meta-grid,
  .settings-version-timeline-only .timeline-meta-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
  .timeline-meta-primary { grid-column: 1 / -1; }
}
.routine-drawer-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.routine-drawer-filters label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.routine-drawer-filters select { min-width: 160px; height: 34px; padding: 0 10px; border: 1px solid #dfe7f2; border-radius: 8px; }
.profile-debug-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.project-rules-section .management-grid { margin-top: 4px; }
.hub-rule-card .routine-template-list { display: flex; flex-direction: column; gap: 10px; }
.hub-rule-card .routine-template-card { padding: 12px; border: 1px solid #edf2f8; border-radius: 10px; background: #fbfdff; }
.hub-rule-card .routine-template-card h4 { margin: 0 0 8px; font-size: 13px; }
.version-section-title { margin: 16px 0 8px; font-size: 13px; font-weight: var(--weight-display); color: #4f6278; letter-spacing: .3px; }
.version-section-title:first-child { margin-top: 0; }
.version-history-table tbody tr { opacity: .92; }
.org-layout .org-profile-panel { display: flex; flex-direction: column; }
.org-layout .org-profile-card { flex: 1; min-height: 0; overflow-y: auto; }
.department-panel .panel-header { display: none; }
.member-panel .panel-header { display: none; }
.member-assign-intro p { line-height: 1.55; }
.member-assign-profile { margin-bottom: 14px; }
.member-assign-org { display: grid; gap: 12px; margin-bottom: 16px; }
.member-assign-org-label { font-size: 12px; color: #607086; font-weight: var(--weight-strong); }
.member-dept-field { display: grid; gap: 10px; padding: 12px 14px; border: 1px solid #e8eef5; border-radius: 10px; background: #fafcff; }
.member-dept-field-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.member-dept-summary { display: flex; flex-wrap: wrap; gap: 8px; min-height: 28px; align-items: center; }
.member-dept-chip { display: inline-flex; align-items: center; gap: 4px; padding: 5px 10px; border-radius: 6px; background: #eef2f7; font-size: 12px; color: #4a6278; }
.member-dept-chip.is-primary { background: #eef6ff; color: #1677ff; border: 1px solid #b9d6ff; }
.member-dept-chip.is-primary i { font-style: normal; font-size: 10px; padding: 1px 5px; border-radius: 4px; background: #1677ff; color: #fff; font-weight: var(--weight-strong); }
.member-dept-chip.is-empty { color: #a8b4c2; background: #f5f7fa; }
.member-dept-lead-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding-top: 8px; border-top: 1px dashed #e4ebf3; }
.member-dept-lead-label { font-size: 12px; color: #607086; font-weight: 600; }
.member-dept-lead-opt { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #2f4057; cursor: pointer; }
.member-dept-lead-hint { flex: 1 1 100%; margin: 0; font-size: 11px; color: #8b98a8; }
.member-dept-picker-backdrop {
  position: fixed; inset: 0; z-index: 67; display: none; background: transparent; cursor: default;
}
.member-dept-picker-backdrop:not([hidden]) { display: block; }
body.member-dept-picker-open .overlay.show { pointer-events: none; }
.member-dept-picker-modal {
  position: fixed; top: 50%; left: 50%; z-index: 68; display: none; width: min(820px, 94vw);
  max-height: min(88vh, 720px); transform: translate(-50%, -50%); border-radius: 12px; background: #fff;
  box-shadow: 0 24px 64px rgba(4, 29, 58, .24); overflow: hidden;
}
.modal.member-dept-picker-modal.show { display: flex; flex-direction: column; z-index: 68; }
body.member-dept-picker-open #memberDeptPickerModal.show { z-index: 68; }
.member-dept-picker-modal[hidden] { display: none !important; }
.member-dept-picker-head { display: flex; flex-shrink: 0; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid #eef2f6; }
.member-dept-picker-head h2 { margin: 0; font-size: 16px; color: #102033; }
.member-dept-picker-body {
  display: grid; grid-template-columns: 1fr 280px; grid-template-rows: minmax(0, 1fr); gap: 0;
  flex: 1 1 auto; min-height: 280px; overflow: hidden;
}
.member-dept-picker-left { display: flex; flex-direction: column; min-height: 0; overflow: hidden; border-right: 1px solid #eef2f6; }
.member-dept-picker-search-wrap { flex-shrink: 0; padding: 12px 14px; border-bottom: 1px solid #f0f2f5; }
.member-dept-picker-search { width: 100%; height: 36px; padding: 0 12px; border: 1px solid #dfe7f2; border-radius: 8px; font-size: 13px; }
.member-dept-picker-tree { flex: 1; min-height: 0; overflow-y: auto; padding: 8px 6px; }
.member-dept-picker-right { display: flex; flex-direction: column; min-height: 0; overflow: hidden; padding: 14px 16px; background: #fafbfc; }
.member-dept-picker-right h3 { flex-shrink: 0; margin: 0 0 10px; font-size: 13px; color: #607086; font-weight: 600; }
.member-dept-picker-selected { flex: 1; min-height: 0; overflow-y: auto; display: grid; gap: 8px; align-content: start; }
.member-dept-picker-hint { flex-shrink: 0; margin: 10px 0 0; font-size: 11px; color: #a8b4c2; line-height: 1.45; }
.member-dept-picker-footer { display: flex; flex-shrink: 0; justify-content: flex-end; gap: 10px; padding: 12px 20px; border-top: 1px solid #eef2f6; }
.mdp-tree-node {
  display: flex; align-items: center; gap: 6px; min-height: 34px; padding: 2px 8px 2px calc(8px + var(--mdp-depth, 0) * 18px);
  border-radius: 6px; cursor: pointer; user-select: none;
}
.mdp-tree-node:hover { background: #f5f9ff; }
.mdp-tree-node.is-checked { background: #eef6ff; }
.mdp-tree-node.is-root { cursor: default; font-weight: var(--weight-strong); color: #2f4057; }
.mdp-tree-node.is-root-selectable { cursor: pointer; }
.mdp-tree-node.is-root-selectable .mdp-tree-label small { margin-left: 6px; font-size: 11px; font-weight: normal; color: #8b98a8; }
.mdp-tree-node:not(.is-root) { cursor: pointer; }
.mdp-tree-node.is-footer { margin-top: 6px; padding-top: 8px; border-top: 1px dashed #e8eef5; }
.mdp-tree-caret { flex-shrink: 0; width: 18px; height: 22px; border: 0; background: transparent; cursor: pointer; position: relative; }
.mdp-tree-caret.is-spacer { visibility: hidden; pointer-events: none; }
.mdp-tree-caret::before {
  content: ""; position: absolute; left: 5px; top: 50%; width: 5px; height: 5px; margin-top: -4px;
  border-right: 1.5px solid #9aa8b8; border-bottom: 1.5px solid #9aa8b8; transform: rotate(-45deg); transition: transform .12s;
}
.mdp-tree-node.is-expanded > .mdp-tree-caret::before { transform: rotate(45deg); margin-top: -6px; }
.mdp-tree-node input[type="checkbox"] { width: 15px; height: 15px; margin: 0; accent-color: #1677ff; flex-shrink: 0; }
.mdp-tree-folder { flex-shrink: 0; width: 16px; height: 16px; background: center/16px no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='1.75'%3E%3Cpath d='M3 7h6l2 3h10v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z'/%3E%3C/svg%3E");
}
.mdp-tree-folder.is-group {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='1.75'%3E%3Cpath d='M3 21h18M6 21V7l6-4 6 4v14M10 11h4'/%3E%3C/svg%3E");
}
.mdp-tree-label { flex: 1; min-width: 0; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mdp-tree-label--root {
  border: 0; padding: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer;
}
.mdp-tree-label--root:disabled { cursor: default; opacity: 1; }
.mdp-tree-node.is-root.has-children .mdp-tree-label--root:hover { color: #1677ff; }
.mdp-tree-empty, .mdp-selected-empty { margin: 12px; font-size: 12px; color: #a8b4c2; }
.mdp-selected-item { display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; border: 1px solid #e8eef5; border-radius: 8px; background: #fff; }
.mdp-selected-actions { display: flex; flex-shrink: 0; flex-wrap: wrap; gap: 4px; }
.mdp-selected-primary { flex-shrink: 0; padding: 2px 8px; border: 1px solid #dfe7f2; border-radius: 4px; background: #f5f7fa; font-size: 11px; color: #6d8096; cursor: pointer; }
.mdp-selected-primary.is-primary { border-color: #1677ff; background: #1677ff; color: #fff; }
.mdp-selected-lead { flex-shrink: 0; padding: 2px 8px; border: 1px solid #ffd591; border-radius: 4px; background: #fff7e6; font-size: 11px; color: #ad6800; cursor: pointer; }
.mdp-selected-lead.is-lead { border-color: #fa8c16; background: #fa8c16; color: #fff; }
.mdp-selected-name { flex: 1; min-width: 0; font-size: 13px; color: #2f4057; display: grid; gap: 2px; }
.mdp-selected-lead-hint { display: block; font-size: 11px; color: #a8b4c2; font-weight: 400; }
.mdp-selected-remove { width: 22px; height: 22px; border: 0; border-radius: 4px; }
.member-assign-org label { display: flex; flex-direction: column; gap: 6px; }
.member-assign-org label span { font-size: 12px; color: #607086; font-weight: 600; }
.member-assign-org select, .member-assign-org input { height: 38px; padding: 0 10px; border: 1px solid #dfe7f2; border-radius: 8px; }
@media (max-width: 720px) {
  .member-dept-picker-body { grid-template-columns: 1fr; grid-template-rows: minmax(0, 240px) minmax(0, 1fr); }
  .member-dept-picker-left { border-right: 0; border-bottom: 1px solid #eef2f6; }
}
.member-assign-roster h5 { margin: 0 0 6px; font-size: 14px; }

.member-edit-form {
  display: block;
  width: 100%;
  box-sizing: border-box;
}
.management-modal--member-edit .member-edit-form { min-width: 0; }
.mef-section { padding: 0; }
.mef-section--profile { padding: 22px 28px 20px; }
.mef-section--org { padding: 18px 28px 16px; }
.mef-section--roster { padding: 0 0 8px; }
.mef-section--account { padding: 18px 28px 22px; }
.mef-section-title {
  padding: 16px 28px 12px;
  font-size: 14px;
  font-weight: 600;
  color: #17263a;
}
.mef-divider { height: 1px; margin: 0; background: #eef2f6; }
.mef-head-layout {
  display: grid;
  grid-template-columns: minmax(120px, 148px) minmax(0, 1fr);
  gap: 28px 32px;
  align-items: start;
  width: 100%;
}
.mef-avatar-col { display: flex; flex-direction: column; align-items: center; gap: 14px; width: 100%; }
.mef-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  width: 100%;
  border: 1px solid #eef2f6;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
.mef-field, .mef-row {
  display: grid;
  grid-template-columns: minmax(96px, 108px) minmax(0, 1fr);
  gap: 12px 16px;
  align-items: center;
  min-height: 52px;
  padding: 12px 16px;
  border-bottom: 1px solid #f3f5f8;
}
.mef-fields-grid .mef-field:nth-child(odd) { border-right: 1px solid #f3f5f8; }
.mef-fields-grid .mef-field:nth-last-child(-n+2) { border-bottom: 0; }
.mef-field--span2 { grid-column: 1 / -1; border-right: 0 !important; }
.mef-field--span2 .mef-control { display: flex; justify-content: flex-start; }
.mef-row--wide .mef-control { grid-column: 2; }
.mef-label {
  font-size: 13px;
  color: #3d4f63;
  text-align: right;
  line-height: 1.4;
}
.mef-req { margin-left: 2px; color: #f14444; font-style: normal; font-weight: 600; }
.mef-control { min-width: 0; width: 100%; }
.mef-control .mef-input,
.mef-control select { width: 100%; max-width: none; }
.mef-input {
  width: 100%;
  height: 38px;
  padding: 0 12px;
  border: 1px solid #dfe3e8;
  border-radius: 4px;
  font-size: 13px;
  color: #17263a;
  background: #fff;
  transition: border-color .15s, box-shadow .15s;
}
.mef-input:focus { outline: none; border-color: #1677ff; box-shadow: 0 0 0 2px rgba(22, 119, 255, .12); }
.mef-input:read-only { color: #6d7b8e; background: #f7f9fc; }
.mef-avatar {
  display: grid;
  place-items: center;
  width: 88px;
  height: 88px;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(145deg, #83c1eb, #17578c);
  font-size: 32px;
  font-weight: var(--weight-strong);
}
.mef-avatar-upload {
  width: 100%;
  height: 32px;
  padding: 0 10px;
  border: 1px solid #dfe3e8;
  border-radius: 4px;
  color: #6d7b8e;
  background: #fff;
  font-size: 12px;
  cursor: not-allowed;
}
.mef-section--org .member-dept-field {
  width: 100%;
  padding: 14px 16px;
  box-sizing: border-box;
}
.mef-section--org .member-dept-field .mef-fields-grid { margin-top: 0; width: 100%; }
.mef-dept-inline {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  width: 100%;
  border: 1px solid #e4ebf3;
  border-radius: 8px;
  padding: 8px 10px;
  color: inherit;
  background: #fff;
  text-align: left;
  cursor: pointer;
}
.mef-dept-inline:hover { border-color: #b9d6ff; background: #f8fbff; }
.mef-dept-picker-trigger { font: inherit; }
.mef-dept-edit-hint {
  margin-left: auto;
  color: #1677ff;
  font-size: 13px;
  font-weight: 500;
}
.mef-dept-folder-ic {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  background: center/18px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='1.75'%3E%3Cpath d='M3 7h6l2 3h10v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z'/%3E%3C/svg%3E");
}
.mef-dept-text { font-size: 13px; font-weight: 600; color: #17263a; }
.mef-dept-extra { font-size: 12px; color: #8b98a8; }
.mef-link {
  border: 0;
  padding: 0;
  color: #1677ff;
  background: transparent;
  font-size: 13px;
  cursor: pointer;
}
.mef-link:hover { text-decoration: underline; }
.mef-radio-group { display: flex; align-items: center; gap: 20px; }
.mef-radio { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #17263a; cursor: pointer; }
.mef-radio input { margin: 0; accent-color: #1677ff; }
.mef-check { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: #17263a; cursor: pointer; }
.mef-check input { margin: 0; accent-color: #1677ff; }
.mef-btn-outline {
  height: 32px;
  padding: 0 14px;
  border: 1px solid #dfe3e8;
  border-radius: 4px;
  color: #17263a;
  background: #fff;
  font-size: 13px;
  cursor: pointer;
}
.mef-btn-outline:hover { border-color: #b9d6ff; color: #1677ff; }
.mef-roster-table { width: 100%; border-collapse: collapse; }
.mef-roster-table thead th {
  padding: 8px 24px;
  border-bottom: 1px solid #eef2f6;
  color: #8b98a8;
  font-size: 12px;
  font-weight: 500;
  text-align: left;
}
.mef-roster-table thead th:first-child { width: 44px; }
.mef-roster-row td { padding: 12px 24px; border-bottom: 1px solid #f5f7fa; vertical-align: middle; }
.mef-roster-row:hover { background: #fafbfd; }
.mef-roster-row.is-on { background: #f5f9ff; }
.mef-roster-row.is-on .mef-roster-name b { color: #1677ff; }
.mef-roster-check input { width: 16px; height: 16px; accent-color: #1677ff; cursor: pointer; }
.mef-roster-name b { font-size: 13px; font-weight: 600; color: #2f4057; }
.mef-roster-dept { font-size: 13px; color: #6d7b8e; }
.mef-roster-empty { padding: 20px 24px; color: #8b98a8; font-size: 13px; text-align: center; }
.mef-roster-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
  padding: 4px 28px 18px;
  width: 100%;
  box-sizing: border-box;
}
.mef-roster-card {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 12px 16px;
  border: 1px solid #e8eef5;
  border-radius: 8px;
  background: #fbfdff;
  cursor: pointer;
  user-select: none;
  transition: border-color .15s, background .15s;
}
.mef-roster-card:hover { border-color: #c5ddff; background: #f8fbff; }
.mef-roster-card.is-on { border-color: #b8d4ff; background: #f0f6ff; }
.mef-roster-card input { width: 16px; height: 16px; margin: 0; accent-color: #1677ff; }
.mef-roster-card-main { display: grid; gap: 2px; min-width: 0; }
.mef-roster-card-main b { font-size: 13px; color: #2f4057; }
.mef-roster-card.is-on .mef-roster-card-main b { color: #1677ff; }
.mef-roster-card-main small { font-size: 11px; color: #8b98a8; }
.mef-roster-hint { margin: 0 0 10px; font-size: 12px; color: #8b98a8; line-height: 1.5; }
.member-edit-form--bulk .mef-section:last-of-type + .mef-divider { display: none; }
@media (max-width: 720px) {
  .mef-head-layout { grid-template-columns: 1fr; }
  .mef-avatar-col { flex-direction: row; justify-content: flex-start; }
  .mef-fields-grid, .mef-roster-grid { grid-template-columns: 1fr; }
  .mef-fields-grid .mef-field:nth-child(odd) { border-right: 0; }
  .mef-field, .mef-row { grid-template-columns: 1fr; gap: 6px; min-height: 0; }
  .mef-label { text-align: left; }
}
.roster-row.is-disabled { opacity: .55; }
.department-item { display: flex; align-items: stretch; gap: 4px; border-top: 1px solid #f0f2f5; transition: background .15s; }
.department-item.is-unassigned .department-meta small { color: #b8860b; }
.department-item.active { background: linear-gradient(90deg, #f3f8ff 0%, #fff 100%); }
.department-item.active .department { color: var(--blue); }
.department-item.active .department-avatar { background: #1677ff; color: #fff; }
.department { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; padding: 12px 8px 12px 14px; border: 0; color: #637083; background: transparent; text-align: left; cursor: pointer; }
.department:hover { color: var(--blue); }
.department-avatar { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 10px; background: #eef2f7; color: #4f6278; font-size: 14px; font-weight: var(--weight-display); flex-shrink: 0; }
.department-meta { flex: 1; min-width: 0; }
.department-meta b { display: block; color: var(--text); font-size: 13px; }
.department-meta small { display: block; color: var(--muted); font-size: 11px; margin-top: 2px; }
.department-count { flex-shrink: 0; padding: 3px 8px; border-radius: 999px; background: #f2f6fb; color: #6d8096; font-size: 11px; font-weight: var(--weight-strong); font-style: normal; }
.department-item.active .department-count { background: #dcecff; color: #1677ff; }
.org-config-fab { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin: 0; padding: 0; border: 1px solid #e4ebf3; border-radius: 10px; background: #fff; color: #7a8ea6; cursor: pointer; transition: border-color .15s, color .15s, background .15s; }
.org-config-fab:hover { border-color: #b9d6ff; color: #1677ff; background: #eef6ff; }
.org-svg-icon { width: 16px; height: 16px; display: block; }
.org-member-wrap { border-top: 1px solid #f0f2f5; }
.org-member-head {
  display: grid;
  grid-template-columns: minmax(200px, 1.05fr) minmax(280px, 1.35fr) auto auto;
  gap: 12px 16px;
  align-items: center;
  padding: 14px 8px 14px 16px;
}
.org-member-identity { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.org-member-identity .member-profile { align-items: center; }
.org-member-performance { min-width: 0; }
.org-member-stats-edge { display: flex; align-items: center; justify-content: flex-end; flex-shrink: 0; }
.org-dept-tag { display: inline-block; margin-left: 4px; padding: 1px 6px; border-radius: 999px; background: #f0f6fc; color: #6d8096; font-size: 10px; font-weight: 600; }
.org-member-metrics { display: grid; gap: 6px; min-width: 0; }
.org-metric-index { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.org-metric-index span { font-size: 11px; color: #8b98a8; font-weight: 600; }
.org-metric-index b { font-size: 22px; line-height: 1; color: #1677ff; }
.org-metric-index em { font-style: normal; font-size: 11px; font-weight: var(--weight-strong); }
.org-metric-index--high b { color: #20b56b; }
.org-metric-index--high em { color: #1a8f55; }
.org-metric-index--low b, .org-metric-index--low em { color: #f14444; }
.org-metric-index--warn b, .org-metric-index--warn em { color: #d48806; }
.org-metric-index--rest b, .org-metric-index--rest em { color: #722ed1; }
.org-metric-pills { display: flex; flex-wrap: wrap; gap: 6px 10px; font-size: 11px; color: #8b98a8; }
.org-metric-pills b { color: #2f4057; font-size: 12px; }
.org-metric-pills .is-warn b { color: #f14444; }
.org-metric-bar { height: 4px; border-radius: 999px; background: #eef2f6; overflow: hidden; }
.org-metric-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1677ff, #5eb3ff); }
.org-member-mobile { color: #7a8798; font-size: 12px; }
.org-task-toggle { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px; border: 1px solid #dfe7f2; border-radius: 8px; background: #fff; color: #4f6278; font-size: 12px; cursor: pointer; transition: border-color .15s, background .15s; }
.org-task-toggle:hover, .org-member-wrap.is-tasks-open .org-task-toggle { border-color: #b9d6ff; background: #eef6ff; color: #1677ff; }
.org-task-toggle-label { color: #8b98a8; font-weight: 600; }
.org-task-toggle b { font-size: 14px; color: inherit; }
.org-chevron { width: 14px; height: 14px; transition: transform .2s; }
.org-member-wrap.is-tasks-open .org-chevron { transform: rotate(180deg); }
.org-late-pill { color: #9aa8b8; font-size: 12px; }
.org-late-pill b { font-weight: var(--weight-strong); }
.org-late-pill.has-late b { color: #f14444; }
.member-row-actions { display: flex; gap: 6px; padding-right: 12px; flex-shrink: 0; opacity: 0; pointer-events: none; transition: opacity .15s; }
.org-member-wrap:hover .member-row-actions, .org-member-wrap:focus-within .member-row-actions { opacity: 1; pointer-events: auto; }
.org-icon-action { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; border: 1px solid #dfe7f2; border-radius: 10px; background: #fff; color: #607086; cursor: pointer; transition: border-color .15s, color .15s, background .15s; }
.org-icon-action:hover, .org-icon-action--more:hover { border-color: #b9d6ff; color: #1677ff; background: #eef6ff; }
.org-member-expand { padding: 0 16px 12px 16px; animation: orgExpandIn .2s ease; }
@keyframes orgExpandIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.org-task-list-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; color: #8b98a8; font-size: 11px; font-weight: 600; }
.org-task-late { color: #f14444; }
.org-task-list { display: grid; gap: 6px; padding: 10px; border: 1px dashed #d6e5f8; border-radius: 10px; background: #f8fbff; }
.org-task-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 8px; background: #fff; border: 1px solid #e8eef5; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.org-task-item { border-left: 3px solid transparent; }
.org-task-item:hover { border-color: #b9d6ff; box-shadow: 0 2px 8px rgba(22,119,255,.08); }
.org-task-item.is-active { border-left-color: #1677ff; border-color: #b9d6ff; box-shadow: 0 2px 8px rgba(22,119,255,.08); }
.org-task-item-main b { display: block; font-size: 13px; color: #2f4057; }
.org-task-item-main small { display: block; margin-top: 3px; color: #8b98a8; font-size: 11px; }
.org-task-empty { margin: 0; padding: 12px 14px; border-radius: 8px; background: #f8fbff; color: #8b98a8; font-size: 12px; }
.dept-project-grid { display: grid; gap: 8px; }
.dept-project-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid #edf2f8; border-radius: 8px; background: #fbfdff; cursor: pointer; }
.dept-project-row b { display: block; font-size: 13px; }
.dept-project-row small { display: block; margin-top: 2px; color: #9aa8b8; font-size: 11px; }
.dept-project-row input { width: 16px; height: 16px; accent-color: #1677ff; }
.roster-add-panel { margin-top: 14px; padding: 14px; border: 1px dashed #d6e5f8; border-radius: 10px; background: #f8fbff; }
.roster-add-panel h5 { margin: 0 0 10px; font-size: 13px; color: #4f6278; }
.roster-add-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.roster-add-form select { min-width: 140px; height: 34px; padding: 0 10px; border: 1px solid #dfe7f2; border-radius: 8px; }
.roster-add-hint { margin: 12px 0 0; color: #8b98a8; font-size: 12px; }
.member-row-main { display: grid; grid-template-columns: 1.2fr 1fr 1fr 90px 90px; gap: 10px; align-items: center; width: 100%; padding: 13px 8px 13px 18px; border: 0; background: transparent; text-align: left; color: inherit; font: inherit; }
.member-row { display: grid; grid-template-columns: 1.2fr 1fr 1fr 90px 90px; gap: 10px; align-items: center; padding: 13px 18px; border-top: 1px solid #f0f2f5; font-size: 12px; }
.member-profile { display: flex; gap: 9px; align-items: center; }.member-profile small { display: block; color: var(--muted); }
.settings-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 14px; align-items: start; }
.settings-layout-full { grid-template-columns: minmax(0, 1fr); }
#settingsView .settings-layout { --settings-accent: #6b4ce6; }
#settingsView .settings-layout.settings-layout-full {
  flex: 1;
  min-height: 0;
  align-self: stretch;
}
#settingsView .settings-main {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: calc(100vh - 140px);
  align-self: stretch;
  overflow: hidden;
  margin-bottom: 0;
  border: 1px solid var(--line);
  border-left: none;
  border-radius: 10px;
  box-shadow: none;
  background: #fff;
}
.settings-main-head-copy.has-inline-desc .settings-main-desc { display: none; }
.settings-title-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 16px; }
.settings-title-row h2 { margin: 4px 0 0; }
.settings-title-desc { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; font-weight: 400; max-width: 720px; }
.settings-versions-page { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.settings-versions-main { min-width: 0; }

/* 版本管理：仅拉高主卡片，不改动列表区域宽度与内边距 */
#versionsView.view.active { padding-bottom: 18px; }
#versionsView .settings-layout.settings-layout-full { flex: 1; min-height: 0; align-self: stretch; }
#versionsView .settings-main.panel {
  display: flex; flex-direction: column; flex: 1; min-height: calc(100vh - 140px); margin-bottom: 0;
}
#versionsView .settings-main-body {
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* 绩效 KPI 专页（布局对齐版本管理） */
#kpiView.view.active { padding-bottom: 18px; }
#kpiView .settings-layout.settings-layout-full { flex: 1; min-height: 0; align-self: stretch; }
#kpiView .settings-main.panel {
  display: flex; flex-direction: column; flex: 1; min-height: calc(100vh - 140px); margin-bottom: 0;
}
#kpiView .settings-main-body {
  flex: 1; min-height: 0; overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch;
}
.settings-kpi-page { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.kpi-hub-tab-bar {
  display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 2px 0;
}
.kpi-hub-tab {
  border: 1px solid #e6edf5; background: #fff; color: #5a6b7f; border-radius: 999px;
  padding: 8px 16px; font-size: 13px; cursor: pointer; transition: background .15s, color .15s, border-color .15s;
}
.kpi-hub-tab:hover { background: #f5f9ff; color: #2f4057; }
.kpi-hub-tab.active { background: #1677ff; border-color: #1677ff; color: #fff; }
.kpi-hub-main { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.kpi-scope-intro { margin: 0; }
.kpi-scope-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px; justify-content: flex-end;
}
.kpi-scope-tenant-card {
  border: 1px solid #e6edf5; border-radius: 14px; background: #fff; padding: 14px 16px;
  box-shadow: 0 8px 24px rgba(16, 38, 72, 0.04);
}
.kpi-scope-tenant-head {
  display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 8px;
}
.kpi-scope-tenant-head h4 { margin: 0; font-size: 15px; }
.kpi-scope-tenant-head small { color: var(--muted); }
.kpi-scope-tenant-toggle { display: flex; flex-direction: column; gap: 4px; min-width: 220px; }
.kpi-scope-tenant-toggle select { min-width: 220px; }
.kpi-scope-tenant-meta { margin: 0 0 12px; color: #5a6b7f; font-size: 13px; }
.kpi-scope-project-table { width: 100%; }
.kpi-scope-project-table th, .kpi-scope-project-table td { padding: 10px 8px; vertical-align: middle; }
.kpi-scope-include-select { min-width: 120px; }
.versions-scope-bar {
  padding: 10px 12px;
  border: 1px solid #e6edf5;
  border-radius: 14px;
  background: linear-gradient(180deg, #fbfdff 0%, #f6f9fc 100%);
  box-shadow: 0 10px 28px rgba(16, 38, 72, 0.04);
}
.versions-scope-track {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.versions-scope-sep {
  width: 1px;
  height: 22px;
  margin: 0 4px;
  background: #dce4ee;
  flex-shrink: 0;
}
.versions-scope-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 6px 12px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: #5a6d85;
  font-size: var(--font-page-sm);
  font-weight: var(--weight-strong);
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s, box-shadow .15s;
}
.versions-scope-btn:hover { background: rgba(255, 255, 255, 0.72); color: #2f4057; }
.versions-scope-btn.active {
  border-color: #c5ddff;
  color: #1677ff;
  background: #fff;
  box-shadow: 0 2px 10px rgba(22, 119, 255, 0.1);
}
.versions-scope-btn em {
  font-style: normal;
  font-size: 10px;
  font-weight: 600;
  color: #9aa7b6;
}
.versions-scope-btn.active em { color: #6b9fd9; }
.versions-scope-btn-label { line-height: 1.2; }
.versions-scope-logo { width: 22px; height: 22px; border-radius: 6px; flex-shrink: 0; }
.approval-workflow-page { display: flex; flex-direction: column; gap: 14px; }
.settings-panel-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 280px;
  color: var(--muted, #64748b);
  font-size: 14px;
}
.approval-workflow-skeleton {
  min-height: min(520px, calc(100vh - 220px));
  padding: 2px 0;
}
.approval-workflow-skeleton-layout {
  display: grid;
  grid-template-columns: minmax(200px, 260px) minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
}
.approval-workflow-skeleton .skeleton-aside {
  min-height: 360px;
  background: linear-gradient(90deg, #f3f4f6 0%, #eceff3 50%, #f3f4f6 100%);
  background-size: 200% 100%;
  animation: approval-skeleton-shimmer 1.2s ease-in-out infinite;
}
.approval-workflow-skeleton .skeleton-main {
  min-height: 360px;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.approval-workflow-skeleton .skeleton-line,
.approval-workflow-skeleton .skeleton-tabs,
.approval-workflow-skeleton .skeleton-block {
  border-radius: 8px;
  background: linear-gradient(90deg, #f3f4f6 0%, #eceff3 50%, #f3f4f6 100%);
  background-size: 200% 100%;
  animation: approval-skeleton-shimmer 1.2s ease-in-out infinite;
}
.approval-workflow-skeleton .skeleton-line { height: 14px; }
.approval-workflow-skeleton .skeleton-line.w55 { width: 55%; }
.approval-workflow-skeleton .skeleton-line.w35 { width: 35%; }
.approval-workflow-skeleton .skeleton-tabs { height: 34px; width: min(420px, 100%); }
.approval-workflow-skeleton .skeleton-block { height: 72px; }
.approval-workflow-skeleton .skeleton-block.short { height: 48px; width: 78%; }
@keyframes approval-skeleton-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}
#settingsPanelBody.approval-workflow-panel-refreshing .approval-workflow-page {
  opacity: 0.72;
  pointer-events: none;
}
@media (max-width: 960px) {
  .approval-workflow-skeleton-layout { grid-template-columns: 1fr; }
}
.settings-panel-loading-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #1677ff;
  animation: settings-panel-loading-pulse 0.9s ease-in-out infinite;
}
@keyframes settings-panel-loading-pulse {
  0%, 100% { opacity: 0.35; transform: scale(0.85); }
  50% { opacity: 1; transform: scale(1); }
}
.approval-workflow-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 16px;
  padding: 14px 16px;
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: #fff;
}
.approval-workflow-head h4 { margin: 0 0 6px; font-size: 15px; color: #2f4057; }
.approval-workflow-head p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; max-width: 720px; }
.approval-workflow-layout { display: flex; flex-direction: column; gap: 14px; }
.approval-mode-note {
  margin: 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fffaf3;
  border: 1px solid #ffe8c8;
  color: #9a6b2e;
  font-size: 12px;
  line-height: 1.5;
}
.approval-template-card > p,
.approval-roles-card > p { margin: 0 0 12px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.approval-template-select { display: flex; flex-direction: column; gap: 6px; max-width: 360px; }
.approval-template-select span { color: #607086; font-size: 12px; font-weight: 600; }
.approval-template-select select { width: 100%; }
.approval-roles-grid { gap: 12px 16px; }
.approval-scenario-list > h4 { margin: 0 0 10px; font-size: 14px; color: #2f4057; }
.approval-scenario-list > h4 small { color: var(--muted); font-weight: 600; font-size: 12px; }
.approval-scenario-card {
  padding: 14px 16px;
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: #fff;
  margin-bottom: 10px;
}
.approval-scenario-head {
  margin-bottom: 8px;
}
.approval-scenario-head-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  min-width: 0;
}
.approval-scenario-enable {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  cursor: pointer;
}
.approval-scenario-enable b {
  font-size: 15px;
  color: #2f4057;
  white-space: nowrap;
  line-height: 1.3;
}
.approval-scenario-applicant {
  color: #9aa7b6;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
.approval-scenario-hint { margin: 0 0 12px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.approval-scenario-settings {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  gap: 10px 14px;
  margin-bottom: 12px;
}
.approval-scenario-settings label { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.approval-scenario-settings label span { color: #607086; font-size: 11px; font-weight: 600; }
.approval-scenario-settings select,
.approval-scenario-settings input[type="number"] { width: 100%; }
.approval-node-section { margin-bottom: 10px; }
.approval-node-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.approval-node-section-head > span {
  color: #607086;
  font-size: 12px;
  font-weight: 600;
}
.approval-node-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.approval-node-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 220px;
  flex: 1 1 220px;
  max-width: 100%;
  padding: 8px 10px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #f8fbff;
}
.approval-node-index {
  flex-shrink: 0;
  color: #607086;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
.approval-node-item select {
  flex: 1 1 auto;
  min-width: 0;
}
.approval-node-remove {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 1px solid #e3eaf2;
  border-radius: 6px;
  color: #8a98a8;
  background: #fff;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}
.approval-node-remove:hover {
  color: #ff4d4f;
  border-color: #ffccc7;
  background: #fff2f0;
}
.approval-scenario-preview { display: block; margin-top: 10px; color: #6b7f95; font-size: 11px; line-height: 1.45; }
.approval-scope-bar { margin-bottom: 0; }
.approval-trail-card {
  margin: 12px 0 0;
  padding: 12px 14px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #f8fbff;
}
.approval-trail-card h4 { margin: 0 0 8px; font-size: 13px; color: #2f4057; }
.approval-route-line { margin: 0 0 6px; font-size: 12px; color: #4f6278; line-height: 1.5; word-break: break-word; }
.approval-trail-list { margin: 8px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; }
.approval-trail-list li { display: grid; grid-template-columns: auto 1fr; gap: 4px 10px; font-size: 11px; color: #607086; }
.approval-trail-list li time { color: #9aa7b6; white-space: nowrap; }
.approval-trail-list li b { color: #2f4057; }
.approval-trail-list li span { grid-column: 2; }
.approval-trail-list li em { grid-column: 2; color: #9a6b2e; font-style: normal; }

/* ── 审批侧滑抽屉 ── */
#approvalDrawer.drawer {
  display: flex;
  flex-direction: column;
  --ad-primary: #1677ff;
  --ad-danger: #ff4d4f;
  --ad-border: #eef2f6;
  --ad-muted: rgba(0, 0, 0, .45);
  --ad-text: rgba(0, 0, 0, .88);
  --ad-header-h: 56px;
  --ad-footer-h: 56px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
}
#approvalDrawer.show { box-shadow: -12px 0 36px rgba(5, 28, 54, .14); z-index: 43; }
/* 审批抽屉与任务抽屉同槽位，避免通知中心栈模式下左右分裂 */
body.has-task-drawer.has-approval-drawer #approvalDrawer.show {
  z-index: 45;
  background: var(--drawer-stack-front-bg, #fff);
  box-shadow: var(--drawer-stack-front-shadow, -12px 0 36px rgba(5, 28, 54, .14));
}
body.has-task-drawer.has-approval-drawer:not(.has-notification-drawer) #approvalDrawer.show {
  right: 0;
}
body.has-notification-drawer.has-task-drawer.has-approval-drawer:not(.has-activity-task-stack):not(:has(#notificationDrawer.is-task-stack)) #approvalDrawer.show {
  right: var(--panel-width);
}
body.has-notification-drawer:has(#notificationDrawer.is-task-stack).has-approval-drawer #approvalDrawer.show {
  right: var(--activity-center-compact-width, min(360px, 32vw));
}
body.has-task-drawer.has-approval-drawer #taskDrawer.show {
  background: var(--drawer-stack-back-bg);
  box-shadow: var(--drawer-stack-back-shadow);
}
body.has-task-drawer.has-approval-drawer #taskDrawer.show .task-drawer-header {
  background: var(--drawer-stack-back-header-bg);
  border-bottom-color: rgba(15, 35, 62, .08);
}
#approvalDrawer[hidden] { display: none !important; }
.approval-drawer-header {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  min-height: var(--ad-header-h);
  padding: 14px 20px;
  border-bottom: 1px solid var(--ad-border);
  background: #fff;
}
.approval-drawer-header-left { min-width: 0; flex: 1; }
.approval-drawer-header h3 {
  margin: 2px 0 0;
  font-size: 17px;
  font-weight: 600;
  color: var(--ad-text);
  line-height: 1.35;
  word-break: break-word;
}
.approval-drawer-sub {
  margin: 4px 0 0;
  color: var(--ad-muted);
  font-size: 12px;
  line-height: 1.45;
}
.approval-drawer-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: linear-gradient(180deg, #f8fbff 0%, #fff 120px);
}
.approval-drawer-footer {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: var(--ad-footer-h);
  padding: 10px 20px 14px;
  border-top: 1px solid var(--ad-border);
  background: #fff;
}
.approval-drawer-footer-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
#approvalDrawer .td-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: all .2s cubic-bezier(.645, .045, .355, 1);
}
#approvalDrawer .td-btn-sm { height: 30px; padding: 0 12px; font-size: 13px; }
#approvalDrawer .td-btn-primary {
  min-width: 100px;
  padding: 0 22px;
  border-color: var(--ad-primary);
  color: #fff;
  background: var(--ad-primary);
}
#approvalDrawer .td-btn-primary:hover { border-color: #4096ff; background: #4096ff; }
#approvalDrawer .td-btn-default {
  min-width: 72px;
  border-color: #d9d9d9;
  color: var(--ad-text);
  background: #fff;
}
#approvalDrawer .td-btn-default:hover { border-color: var(--ad-primary); color: var(--ad-primary); }
#approvalDrawer .td-btn-danger {
  min-width: 72px;
  border-color: #ffccc7;
  color: var(--ad-danger);
  background: #fff2f0;
}
#approvalDrawer .td-btn-danger:hover { border-color: #ffa39e; color: #ff7875; background: #fff1f0; }

/* 审批详情 Hero */
.approval-review-hero {
  position: relative;
  padding: 16px 18px;
  border: 1px solid #e3ecfa;
  border-radius: 14px;
  background: linear-gradient(135deg, #f5f9ff 0%, #fff 52%, #f9fcff 100%);
  box-shadow: 0 6px 20px rgba(22, 119, 255, .06);
}
.approval-review-badge {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 10px;
  margin-bottom: 8px;
  border-radius: 999px;
  background: #e6f4ff;
  color: #0958d9;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .2px;
}
.approval-review-title {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: #1f2f45;
  line-height: 1.4;
  word-break: break-word;
}
.approval-review-sub {
  margin: 6px 0 0;
  color: #607086;
  font-size: 13px;
  line-height: 1.5;
}
.approval-meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px 14px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed #e0e8f2;
}
.approval-meta-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.approval-meta-item span {
  color: #8aa0b8;
  font-size: 11px;
  font-weight: 600;
}
.approval-meta-item b {
  color: #2f4057;
  font-size: 13px;
  font-weight: 600;
  word-break: break-word;
}
.approval-review-note {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fffaf3;
  border: 1px solid #ffe8c8;
  color: #6b5635;
  font-size: 12px;
  line-height: 1.55;
}
.approval-review-note p { margin: 0; }

/* 审批进度时间轴 */
.approval-steps-card {
  padding: 14px 16px;
  border: 1px solid var(--ad-border);
  border-radius: 12px;
  background: #fff;
}
.approval-steps-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.approval-steps-head h4 {
  margin: 0;
  font-size: 14px;
  color: #2f4057;
}
.approval-steps-fallback {
  margin: 0;
  color: var(--ad-muted);
  font-size: 12px;
  line-height: 1.5;
}
.approval-approver-list {
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.approval-approver-item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #f6f8fb;
  font-size: 12px;
}
.approval-approver-item b { color: #2f4057; font-size: 12px; }
.approval-approver-item span { color: var(--ad-muted); text-align: right; }
.approval-approver-item.is-current { background: #fff4e8; border: 1px solid #ffd7a8; }
.approval-approver-item.is-current b { color: #c45f00; }
.approval-approver-item.is-done { opacity: 0.72; }
.approval-approver-item.is-done b::after { content: " ✓"; color: #20b56b; font-weight: 600; }
.version-delay-approver-hint { display: block; margin-top: 2px; color: var(--ad-muted); }
.approval-steps {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.approval-step {
  position: relative;
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 0 12px;
  padding: 0 0 16px;
}
.approval-step:last-child { padding-bottom: 0; }
.approval-step:not(:last-child)::before {
  content: "";
  position: absolute;
  left: 9px;
  top: 18px;
  bottom: 0;
  width: 2px;
  background: #e8edf3;
}
.approval-step.is-done:not(:last-child)::before { background: #b7eb8f; }
.approval-step.is-current:not(:last-child)::before {
  background: linear-gradient(180deg, #91caff 0%, #e8edf3 100%);
}
.approval-step-dot {
  position: relative;
  z-index: 1;
  width: 18px;
  height: 18px;
  margin-top: 1px;
  border-radius: 50%;
  border: 2px solid #d9e2ec;
  background: #fff;
  box-sizing: border-box;
}
.approval-step.is-done .approval-step-dot {
  border-color: #52c41a;
  background: #52c41a;
  box-shadow: inset 0 0 0 3px #fff;
}
.approval-step.is-current .approval-step-dot {
  border-color: var(--ad-primary);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(22, 119, 255, .12);
}
.approval-step.is-pending .approval-step-dot { border-color: #e0e6ed; background: #f5f7fa; }
.approval-step-body b {
  display: block;
  font-size: 13px;
  color: #2f4057;
  line-height: 1.4;
}
.approval-step.is-pending .approval-step-body b { color: #8aa0b8; }
.approval-step-log,
.approval-step-wait {
  display: block;
  margin-top: 3px;
  color: #8aa0b8;
  font-size: 11px;
  line-height: 1.45;
}
.approval-step-wait em { color: #d48806; font-style: normal; font-weight: 600; }
.approval-history-fold {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #f0f2f5;
}
.approval-history-fold summary {
  color: #607086;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  user-select: none;
}
.approval-history-fold[open] summary { margin-bottom: 8px; }

/* 审批表单区 */
.approval-form-card {
  padding: 14px 16px;
  border: 1px solid var(--ad-border);
  border-radius: 12px;
  background: #fff;
}
.approval-form-card h4 {
  margin: 0 0 12px;
  font-size: 14px;
  color: #2f4057;
}
.approval-opinion-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 10px;
}
.approval-opinion-field span {
  color: #607086;
  font-size: 12px;
  font-weight: 600;
}
.approval-opinion-field textarea {
  width: 100%;
  min-height: 84px;
  padding: 10px 12px;
  border: 1px solid #dfe7f2;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.55;
  resize: vertical;
  box-sizing: border-box;
  transition: border-color .2s, box-shadow .2s;
}
.approval-opinion-field textarea:focus {
  outline: none;
  border-color: #91caff;
  box-shadow: 0 0 0 2px rgba(22, 119, 255, .12);
}
.approval-opinion-field small {
  color: #9aa7b6;
  font-size: 11px;
  line-height: 1.45;
}
.approval-assign-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 14px;
  margin-bottom: 4px;
}
.approval-assign-grid label {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.approval-assign-grid label span {
  color: #607086;
  font-size: 12px;
  font-weight: 600;
}
.approval-assign-grid select {
  height: 36px;
  padding: 0 10px;
  border: 1px solid #dfe7f2;
  border-radius: 8px;
  font-size: 13px;
}

/* 工作台待审批行 */
.approval-pending-row {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 10px 12px;
  padding: 12px 14px;
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: #fff;
  transition: border-color .2s, box-shadow .2s, transform .15s;
}
.approval-pending-row + .approval-pending-row { margin-top: 8px; }
.approval-pending-row.is-clickable { cursor: pointer; }
.approval-pending-row.is-clickable:hover {
  border-color: #c8ddff;
  box-shadow: 0 4px 14px rgba(22, 119, 255, .08);
  transform: translateY(-1px);
}
.approval-pending-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #e6f4ff, #f0f7ff);
  color: #1677ff;
}
.approval-pending-icon svg { width: 18px; height: 18px; }
.approval-pending-main { min-width: 0; }
.approval-pending-main b {
  display: block;
  font-size: 13px;
  color: #2f4057;
  line-height: 1.35;
  word-break: break-word;
}
.approval-pending-main small {
  display: block;
  margin-top: 3px;
  color: #8aa0b8;
  font-size: 11px;
  line-height: 1.4;
}
.approval-pending-main time {
  display: block;
  margin-top: 3px;
  color: #b0bac6;
  font-size: 10px;
}
.approval-pending-type {
  padding: 2px 8px;
  border-radius: 6px;
  background: #f5f8fc;
  color: #607086;
  font-size: 10px;
  font-weight: 700;
  font-style: normal;
  white-space: nowrap;
}

/* 审批配置页 */
.approval-workflow-hero {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 16px;
  padding: 16px 18px;
  border: 1px solid #dcecff;
  border-radius: 14px;
  background: linear-gradient(135deg, #f0f7ff 0%, #fff 55%, #f8fbff 100%);
  box-shadow: 0 8px 24px rgba(16, 38, 72, .04);
}
.approval-workflow-hero-main { min-width: 0; flex: 1; }
.approval-workflow-hero-badge {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 10px;
  margin-bottom: 8px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #d6e8ff;
  color: #1677ff;
  font-size: 11px;
  font-weight: 700;
}
.approval-workflow-hero h4 {
  margin: 0 0 6px;
  font-size: 16px;
  color: #2f4057;
}
.approval-workflow-hero p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
  max-width: 640px;
}
.approval-workflow-layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}
.approval-project-aside {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px 12px;
  min-height: 0;
  position: sticky;
  top: 12px;
  max-height: calc(100vh - 120px);
  overflow: hidden;
}
.approval-project-aside-head {
  flex-shrink: 0;
  padding: 0 4px;
}
.approval-project-aside-head h4 {
  margin: 4px 0 4px;
  font-size: 15px;
  color: #2f4057;
}
.approval-project-aside-head small {
  color: var(--muted);
  font-size: 12px;
}
.approval-project-cards {
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow-y: auto;
  padding: 2px 4px 4px;
}
.approval-project-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  min-width: 0;
  padding: 12px;
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.approval-project-card:hover {
  border-color: #b9d6ff;
  background: #f8fbff;
}
.approval-project-card.active {
  border-color: #1677ff;
  background: #eef6ff;
  box-shadow: 0 0 0 1px #dcecff;
}
.approval-project-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-width: 0;
}
.approval-project-card-head b {
  font-size: 14px;
  color: #2f4057;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.approval-project-card.active .approval-project-card-head b {
  color: #1677ff;
}
.approval-project-logo {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  flex-shrink: 0;
}
.approval-project-card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  width: 100%;
}
.approval-project-card-meta em {
  font-style: normal;
  font-size: 11px;
  color: #8aa0b8;
}
.approval-workflow-main {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px 18px;
  min-width: 0;
}
.approval-workflow-main-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #eef2f6;
}
.approval-workflow-main-head h4 {
  margin: 6px 0 4px;
  font-size: 16px;
  color: #2f4057;
}
.approval-workflow-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
}
.approval-workflow-tab {
  border: 1px solid #d8e2ef;
  background: #f7fafd;
  color: #4a6077;
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 12px;
  cursor: pointer;
}
.approval-workflow-tab.active {
  background: #2f6fed;
  border-color: #2f6fed;
  color: #fff;
}
.approval-workflow-main-head p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
  max-width: 720px;
}
.approval-panel-head {
  margin-bottom: 12px;
}
.approval-panel-head h4 {
  margin: 0 0 4px;
  font-size: 14px;
  color: #2f4057;
}
.approval-panel-head p,
.approval-panel-head small {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.approval-scenario-stack { display: flex; flex-direction: column; gap: 10px; }
.approval-scenario-card {
  margin-bottom: 0;
  border-color: #e8eef5;
  transition: border-color .2s, box-shadow .2s;
}
.approval-scenario-card:hover {
  border-color: #d6e4ff;
  box-shadow: 0 4px 16px rgba(22, 119, 255, .05);
}

/* 审批与流转 V2 — 中栏列表 + 配置抽屉 */
.approval-flow-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.approval-flow-list-row {
  display: grid;
  grid-template-columns: minmax(140px, 1.2fr) auto minmax(180px, 2fr) auto;
  gap: 10px 14px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
}
.approval-flow-list-row:hover {
  border-color: #d6e4ff;
  box-shadow: 0 4px 16px rgba(22, 119, 255, .05);
}
.approval-flow-list-main {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.approval-flow-list-main b {
  font-size: 13px;
  color: #2f4057;
}
.approval-flow-list-main small {
  color: var(--muted);
  font-size: 11px;
}
.approval-flow-list-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  color: #6b7f95;
  font-size: 11px;
  line-height: 1.45;
  min-width: 0;
}
.approval-flow-list-summary.is-empty {
  color: #9aabb8;
  font-style: italic;
}
.approval-flow-summary-segment {
  display: inline;
  white-space: normal;
}
.approval-flow-summary-segment em {
  font-style: normal;
  color: #8fa3b8;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .02em;
}
.approval-flow-summary-dot {
  color: #c5d0dc;
  user-select: none;
}
.approval-flow-config-editor {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.approval-flow-config-drawer .approval-scenario-settings {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
body.has-approval-flow-config-drawer .approval-flow-config-drawer.show { z-index: 1202; }
#approvalFlowConfigDrawer {
  --td-pad: 20px;
  --td-border: #f0f0f0;
  --td-text: rgba(0, 0, 0, .88);
  --td-primary: #1890ff;
  --td-footer-h: 52px;
}
#approvalFlowConfigDrawer .task-drawer-footer-main { margin-left: auto; }
@media (max-width: 900px) {
  .approval-flow-list-row {
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "main tag"
      "summary summary"
      "action action";
  }
  .approval-flow-list-main { grid-area: main; }
  .approval-flow-list-row > .tag { grid-area: tag; justify-self: end; }
  .approval-flow-list-summary { grid-area: summary; }
  .approval-flow-list-row > [data-approval-flow-config] { grid-area: action; justify-self: end; }
  .approval-flow-config-drawer .approval-scenario-settings { grid-template-columns: 1fr; }
}

.approval-flow-steps-section {
  padding: 12px 14px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #fff;
}
.approval-flow-steps-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.approval-flow-steps-head h4 {
  margin: 0;
  font-size: 13px;
  color: #2f4057;
}
.approval-flow-steps-settings {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin: 0;
}
.approval-flow-steps-settings label { min-width: 140px; }
.approval-flow-steps-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.approval-flow-step {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid #e8eef5;
  border-radius: 8px;
  background: #fafcff;
}
.approval-flow-step.is-start,
.approval-flow-step.is-end {
  background: #f3f6fa;
  border-style: dashed;
}
.approval-flow-step-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  color: #607086;
  background: #eef3f8;
}
.approval-flow-step.is-approve .approval-flow-step-badge,
.approval-flow-step.is-gate .approval-flow-step-badge { color: #1677ff; background: #e8f3ff; }
.approval-flow-step.is-cc .approval-flow-step-badge { color: #8b6b00; background: #fff8e6; }
.approval-flow-step-main select { width: 100%; }
.flow-gate-step-main { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.flow-gate-participation { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.flow-gate-participation select { min-width: 120px; }
.flow-gate-targets { position: relative; width: 100%; }
.flow-gate-targets-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.flow-gate-add {
  width: 32px;
  height: 32px;
  border: 1px dashed #b8c5d6;
  border-radius: 8px;
  background: #f8fafc;
  color: #607086;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
}
.flow-gate-target-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px 4px 10px;
  border-radius: 999px;
  font-size: 13px;
  background: #eef3f8;
  color: #334155;
}
.flow-gate-target-chip.is-rule { background: #e8f3ff; color: #1677ff; }
.flow-gate-target-chip.is-dept { background: #f0fdf4; color: #15803d; }
.flow-gate-target-remove { margin-left: 2px; }
.flow-gate-popover {
  position: absolute;
  left: 0;
  top: calc(100% + 6px);
  z-index: 40;
  min-width: 340px;
  padding: 10px;
  border: 1px solid #dbe4ef;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}
.flow-gate-popover-head { display: flex; gap: 6px; margin-bottom: 8px; }
.flow-gate-popover-tab {
  flex: 1;
  padding: 6px 8px;
  border: 1px solid #dbe4ef;
  border-radius: 6px;
  background: #f8fafc;
  color: #607086;
  cursor: pointer;
  font-size: 12px;
}
.flow-gate-popover-tab.is-active { border-color: #1677ff; color: #1677ff; background: #e8f3ff; }
.flow-gate-popover-panel select { width: 100%; margin-bottom: 8px; }
.flow-gate-popover-search {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #dbe4ef;
  border-radius: 8px;
  margin-bottom: 6px;
}
.flow-gate-person-menu { display: flex; flex-direction: column; gap: 6px; max-height: 400px; overflow: auto; }
.flow-gate-person-pick {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  padding: 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: #fafbfc;
  cursor: pointer;
  text-align: left;
  transition: background .15s, border-color .15s, box-shadow .15s;
}
.flow-gate-person-pick:hover { background: #eef2f8; border-color: #d0d8e8; box-shadow: 0 1px 3px rgba(15,23,42,.06); }
.flow-gate-person-pick .xm-avatar { width: 36px; height: 36px; font-size: 12px; flex-shrink: 0; }
.flow-gate-person-pick .xm-person { gap: 8px; }
.flow-gate-person-pick .xm-person b { font-size: 13px; }
.flow-gate-person-pick .xm-person small { font-size: 11px; }
.flow-gate-person-empty { margin: 0; padding: 8px; color: #94a3b8; font-size: 13px; }
.task-gate-all-card {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid #dbe4ef;
  border-radius: 10px;
  background: #f8fafc;
}
.task-gate-all-card h5 { margin: 0 0 6px; font-size: 14px; }
.task-gate-all-card p { margin: 0 0 10px; color: #607086; font-size: 13px; }
.task-gate-person-list { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.task-gate-person { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.task-gate-person.is-done { opacity: 0.85; }
.approval-flow-step-actions {
  display: flex;
  gap: 4px;
}
.approval-flow-step-move,
.approval-flow-step-remove {
  width: 28px;
  height: 28px;
  border: 1px solid #dbe4ef;
  border-radius: 6px;
  background: #fff;
  color: #607086;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
}
.approval-flow-step-remove { color: #c45656; }
.approval-flow-steps-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

tr.is-join-approval,
tr.is-scenario-approval,
.task-work-card.is-join-approval,
.task-work-card.is-scenario-approval,
.xm-priority-row.is-join-approval,
.xm-priority-row.is-scenario-approval { background: #f6faff; }
tr.is-join-approval td:first-child,
tr.is-scenario-approval td:first-child { font-weight: 600; }

.version-metrics-hero {
  margin-bottom: 14px;
  padding: 14px 16px 12px;
  border: 1px solid #e6edf5;
  border-radius: 14px;
  background: linear-gradient(135deg, #f8fbff 0%, #fff 48%, #f9fcff 100%);
  box-shadow: 0 8px 24px rgba(16, 38, 72, 0.04);
}
.version-metrics-hero-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.version-metrics-hero-title { margin: 0; font-size: 14px; font-weight: var(--weight-display); color: #2f4057; letter-spacing: .2px; }
.version-metrics-hero-desc { margin: 4px 0 0; font-size: 11px; color: #8aa0b8; line-height: 1.45; }
.version-delivery-score {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid #e8eef5;
  background: #fff;
}
.version-delivery-score span { font-size: 10px; font-weight: var(--weight-strong); color: #8aa0b8; }
.version-delivery-score b { font-size: 24px; line-height: 1; color: #2f4057; }
.version-delivery-score.is-good b { color: #13a06b; }
.version-delivery-score.warn b { color: #e98000; }
.version-delivery-score.danger b { color: #f14444; }
.version-metrics-strip-wrap {
  overflow-x: auto;
  margin: 0 -4px;
  padding: 2px 4px 4px;
  scrollbar-width: thin;
}
.version-metrics-strip {
  display: grid;
  grid-template-columns: repeat(8, minmax(88px, 1fr));
  gap: 8px;
  min-width: min(100%, 720px);
}
.version-metric-chip {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 2px;
  min-height: 68px;
  padding: 8px 10px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #fff;
  transition: border-color .15s, box-shadow .15s;
  font: inherit;
  text-align: left;
  cursor: default;
}
button.version-metric-chip {
  cursor: pointer;
  width: 100%;
}
.version-metric-chip.is-active {
  border-color: #91caff;
  background: linear-gradient(180deg, #eef6ff 0%, #fff 100%);
  box-shadow: 0 0 0 1px rgba(22, 119, 255, 0.12);
}
.version-metric-chip.is-active b { color: #1677ff; }
.version-metric-chip:hover { border-color: #c5ddff; box-shadow: 0 2px 8px rgba(22, 119, 255, 0.06); }
.version-metric-chip b { font-size: 17px; line-height: 1.15; color: #2f4057; font-weight: var(--weight-display); }
.version-metric-chip span { font-size: 11px; font-weight: var(--weight-strong); color: #7a8798; line-height: 1.25; }
.version-metric-chip small {
  display: block;
  margin-top: 2px;
  font-size: 10px;
  color: #9aa7b6;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.version-metric-chip.is-good { border-color: #c8ebd8; background: linear-gradient(180deg, #f6fffa 0%, #fff 100%); }
.version-metric-chip.is-good b { color: #13a06b; }
.version-metric-chip.warn { border-color: #ffe8c8; background: linear-gradient(180deg, #fffaf3 0%, #fff 100%); }
.version-metric-chip.warn b { color: #e98000; }
.version-metric-chip.danger { border-color: #ffd4d4; background: linear-gradient(180deg, #fff8f8 0%, #fff 100%); }
.version-metric-chip.danger b { color: #f14444; }
.version-all-scope-hint { font-size: 12px; color: #8aa0b8; font-weight: 600; padding: 8px 12px; border-radius: 8px; background: #f5f8fc; border: 1px dashed #d5deea; }
.version-timeline-project {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-right: 4px;
  padding: 4px 12px 4px 6px;
  border-radius: 8px;
  background: #eef6ff;
  border: 1px solid #d6e8ff;
  color: #2f4057;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
}
.version-timeline-project-logo,
.version-timeline-project .version-timeline-project-logo {
  width: 20px;
  height: 20px;
  border-radius: 5px;
  flex-shrink: 0;
  margin: 0;
}
.version-timeline-project .project-logo-thumb {
  width: 20px;
  height: 20px;
  border-radius: 5px;
  object-fit: cover;
  margin: 0;
  border: 1px solid #d6e8ff;
}
.version-timeline-project .hub-pick-icon {
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 5px;
  background: #dcecff;
  color: #1677ff;
  font-size: 11px;
  font-weight: var(--weight-display);
}
.version-timeline-project-name {
  color: #1677ff;
  font-weight: var(--weight-display);
  white-space: nowrap;
}
.settings-versions-main .version-timeline-layout.settings-version-timeline-only { grid-template-columns: minmax(0, 1fr); gap: 0; }
.settings-version-timeline-only .version-timeline-main { min-width: 0; max-width: 100%; }
.settings-version-timeline-only .version-timeline { display: flex; flex-direction: column; gap: 6px; max-width: 100%; }
.settings-version-timeline-only .version-timeline-entry { margin-bottom: 0; }
.settings-version-timeline-only .version-timeline-item { padding: 10px 12px 10px 8px; grid-template-columns: 26px minmax(0, 1fr); gap: 10px; margin-bottom: 0; width: 100%; }
.settings-version-timeline-only .timeline-meta-grid { grid-template-columns: minmax(130px, 1.1fr) repeat(5, minmax(0, 1fr)); gap: 8px 14px; }
.settings-version-timeline-only .timeline-meta-primary b { font-size: var(--font-page); }
.settings-version-timeline-only .timeline-meta-label { font-size: var(--font-page-xs); }
.settings-version-timeline-only .timeline-meta-value { font-size: var(--font-page-sm); }
.settings-version-timeline-only .timeline-head b { font-size: var(--font-page); }
.settings-version-timeline-only .timeline-head em { font-size: var(--font-page-xs); }
.settings-version-timeline-only .timeline-body small { font-size: var(--font-page-sm); line-height: 1.45; display: block; white-space: normal; }
.settings-version-timeline-only .version-timeline-item .tag { font-size: 11px; padding: 2px 6px; }
.version-drawer {
  width: min(52vw, 780px);
  max-width: min(52vw, 780px);
}
:root {
  --version-drawer-compact-width: min(320px, 28vw);
  --version-panel-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --version-panel-duration: 0.36s;
}
/* 版本详情 / 任务 / 子任务：与「我的任务 + 子任务」相同，从右向左叠层；中间版本列表不移动、不挤压 */
body.has-version-detail-panel #versionDrawer.show {
  z-index: 40;
  transition:
    right var(--version-panel-duration) var(--version-panel-ease),
    width var(--version-panel-duration) var(--version-panel-ease),
    max-width var(--version-panel-duration) var(--version-panel-ease),
    box-shadow var(--version-panel-duration) ease;
}
body.has-version-detail-panel #versionDrawer.has-version-tasks-panel.show {
  width: var(--version-drawer-compact-width);
  max-width: var(--version-drawer-compact-width);
  right: 0;
}
body.has-version-detail-panel #versionDrawer.has-version-tasks-panel.show .version-detail-aside > :not(.version-detail-head):not(.version-container-metrics):not(.version-detail-task-panel) {
  display: none !important;
}
body.has-version-detail-panel #versionDrawer.has-version-tasks-panel.show .version-container-metrics {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 8px;
}
body.has-version-detail-panel #versionDrawer.has-version-tasks-panel.show .version-drawer-body,
body.has-version-task-dock #versionDrawer.show .version-drawer-body {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
body.has-version-detail-panel #versionDrawer.has-version-tasks-panel.show .version-detail-aside,
body.has-version-task-dock #versionDrawer.show .version-detail-aside {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
body.has-version-detail-panel #versionDrawer.has-version-tasks-panel.show .version-detail-task-panel,
body.has-version-task-dock #versionDrawer.show .version-detail-task-panel {
  flex: 1;
  min-height: 0;
  margin-top: 8px;
  overflow: hidden;
  display: flex !important;
  flex-direction: column;
}
body.has-version-detail-panel #versionDrawer.has-version-tasks-panel.show .version-detail-task-panel .version-task-list,
body.has-version-task-dock #versionDrawer.show .version-detail-task-panel .version-task-list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 2px;
}
body.has-version-detail-panel #versionDrawer.has-version-tasks-panel.show .version-detail-task-panel > .create-cc-hint,
body.has-version-task-dock #versionDrawer.show .version-detail-task-panel > .create-cc-hint {
  flex-shrink: 0;
  font-size: 11px;
  line-height: 1.4;
  margin: 0 0 8px;
}
body.has-version-detail-panel #versionDrawer.has-version-tasks-panel.show .version-drawer-footer {
  display: none !important;
}
body.has-version-detail-panel #versionTasksDrawer.show {
  right: var(--version-drawer-compact-width);
  width: var(--panel-width);
  max-width: var(--panel-width);
  z-index: 41;
  transition:
    right var(--version-panel-duration) var(--version-panel-ease),
    width var(--version-panel-duration) var(--version-panel-ease),
    max-width var(--version-panel-duration) var(--version-panel-ease),
    box-shadow var(--version-panel-duration) ease;
}
body.has-version-detail-panel .version-assign-pool .version-drawer-assign-row {
  flex-direction: column;
  align-items: stretch;
}
body.has-version-detail-panel .version-assign-pool .version-drawer-assign-actions {
  justify-content: flex-end;
}
/* 从版本详情点进任务：版本详情收窄贴右，任务抽屉在其左侧；再开子任务则继续向左叠 */
body.has-version-task-dock #versionDrawer.show {
  width: var(--version-drawer-compact-width);
  max-width: var(--version-drawer-compact-width);
  right: 0;
  z-index: 40;
}
body.has-version-task-dock #versionDrawer.show .version-detail-aside > :not(.version-detail-head):not(.version-container-metrics):not(.version-detail-task-panel) {
  display: none !important;
}
body.has-version-task-dock #versionDrawer.show .version-container-metrics {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 8px;
}
body.has-version-task-dock #versionDrawer.show .version-drawer-footer {
  display: none !important;
}
body.has-version-task-dock #taskDrawer.show {
  right: var(--version-drawer-compact-width);
  width: var(--panel-width);
  max-width: var(--panel-width);
  z-index: 42;
  transition:
    right var(--version-panel-duration) var(--version-panel-ease),
    width var(--version-panel-duration) var(--version-panel-ease),
    max-width var(--version-panel-duration) var(--version-panel-ease),
    box-shadow var(--version-panel-duration) ease;
}
body.has-version-task-dock #taskDrawer.has-subtask-panel,
body.has-version-task-dock #taskDrawer.has-action-panel {
  width: var(--task-drawer-compact-width);
  max-width: var(--task-drawer-compact-width);
  right: var(--version-drawer-compact-width);
}
body.has-version-task-dock #taskSubtaskDrawer.show,
body.has-version-task-dock #taskActionDrawer.show {
  right: calc(var(--version-drawer-compact-width) + var(--task-drawer-compact-width));
  z-index: 43;
}
body.has-version-task-dock #taskCommentsDrawer.show {
  right: calc(var(--version-drawer-compact-width) + var(--task-drawer-compact-width));
  z-index: 43;
}
body.has-version-detail-panel:not(.has-version-task-dock) #overlay.show {
  background: rgba(3, 17, 32, .35);
}
.version-task-mini .version-task-link-row,
.version-drawer-task-row[data-task] {
  cursor: pointer;
}
.version-task-mini .version-task-link-row:hover,
.version-drawer-task-row[data-task]:hover {
  border-color: #b9d6ff;
  background: #f8fbff;
}
.version-task-link-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #fff;
  transition: border-color .16s ease, background .16s ease;
}
.version-task-link-row b { display: block; font-size: 13px; }
.version-task-link-row small { display: block; margin-top: 2px; color: #8aa0b8; font-size: 11px; }
.version-task-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-start;
}
.version-task-tags-empty { margin: 0; font-size: 12px; }
.version-task-tag {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  padding: 6px 10px;
  border: 1px solid #e2ecff;
  border-radius: 999px;
  background: #f8fbff;
  font-size: 12px;
  line-height: 1.35;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.version-task-tag.is-pending {
  border-color: #ffe8c8;
  background: #fffaf3;
}
.version-task-tag:hover {
  border-color: #b9d6ff;
  background: #fff;
  box-shadow: 0 2px 8px rgba(22, 119, 255, 0.06);
}
.version-task-tag-type { flex-shrink: 0; font-size: 10px; padding: 1px 6px; }
.version-task-tag-title {
  font-size: 12px;
  font-weight: var(--weight-strong);
  color: #2f4057;
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.version-task-tag-meta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #8aa0b8;
  font-size: 10px;
}
.version-task-tag-status { font-size: 10px; padding: 1px 6px; }
.version-task-tag-btn {
  flex-shrink: 0;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 11px;
  font-weight: var(--weight-strong);
  cursor: pointer;
  line-height: 20px;
}
.version-task-tag-btn.is-add {
  border-color: #91caff;
  background: #1677ff;
  color: #fff;
}
.version-task-tag-btn.is-add:hover { background: #0958d9; }
.version-task-tag-btn.is-remove {
  border-color: #ffd4d4;
  background: #fff;
  color: #f14444;
}
.version-task-tag-btn.is-remove:hover { background: #fff5f5; }
.version-tasks-drawer { width: var(--panel-width); max-width: var(--panel-width); }
.version-tasks-drawer[hidden] { display: none !important; }
.version-tasks-drawer-body { flex: 1; min-height: 0; overflow-y: auto; padding: 16px 20px 24px; }
.version-tasks-drawer-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #f8fbff;
  border: 1px solid #e2ecff;
}
.version-tasks-drawer-summary b { font-size: 16px; color: #1677ff; }
.version-tasks-drawer-summary span { color: #4f6278; font-size: 12px; font-weight: var(--weight-strong); }
.version-tasks-drawer-summary em { margin-left: auto; color: #7a8798; font-size: 12px; font-style: normal; }
.version-tasks-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.version-tasks-tab {
  height: 32px;
  padding: 0 14px;
  border: 1px solid #dfe7f2;
  border-radius: 999px;
  background: #fff;
  color: #607086;
  font-size: 12px;
  font-weight: var(--weight-strong);
  cursor: pointer;
}
.version-tasks-tab.active { border-color: #b9d6ff; color: #1677ff; background: #eef6ff; }
.version-detail-task-panel { margin-top: 12px; }
.version-detail-task-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.version-detail-task-toolbar .version-tasks-tab { flex: 1 1 auto; min-width: 0; }
.version-detail-task-more { margin-left: auto; flex: 0 0 auto; }
.version-task-list { display: grid; gap: 8px; }
.version-task-list-empty { margin: 0; font-size: 12px; }
.version-task-row.is-pending { border-left-color: #ffd591; background: #fffbf5; }
.version-task-row .version-drawer-assign-main > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  min-width: 0;
}
.version-task-row .version-drawer-assign-main b {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.version-task-row .version-drawer-assign-main small {
  flex: 1 1 100%;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.version-tasks-drawer .version-task-list { margin-top: 4px; }
.version-tasks-panel { display: grid; gap: 10px; }
.kpi-scope-drawer {
  --kpi-scope-compact-width: min(360px, 32vw);
  --task-panel-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --task-panel-duration: 0.36s;
  width: var(--kpi-scope-compact-width);
  max-width: var(--kpi-scope-compact-width);
  display: flex;
  flex-direction: column;
  transition:
    width var(--task-panel-duration) var(--task-panel-ease),
    max-width var(--task-panel-duration) var(--task-panel-ease),
    right .25s ease,
    box-shadow .25s ease;
}
.kpi-scope-drawer[hidden] { display: none !important; }
.kpi-scope-drawer-header { padding: 12px 14px 12px 16px; min-height: 48px; }
.kpi-scope-drawer-header .panel-kicker { margin: 0 0 2px; font-size: 11px; }
.kpi-scope-drawer-header h3 { margin: 0; font-size: 15px; line-height: 1.35; }
.kpi-scope-drawer-sub {
  margin: 4px 0 0;
  overflow: hidden;
  color: #8a8b91;
  font-size: 12px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.kpi-scope-drawer-sub:empty { display: none; }
#kpiScopeDrawer .version-tasks-drawer-body {
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 16px 20px 24px;
}
#kpiScopeDrawer.has-kpi-config-panel .version-tasks-drawer-body {
  padding: 10px 14px 14px;
}
.kpi-scope-tenant-pick {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 10px;
  font-size: 12px;
  color: rgba(0, 0, 0, .55);
}
.kpi-scope-tenant-pick select {
  width: 100%;
  height: 32px;
  padding: 0 8px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  font-size: 12px;
  background: #fff;
}
.kpi-scope-drawer-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  margin-bottom: 10px;
  padding: 8px 10px;
  border: 1px solid #eef2f6;
  border-radius: 8px;
  background: #fafcff;
  font-size: 12px;
  color: rgba(0, 0, 0, .65);
}
.kpi-scope-drawer-meta b { color: rgba(0, 0, 0, .88); font-size: 13px; }
.kpi-scope-drawer-meta em { margin-left: auto; color: #1677ff; font-style: normal; font-weight: 600; }
.kpi-scope-drawer-meta .kpi-tenant-status-dot { margin-right: 4px; }
.kpi-scope-effective-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid #eef2f6;
  border-radius: 8px;
  background: #fafcff;
  font-size: 12px;
}
.kpi-scope-effective-label {
  flex: 0 0 auto;
  color: rgba(0, 0, 0, .55);
  font-size: 12px;
  white-space: nowrap;
}
.kpi-scope-date-field {
  flex: 1 1 auto;
  min-width: 0;
}
.kpi-scope-effective-row .secondary-button {
  flex: 0 0 auto;
  margin-left: auto;
}
.kpi-scope-effective-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  color: rgba(0, 0, 0, .55);
}
.kpi-scope-effective-field input[type="month"] {
  height: 30px;
  padding: 0 8px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  font-size: 12px;
  background: #fff;
}
.kpi-ym-select {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.kpi-ym-select select {
  height: 32px;
  min-width: 0;
  padding: 0 8px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  font-size: 13px;
  background: #fff;
  color: rgba(0, 0, 0, .88);
}
.kpi-ym-select .kpi-ym-year { min-width: 92px; }
.kpi-ym-select .kpi-ym-month { min-width: 72px; }
.kpi-scheme-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 10px;
  padding: 10px 12px;
  border: 1px solid #e2ecff;
  border-radius: 10px;
  background: #f8fbff;
  font-size: 12px;
  color: rgba(0, 0, 0, .65);
}
.kpi-scheme-summary b { color: #1677ff; font-size: 14px; }
.kpi-scheme-summary em { margin-left: auto; color: #7a8798; font-style: normal; }
.kpi-scheme-list { display: grid; gap: 10px; }
.kpi-scheme-card {
  padding: 12px 14px;
  border: 1px solid #e8eef5;
  border-left: 3px solid #1677ff;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
}
.kpi-scheme-card.is-active { border-color: #b9d6ff; background: #f8fbff; box-shadow: 0 4px 12px rgba(22, 119, 255, .06); }
.kpi-scheme-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.kpi-scheme-card-title { min-width: 0; }
.kpi-scheme-card-title b { display: block; margin-top: 4px; font-size: 14px; line-height: 1.4; }
.kpi-scheme-kind { margin-right: 0; }
.kpi-scheme-card-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.kpi-scheme-weight { color: #1677ff; font-size: 15px; font-weight: 700; }
.kpi-scheme-card-desc { margin: 8px 0 0; color: #8aa0b8; font-size: 12px; line-height: 1.45; }
.org-member-kpi-month-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  font-size: 12px;
  color: rgba(0, 0, 0, .55);
}
.org-member-kpi-plan-preview {
  padding: 10px 12px;
  border: 1px solid #eef2f6;
  border-radius: 8px;
  background: #fafcff;
}
.org-member-kpi-plan-head {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 8px;
}
.org-member-kpi-plan-head b { display: block; font-size: 14px; }
.org-member-kpi-plan-head small { display: block; margin-top: 2px; color: #8aa0b8; font-size: 11px; }
.kpi-scheme-preview-list { margin: 0; padding: 0; list-style: none; }
.kpi-scheme-preview-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 8px;
  align-items: center;
  padding: 6px 0;
  border-top: 1px solid #eef2f6;
  font-size: 12px;
}
.kpi-scheme-preview-row:first-child { border-top: 0; }
.kpi-scheme-preview-row em { color: #1677ff; font-style: normal; font-weight: 700; }
.kpi-scheme-preview-row small { color: #8aa0b8; }
.org-member-kpi-plan-empty { font-size: 12px; color: rgba(0, 0, 0, .55); }
.kpi-scope-member-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  background: #eef6ff;
  color: #2563eb;
  font-size: 11px;
  font-weight: 600;
}
.kpi-scope-effective-sep { padding-bottom: 6px; color: rgba(0, 0, 0, .45); }
.kpi-scope-tenant-pick-label {
  display: flex;
  align-items: center;
  gap: 6px;
}
.kpi-tenant-status-text { font-style: normal; font-weight: 600; font-size: 11px; }
.kpi-tenant-status-text--off { color: #8c8c8c; }
.kpi-tenant-status-text--pending { color: #d48806; }
.kpi-tenant-status-text--ready { color: #389e0d; }
.kpi-tenant-status-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.kpi-tenant-status-dot--off { background: #bfbfbf; box-shadow: 0 0 0 2px rgba(191, 191, 191, .25); }
.kpi-tenant-status-dot--pending { background: #faad14; box-shadow: 0 0 0 2px rgba(250, 173, 20, .22); }
.kpi-tenant-status-dot--ready { background: #52c41a; box-shadow: 0 0 0 2px rgba(82, 196, 26, .22); }
.org-dept-kpi-status {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  line-height: 1;
  vertical-align: middle;
}
.org-dept-kpi-status:hover .org-dept-kpi-badge--ready { color: #389e0d; }
.org-dept-kpi-status:hover .org-dept-kpi-badge--pending { color: #8c8c8c; }
.org-dept-kpi-badge {
  display: inline;
  width: auto;
  height: auto;
  padding: 0;
  border-radius: 0;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
  color: #b0b8c4;
  background: transparent;
  box-shadow: none;
  user-select: none;
}
.org-dept-kpi-badge--off,
.org-dept-kpi-badge--pending {
  color: #b0b8c4;
}
.org-dept-kpi-badge--ready {
  color: #52c41a;
}
.kpi-scope-drawer-meta select {
  height: 28px;
  min-width: 0;
  flex: 1 1 100%;
  padding: 0 8px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  font-size: 12px;
  background: #fff;
}
.kpi-scope-drawer-tenants { display: none; }
.kpi-scope-drawer-summary { display: none; }
.kpi-scope-drawer-tenant-toggle { display: none; }
#kpiScopeDrawer .version-tasks-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 10px;
}
#kpiScopeDrawer .version-tasks-tab {
  flex: 1;
  min-height: 30px;
  padding: 5px 8px;
  font-size: 12px;
  text-align: center;
}
#kpiScopeDrawer .version-tasks-panel { gap: 8px; min-width: 0; }
#kpiScopeDrawer .version-tasks-panel > .create-cc-hint { display: none; }
#kpiScopeDrawer .kpi-scope-plan-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin-bottom: 2px;
}
#kpiScopeDrawer .kpi-scope-plan-metric {
  padding: 8px 6px;
  border: 1px solid #e8eef5;
  border-radius: 8px;
  background: #fafcff;
  text-align: center;
  min-width: 0;
}
#kpiScopeDrawer .kpi-scope-plan-metric-wide { grid-column: 1 / -1; }
#kpiScopeDrawer .kpi-scope-plan-metric b {
  display: block;
  font-size: 14px;
  line-height: 1.25;
  color: #1677ff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#kpiScopeDrawer .kpi-scope-plan-metric span {
  display: block;
  margin-top: 2px;
  font-size: 10px;
  color: #8aa0b8;
}
#kpiScopeDrawer .kpi-scope-plan-metric.warn b { color: #d48806; }
#kpiScopeDrawer .kpi-scope-plan-metric.danger b { color: #cf1322; }
#kpiScopeDrawer .kpi-assessment-list { gap: 6px; min-width: 0; }
#kpiScopeDrawer .kpi-assessment-row {
  padding: 8px 10px;
  border-radius: 8px;
  min-width: 0;
}
#kpiScopeDrawer .kpi-assessment-row.is-loaded { border-left-color: #91caff; }
#kpiScopeDrawer .kpi-assessment-row .version-drawer-assign-main > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  min-width: 0;
}
#kpiScopeDrawer .kpi-assessment-row .version-drawer-assign-main b {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13px;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#kpiScopeDrawer .kpi-assessment-row .version-drawer-assign-main small {
  flex: 1 1 100%;
  display: block;
  margin-top: 0;
  font-size: 11px;
  line-height: 1.35;
  color: #8aa0b8;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#kpiScopeDrawer .kpi-assessment-row.is-loaded .version-drawer-assign-main small { display: none; }
#kpiScopeDrawer .kpi-assessment-row .version-drawer-assign-actions {
  align-items: center;
  gap: 6px;
}
#kpiScopeDrawer .kpi-assessment-row .kpi-assessment-weight {
  margin: 0;
  color: #1677ff;
  font-style: normal;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}
#kpiScopeDrawer .kpi-assessment-kind {
  flex: 0 0 auto;
  font-size: 10px;
  padding: 1px 5px;
  line-height: 1.35;
}
#kpiScopeDrawer.has-kpi-config-panel .kpi-assessment-row .version-drawer-assign-main small { display: none; }
.kpi-scope-panel-toolbar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  margin-bottom: 10px;
  overflow: visible;
}
.kpi-role-template-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.kpi-role-template-label {
  font-size: 12px;
  color: rgba(0, 0, 0, .55);
  line-height: 1.35;
}
.kpi-role-template-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.kpi-role-template-select {
  flex: 1 1 auto;
  min-width: 0;
  height: 32px;
  padding: 0 8px;
  border: 1px solid #dfe7f2;
  border-radius: 8px;
  background: #fff;
  font-size: 12px;
  color: #2f4057;
}
.kpi-role-template-apply {
  flex: 0 0 auto;
  height: 32px;
  padding: 0 12px;
  font-size: 12px;
  white-space: nowrap;
}
.kpi-scope-panel-toolbar [data-kpi-assessment-add-custom] {
  align-self: flex-start;
  height: 32px;
  padding: 0 12px;
  font-size: 12px;
}
.kpi-formula-section { margin-bottom: 4px; }
.kpi-metric-builder { margin-bottom: 14px; }
.kpi-metric-builder[hidden] { display: none !important; }
.kpi-metric-builder-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.kpi-metric-builder-head h4 { margin: 0 0 4px; font-size: 14px; color: rgba(0, 0, 0, .88); }
.kpi-metric-builder-head p { margin: 0; font-size: 12px; color: rgba(0, 0, 0, .45); line-height: 1.45; }
.kpi-metric-mode-switch {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 0 0 auto;
  min-width: 108px;
}
.kpi-metric-mode-switch span { font-size: 11px; color: rgba(0, 0, 0, .45); }
.kpi-metric-mode-switch select { height: 32px; border-radius: 8px; border: 1px solid #dfe7f2; padding: 0 8px; font-size: 12px; background: #fff; }
.kpi-metric-builder-card {
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: linear-gradient(180deg, #fbfdff 0%, #fff 100%);
  padding: 12px;
  display: grid;
  gap: 12px;
}
.kpi-metric-cat-tabs {
  display: flex;
  gap: 6px;
  padding: 4px;
  border-radius: 10px;
  background: #f3f6fa;
}
.kpi-metric-cat-tab {
  flex: 1;
  min-width: 0;
  height: 32px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: rgba(0, 0, 0, .55);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.kpi-metric-cat-tab.active {
  background: #fff;
  color: #1677ff;
  box-shadow: 0 1px 4px rgba(22, 119, 255, .12);
}
.kpi-metric-panel[hidden] { display: none !important; }
.kpi-metric-field-block { display: grid; gap: 8px; min-width: 0; }
.kpi-metric-field-label { font-size: 12px; color: rgba(0, 0, 0, .55); font-weight: 500; }
.kpi-metric-input {
  width: 100%;
  min-width: 0;
  height: 36px;
  padding: 0 10px;
  border: 1px solid #dfe7f2;
  border-radius: 8px;
  font-size: 13px;
  background: #fff;
  box-sizing: border-box;
}
.kpi-metric-input-num { max-width: 160px; }
.kpi-metric-chip-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.kpi-metric-chip-grid-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kpi-metric-chip {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-height: 52px;
  padding: 8px 10px;
  border: 1px solid #e3eaf3;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  text-align: left;
}
.kpi-metric-chip b { font-size: 12px; color: rgba(0, 0, 0, .85); font-weight: 600; }
.kpi-metric-chip small { font-size: 10px; color: rgba(0, 0, 0, .4); }
.kpi-metric-chip.active {
  border-color: #91caff;
  background: #f0f7ff;
  box-shadow: inset 0 0 0 1px rgba(22, 119, 255, .15);
}
.kpi-metric-field-hint {
  margin: 0;
  font-size: 11px;
  color: rgba(0, 0, 0, .42);
  line-height: 1.45;
}
.kpi-metric-combine {
  border-top: 1px dashed #e8eef5;
  padding-top: 10px;
}
.kpi-metric-combine summary {
  display: flex;
  align-items: baseline;
  gap: 8px;
  cursor: pointer;
  list-style: none;
  font-size: 13px;
  font-weight: 600;
  color: rgba(0, 0, 0, .75);
}
.kpi-metric-combine summary::-webkit-details-marker { display: none; }
.kpi-metric-combine summary em { font-style: normal; font-size: 11px; font-weight: 400; color: rgba(0, 0, 0, .4); }
.kpi-metric-combine-body { display: grid; gap: 10px; margin-top: 10px; }
.kpi-metric-switch-line { display: flex; align-items: center; gap: 8px; font-size: 12px; color: rgba(0, 0, 0, .65); }
.kpi-metric-combine-row { display: grid; gap: 10px; }
.kpi-metric-combine-row[hidden] { display: none !important; }
.kpi-metric-op-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.kpi-metric-op-chip {
  min-width: 40px;
  height: 32px;
  padding: 0 12px;
  border: 1px solid #dfe7f2;
  border-radius: 8px;
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  color: rgba(0, 0, 0, .65);
  cursor: pointer;
}
.kpi-metric-op-chip.active { border-color: #1677ff; color: #1677ff; background: #eef6ff; }
.kpi-metric-secondary-operand { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; }
.kpi-metric-preview {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #f6faff;
  border: 1px solid #dbeafe;
}
.kpi-metric-preview span { font-size: 11px; color: #1677ff; font-weight: 600; flex-shrink: 0; }
.kpi-metric-preview b { font-size: 13px; color: rgba(0, 0, 0, .85); line-height: 1.4; word-break: break-word; }
.kpi-config-primary-card { margin-bottom: 4px; }
.kpi-target-section { margin-top: 4px; padding-top: 4px; border-top: 1px solid #f0f3f7; }
.kpi-target-section h4 { margin: 0 0 10px; font-size: 14px; }
#kpiScopeDrawer .version-task-tag-btn {
  height: 26px;
  padding: 0 8px;
  font-size: 12px;
}
#kpiScopeDrawer .td-alert { padding: 8px 10px; font-size: 12px; }
#kpiScopeDrawer.has-kpi-config-panel .kpi-scope-drawer-kicker { display: none; }
#kpiScopeDrawer.has-kpi-config-panel .kpi-scope-drawer-header {
  padding: 12px 14px 12px 16px;
  border-bottom: 0;
}
#kpiScopeDrawer.has-kpi-config-panel .kpi-scope-drawer-header h3 {
  font-size: 16px;
  line-height: 1.4;
}
#kpiScopeDrawer.has-kpi-config-panel .kpi-scope-drawer-sub {
  display: block;
  color: #1677ff;
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
#kpiScopeDrawer.has-kpi-config-panel .kpi-scope-tenant-pick,
#kpiScopeDrawer.has-kpi-config-panel .kpi-scope-drawer-meta,
#kpiScopeDrawer.has-kpi-config-panel .kpi-scope-effective-row,
#kpiScopeDrawer.has-kpi-config-panel .version-tasks-tabs,
#kpiScopeDrawer.has-kpi-config-panel .kpi-scope-panel-toolbar,
#kpiScopeDrawer.has-kpi-config-panel .td-alert { display: none !important; }
#kpiScopeDrawer.has-kpi-config-panel .version-tasks-drawer-body { padding-top: 0; }
.kpi-scope-drawer-main { position: relative; flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.kpi-admin-modal.show {
  display: flex;
  flex-direction: column;
  width: min(680px, 94vw);
  max-height: min(88vh, 760px);
}
.kpi-admin-modal header {
  flex-shrink: 0;
  padding: 14px 18px 10px;
}
.kpi-admin-modal header h2 { margin: 0; font-size: 17px; }
.kpi-admin-tab-bar {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
  padding: 0 18px 10px;
  border-bottom: 1px solid #eef2f6;
}
.kpi-admin-tab {
  height: 32px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #607086;
  font-size: 13px;
  cursor: pointer;
}
.kpi-admin-tab:hover { background: #f5f8fc; color: #1677ff; }
.kpi-admin-tab.is-active {
  border-color: #dbeafe;
  background: #eef6ff;
  color: #1677ff;
  font-weight: 600;
}
.kpi-admin-modal .kpi-admin-body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  padding: 16px 18px;
  overflow-x: hidden;
  overflow-y: auto;
}
.kpi-admin-modal .kpi-admin-body .management-card { margin-bottom: 12px; }
.kpi-admin-modal .kpi-settings-intro { padding: 12px 14px; }
.kpi-admin-modal .kpi-settings-intro p { margin: 6px 0 0; font-size: 13px; color: #607086; line-height: 1.5; }
.kpi-admin-modal footer {
  flex-shrink: 0;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 10px 18px 14px;
  border-top: 1px solid #eef2f6;
}
.kpi-admin-launch-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.kpi-admin-launch-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 14px 16px;
  border: 1px solid #e6edf5;
  border-radius: 10px;
  background: #fafcff;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.kpi-admin-launch-card:hover {
  border-color: #91caff;
  box-shadow: 0 4px 14px rgba(22, 119, 255, .08);
}
.kpi-admin-launch-card b { font-size: 14px; color: rgba(0, 0, 0, .88); }
.kpi-admin-launch-card span { font-size: 12px; color: #607086; line-height: 1.45; }
#kpiScopeConfigDrawer {
  --task-panel-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --task-panel-duration: 0.36s;
  --td-pad: 20px;
  --td-border: #f0f0f0;
  --td-text: rgba(0, 0, 0, .88);
  --td-primary: #1890ff;
  --td-danger: #ff4d4f;
  --td-footer-h: 52px;
  --kpi-scope-compact-width: min(360px, 32vw);
  --kpi-config-panel-width: var(--panel-width);
  width: var(--kpi-config-panel-width);
  max-width: var(--kpi-config-panel-width);
  right: calc(-1 * var(--kpi-config-panel-width));
  z-index: 43;
  transition:
    right var(--task-panel-duration) var(--task-panel-ease),
    width var(--task-panel-duration) var(--task-panel-ease),
    max-width var(--task-panel-duration) var(--task-panel-ease),
    box-shadow var(--task-panel-duration) ease,
    visibility 0s linear var(--task-panel-duration);
}
#kpiScopeConfigDrawer[hidden] { display: none !important; }
#kpiScopeConfigDrawer.show {
  right: var(--kpi-scope-compact-width);
  transition:
    right var(--task-panel-duration) var(--task-panel-ease),
    width var(--task-panel-duration) var(--task-panel-ease),
    max-width var(--task-panel-duration) var(--task-panel-ease),
    box-shadow var(--task-panel-duration) ease,
    visibility 0s;
}
#kpiScopeConfigDrawer.show .task-subtask-drawer-body {
  animation: taskSidePanelBodyIn var(--task-panel-duration) var(--task-panel-ease);
}
#kpiScopeConfigDrawer.is-form-mode .task-subtask-drawer-body { padding: 0; background: #fff; }
#kpiScopeConfigDrawer .task-subtask-form {
  display: flex;
  min-height: 100%;
  flex-direction: column;
}
#kpiScopeConfigDrawer .kpi-scope-config-form { display: flex; min-height: 100%; flex-direction: column; }
#kpiScopeConfigDrawer .kpi-scope-config-form .create-flow,
#kpiScopeConfigDrawer .task-subtask-form .create-flow { padding: 14px var(--td-pad, 20px) 18px; }
#kpiScopeConfigDrawer .task-subtask-form-intro {
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid #eef2f6;
  border-radius: 8px;
  background: #f8fbff;
  color: rgba(0, 0, 0, .65);
  font-size: 12px;
  line-height: 1.55;
}
#kpiScopeConfigDrawer .task-subtask-form-intro b { color: rgba(0, 0, 0, .88); }
#kpiScopeConfigDrawer .task-subtask-drawer-footer {
  flex-shrink: 0;
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 0;
  height: auto;
  min-height: var(--td-footer-h, 52px);
  padding: 0;
  border-top: 1px solid var(--td-border, #f0f0f0);
  background: #fff;
}
#kpiScopeConfigDrawer .task-subtask-drawer-footer-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; padding: 10px var(--td-pad, 20px) 12px;
}
#kpiScopeConfigDrawer .task-subtask-drawer-footer-bar .task-drawer-footer-main {
  display: flex; gap: 8px; margin-left: auto;
}
#kpiScopeConfigDrawer .kpi-scope-config-section {
  margin-top: 12px; padding: 14px 16px; border: 1px solid #eef2f6; border-radius: 8px; background: #fff;
}
#kpiScopeConfigDrawer .kpi-scope-config-section h4 { margin: 0 0 8px; font-size: 14px; }
#kpiScopeConfigDrawer .create-meta-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
#kpiScopeConfigDrawer .create-meta-field { display: flex; flex-direction: column; gap: 6px; }
#kpiScopeConfigDrawer .create-meta-field.wide { grid-column: 1 / -1; }
#kpiScopeConfigDrawer .create-meta-label { color: rgba(0,0,0,.65); font-size: 13px; font-weight: 500; }
#kpiScopeConfigDrawer .create-meta-field input,
#kpiScopeConfigDrawer .create-meta-field select,
#kpiScopeConfigDrawer .create-meta-field textarea {
  width: 100%; padding: 7px 10px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 13px; box-sizing: border-box;
}
.kpi-assessment-list { display: grid; gap: 8px; }
.kpi-assessment-row { cursor: pointer; }
.kpi-assessment-row.is-active { border-color: #b9d6ff; background: #f8fbff; }
.kpi-assessment-kind { margin-right: 6px; vertical-align: middle; }
.kpi-assessment-weight { margin-left: 8px; color: #1677ff; font-style: normal; font-size: 12px; font-weight: 600; }
.kpi-scope-project-list { display: grid; gap: 8px; }
.kpi-scope-project-row .version-drawer-assign-main { display: flex; align-items: center; gap: 10px; min-width: 0; }
.kpi-scope-project-row .version-drawer-assign-main b { font-size: 13px; }
.kpi-scope-project-row .version-drawer-assign-main small { margin-top: 2px; }
.kpi-metric-check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px; margin: 10px 0; }
.kpi-metric-check { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.kpi-scope-sheet-block { margin-top: 12px; padding: 12px 14px; }
.version-task-tag-btn.is-config { color: #1677ff; border-color: #b9d6ff; }
.version-drawer-task-row,
.version-drawer-assign-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid #e8eef5;
  border-left: 3px solid #e8eef5;
  border-radius: 12px;
  background: #fff;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.version-drawer-task-row.is-active { border-left-color: #1677ff; border-color: #d6e5f4; box-shadow: 0 4px 12px rgba(22,119,255,.06); }
.version-drawer-task-row b,
.version-drawer-assign-main b { display: block; font-size: 13px; }
.version-drawer-task-row small,
.version-drawer-assign-main small { display: block; margin-top: 3px; color: #8aa0b8; font-size: 11px; }
.version-drawer-assign-main { flex: 1; min-width: 0; }
.version-drawer-assign-actions { display: flex; align-items: flex-end; gap: 8px; flex-shrink: 0; }
.version-drawer-hours { display: grid; gap: 4px; }
.version-drawer-hours span { color: #8aa0b8; font-size: 11px; font-weight: 600; }
.version-drawer-hours input {
  width: 72px;
  height: 34px;
  padding: 0 8px;
  border: 1px solid #dfe7f2;
  border-radius: 8px;
  font-size: 13px;
}
.version-drawer-assign-actions .primary-button { height: 34px; padding: 0 14px; white-space: nowrap; }
.version-drawer-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.version-drawer-header h3 { margin: 4px 0 0; font-size: 18px; }
.version-drawer-body { flex: 1; min-height: 0; overflow-y: auto; padding: 16px 20px 24px; }
.version-drawer-body .version-detail-aside { border: 0; padding: 0; background: transparent; }
.version-drawer-footer { flex-shrink: 0; display: flex; justify-content: flex-end; gap: 10px; padding: 12px 20px 16px; border-top: 1px solid var(--line); background: #fff; }
.version-drawer-footer[hidden] { display: none !important; }
.version-workload-banner { margin: 12px 0; padding: 12px 14px; border-radius: 8px; background: #f5f8fc; border: 1px solid #e0e8f2; font-size: 12px; line-height: 1.55; }
.version-workload-banner.is-warn { background: #fff8ef; border-color: #ffe0b8; }
.version-workload-banner.is-urgent { background: #fff5f5; border-color: #ffc9c9; }
.version-workload-banner b { display: block; margin-bottom: 4px; color: #2f4057; }
.version-workload-banner.is-urgent b { color: #c41d1d; }
.version-assign-pool { margin-top: 14px; padding-top: 12px; border-top: 1px solid #eef2f6; }
.version-assign-pool h4 { margin: 0 0 8px; font-size: 14px; }
.version-assign-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border-top: 1px solid #f0f2f5; }
.version-assign-row:first-of-type { border-top: 0; }
.version-assign-row b { display: block; font-size: 13px; }
.version-assign-row small { display: block; margin-top: 2px; color: #8aa0b8; font-size: 11px; }
.version-point-tag { margin-left: 4px; color: #1677ff; font-style: normal; font-weight: var(--weight-strong); }
.version-workload-assign { display: grid; gap: 10px; padding: 12px 14px; border-radius: 8px; background: #f8fafc; border: 1px solid #e6edf5; }
.version-workload-assign.is-compact { padding: 10px 12px; gap: 8px; }
.version-workload-suggest-row { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px 12px; }
.version-workload-suggest-row .secondary-button { flex-shrink: 0; }
.version-workload-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.version-workload-fields label span { display: block; margin-bottom: 4px; font-size: 12px; color: #5c6b7a; }
.version-workload-fields select,
.version-workload-fields input { width: 100%; }
.version-workload-preview b { color: #1677ff; }
.handoff-workload-panel { grid-column: 1 / -1; }
@media (max-width: 720px) {
  .version-workload-fields { grid-template-columns: 1fr; }
}
.version-form-actions { display: flex; justify-content: flex-end; margin-top: 12px; }
.version-published-note { margin: 12px 0; padding: 12px 14px; border-radius: 8px; background: #f0faf4; border: 1px solid #c8ebd4; }
.version-published-note b { color: #1a7f4b; }
.version-published-note p { margin: 6px 0 0; font-size: 12px; line-height: 1.55; color: #3d5c4a; }
.version-plan-readonly { margin: 12px 0; padding: 10px 12px; border-radius: 8px; background: #f8fbff; border: 1px solid #e0ecff; font-size: 12px; line-height: 1.55; color: #4f6278; }
.version-plan-admin { margin-top: 14px; padding-top: 12px; border-top: 1px solid #eef2f6; }
.version-plan-admin h4 { margin: 0 0 6px; font-size: 14px; }
#versionDrawer.drawer { display: flex; flex-direction: column; }
.settings-panel-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px 16px;
  flex-shrink: 0;
  padding: 12px 18px;
  border-top: 1px solid var(--line);
  background: linear-gradient(180deg, #fbfdff 0%, #fff 100%);
}
.settings-panel-footer-hint {
  flex: 1 1 220px;
  margin: 0;
  min-width: 0;
  color: #6f7f92;
  font-size: 12px;
  line-height: 1.5;
}
.settings-panel-footer .primary-button {
  height: 36px;
  padding: 0 18px;
  white-space: nowrap;
}
#settingsView .settings-main-body {
  padding: 16px 20px 24px;
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.version-detail-aside .version-detail-edit-grid { grid-template-columns: 1fr; gap: 10px; }
.version-detail-aside .version-detail-edit-grid label { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.version-detail-aside .version-detail-edit-grid label span { font-size: 12px; color: #607086; }
.version-detail-aside .version-detail-edit-grid input,
.version-detail-aside .version-detail-edit-grid select,
.version-detail-aside .version-detail-edit-grid textarea { width: 100%; min-width: 0; box-sizing: border-box; height: 38px; padding: 0 10px; border: 1px solid #dfe7f2; border-radius: 8px; font-size: 13px; }
.version-detail-aside .version-detail-edit-grid select { padding-right: 28px; appearance: auto; }
.version-detail-aside .version-detail-edit-grid textarea { min-height: 72px; height: auto; padding: 8px 10px; }
.version-detail-aside .task-member-picker { min-width: 0; }
.version-timeline-toolbar-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 12px; }
.version-timeline-add-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.version-new-form-panel { margin-top: 12px; padding: 14px 16px; border: 1px solid #dcecff; border-radius: 10px; background: #f8fbff; }
.version-inline-detail-panel { margin-top: 14px; padding: 14px 16px; border: 1px solid #e2e8f0; border-radius: 10px; background: #fff; }
.version-inline-detail-panel .version-detail-aside { margin: 0; }
.version-inline-actions { display: flex; justify-content: flex-end; margin-top: 12px; padding-top: 12px; border-top: 1px solid #eef2f6; }
.project-delete-impact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 12px 0 16px; }
.project-delete-impact article { padding: 10px 12px; border: 1px solid #e8edf3; border-radius: 8px; background: #f8fafc; text-align: center; }
.project-delete-impact article b { display: block; font-size: 18px; color: #13243a; }
.project-delete-impact article span { display: block; margin-top: 4px; font-size: 12px; color: #7b8798; }
.project-delete-impact article.is-warn { border-color: #ffd8bf; background: #fff7e6; }
.project-delete-impact article.is-warn b { color: #d46b08; }
.project-delete-option { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid #f0f2f5; cursor: pointer; }
.project-delete-option:last-child { border-bottom: 0; }
.project-delete-option input { margin-top: 4px; }
.project-delete-option b { display: block; font-size: 13px; }
.project-delete-option small { display: block; margin-top: 4px; color: #7b8798; line-height: 1.45; }
.project-delete-ack { display: flex; gap: 8px; align-items: flex-start; margin-top: 10px; padding: 10px 12px; border-radius: 8px; background: #fff7e6; border: 1px solid #ffe7ba; font-size: 12px; line-height: 1.45; }
.danger-text { color: #cf1322 !important; font-weight: var(--weight-strong); }
.danger-text:hover { color: #a8071a !important; }
.version-new-form-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 12px; }
.version-new-form-head h4 { margin: 0; font-size: 14px; }
.version-detail-aside { padding: 14px 16px; border: 1px solid #e8eef5; border-radius: 10px; background: #fff; }
.version-detail-aside h4 { margin: 0 0 8px; font-size: 14px; }
.version-detail-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 8px; }
.version-detail-head b { font-size: 16px; color: #2f4057; }
.version-detail-countdown { font-size: 12px; color: #607086; font-style: normal; white-space: nowrap; }
.version-detail-desc { margin: 0 0 10px; color: #4f6278; font-size: 13px; line-height: 1.55; }
.version-detail-meta { list-style: none; margin: 0 0 10px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; font-size: 12px; }
.version-detail-meta li { display: flex; flex-direction: column; gap: 2px; }
.version-detail-meta span { color: #8aa0b8; }
.version-detail-meta b { color: #2f4057; font-weight: 600; }
.version-detail-notes { margin: 0 0 10px; padding: 8px 10px; border-radius: 8px; background: #f5f8fc; font-size: 12px; line-height: 1.5; color: #4f6278; }
.version-detail-notes span { display: block; margin-bottom: 4px; color: #8aa0b8; font-weight: var(--weight-strong); }
.version-detail-stats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.version-detail-stats span { padding: 4px 8px; border-radius: 999px; background: #f2f6fb; color: #607086; font-size: 11px; font-weight: var(--weight-strong); }
.version-detail-edit { margin-top: 12px; border-top: 1px solid #eef2f6; padding-top: 10px; }
.version-detail-edit summary { cursor: pointer; font-size: 12px; font-weight: var(--weight-strong); color: #1677ff; }
.version-detail-edit-grid { margin-top: 10px; }
.version-metrics-compact { margin-bottom: 10px; }
.version-metrics-wrap,
.version-metrics-group,
.version-metrics-foot { display: none; }
.version-container-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 10px 0 12px; }
.version-metric { padding: 10px 8px; border-radius: 10px; border: 1px solid #e8eef5; background: #fbfdff; text-align: center; min-width: 0; }
.version-metric b { display: block; font-size: 20px; line-height: 1.1; color: #2f4057; }
.version-metric span { display: block; margin-top: 2px; font-size: 11px; font-weight: var(--weight-strong); color: #607086; }
.version-metric small { display: block; margin-top: 2px; font-size: 10px; color: #8aa0b8; line-height: 1.3; }
.version-drawer .version-metric { padding: 8px 4px; }
.version-drawer .version-metric b { font-size: 18px; }
.version-drawer .version-metric span { font-size: 10px; }
.version-drawer .version-metric small { font-size: 9px; }
.version-metric.bug b { color: #e25555; }
.version-metric.task b { color: #1677ff; }
.version-detail-countdown.is-overdue { color: #f14444; font-weight: var(--weight-strong); }
.version-delay-banner { margin: 10px 0; padding: 10px 12px; border-radius: 8px; background: #fff5f5; border: 1px solid #ffd4d4; }
.version-delay-banner.is-pending { background: #fff8ef; border-color: #ffe0b8; }
.version-delay-banner p { margin: 0 0 8px; font-size: 12px; color: #a33; }
.version-delay-banner small { display: block; font-size: 11px; color: #8a6a4a; line-height: 1.45; }
.version-delay-pending-list { display: flex; flex-direction: column; gap: 0; }
.version-delay-pending-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 4px; border-top: 1px solid #f0f2f5; font-size: 12px; }
.version-delay-pending-row:first-child { border-top: 0; }
.version-delay-pending-row.is-clickable { cursor: pointer; }
.version-delay-pending-row.is-clickable:hover { background: #f8fbff; }
.version-delay-pending-row b { display: block; color: #2f4057; }
.version-delay-pending-row small { display: block; margin-top: 2px; color: #8aa0b8; font-size: 11px; }
.version-delay-review-actions { display: flex; justify-content: flex-end; margin-top: 8px; }
.stats-version-delay-chart { display: flex; align-items: flex-end; gap: 10px; min-height: 160px; padding: 8px 4px 4px; }
.stats-version-delay-col { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.stats-version-delay-col i { display: block; width: 100%; max-width: 36px; border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, #ff9f43, #ff6b6b); min-height: 8px; }
.stats-version-delay-col b { font-size: 12px; color: #2f4057; }
.stats-version-delay-col span { font-size: 10px; color: #8aa0b8; text-align: center; line-height: 1.3; word-break: break-all; }
#managerVersionDelayChart .stats-version-delay-chart,
#bossVersionDelayChart .stats-version-delay-chart { min-height: 140px; }
#managerVersionDelayDonut .stats-donut-wrap,
#bossVersionDelayDonut .stats-donut-wrap { min-height: 180px; padding: 8px; }
.version-new-form-grid { grid-template-columns: 1fr 1fr; }
#settingsView .settings-main-body { padding: 14px 18px 20px; }
.project-logo-thumb { width: 28px; height: 28px; border-radius: 6px; object-fit: cover; vertical-align: middle; margin-right: 0; border: 1px solid #e8eef5; }
.project-logo-upload input[type="file"] { font-size: 12px; }
.project-logo-preview { display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; margin-top: 8px; border-radius: 10px; border: 1px dashed #d5deea; background: #f8fbff; overflow: hidden; }
.project-logo-preview img { width: 100%; height: 100%; object-fit: cover; }
.settings-maintain-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 14px; }
.settings-maintain-table td, .settings-maintain-table th { font-size: var(--font-page-sm); vertical-align: middle; }
.settings-maintain-table--sla input[type="number"],
.settings-maintain-table--sla input[type="text"] { font-size: var(--font-page-sm); padding: 4px 8px; border: 1px solid #dfe7f2; border-radius: 6px; }
.settings-maintain-intro { margin: 10px 0 4px; color: #5a6a85; font-size: var(--font-page-sm); line-height: 1.65; }
.settings-maintain-intro > p { margin: 0 0 10px; }
.settings-rule-legend { margin: 0 0 12px; padding-left: 18px; }
.settings-rule-legend li { margin-bottom: 6px; }
.settings-rule-legend code { font-size: 12px; padding: 1px 5px; border-radius: 4px; background: #f0f4fa; color: #2f4057; }
.scope-rule-inline { margin: 12px 0 4px; padding: 12px 14px; border-radius: 10px; border: 1px solid #e8eef5; background: #f8fbff; }
.scope-rule-inline h5 { margin: 0 0 6px; font-size: 14px; color: #2f4057; }
.scope-rule-lead { margin: 0 0 10px; font-size: 12px; color: #8aa0b8; }
.scope-rule-fields { gap: 10px; }
.settings-maintain-table--sla .escalation-cell { min-width: 168px; }
.settings-maintain-table--sla .escalation-hint { display: block; margin-top: 4px; font-size: 10px; color: #8aa0b8; line-height: 1.35; }
tr.is-version-delay-approval,
.task-work-card.is-version-delay-approval,
.xm-priority-row.is-version-delay-approval { background: #fff8ef; }
tr.is-version-delay-approval td:first-child { font-weight: 600; }
.settings-maintain-table select { min-width: 132px; }
.company-integration-panel { display: grid; gap: 14px; }
.company-project-hub,
.org-space-hub { display: grid; gap: 0; min-height: min(72vh, 680px); }
.org-space-hub .cph-layout { min-height: min(72vh, 680px); }
.cph-tenants,
.cph-projects {
  padding: 14px 12px;
  position: sticky;
  top: 0;
  max-height: min(72vh, 680px);
}
.cph-sidebar-lead {
  margin: -4px 0 10px;
  font-size: 12px;
  color: #8ca3bb;
  line-height: 1.45;
}
.cph-sidebar-divider {
  height: 1px;
  margin: 12px 2px 10px;
  background: linear-gradient(90deg, transparent, #e8eef5 20%, #e8eef5 80%, transparent);
}
.cph-platform-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: 1px dashed #c5d9f5;
  border-radius: 8px;
  background: #f8fbff;
  color: #4f6278;
  text-align: left;
  cursor: pointer;
}
.cph-platform-item:hover { border-color: #91caff; background: #eef6ff; }
.cph-platform-item.active { border-style: solid; border-color: #9ec5ff; background: #eef6ff; color: #1677ff; }
.cph-platform-item-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: #dcecff;
  color: #1677ff;
  font-size: 14px;
  flex-shrink: 0;
}
.cph-platform-item-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cph-platform-item-copy b { font-size: 13px; line-height: 1.35; }
.cph-platform-item-copy small { font-size: 11px; color: #8ca3bb; line-height: 1.35; }
.cph-platform-item.active .cph-platform-item-copy small { color: #5b9dff; }
.cph-projects--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fafcff;
  border-style: dashed;
}
.org-space-empty-state {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: 28px 24px;
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: linear-gradient(180deg, #fbfdff 0%, #fff 100%);
}
.org-space-empty-state h4 { margin: 0; font-size: 18px; color: #2f4057; }
.org-space-empty-state p { margin: 0; max-width: 520px; color: #607086; font-size: 13px; line-height: 1.55; }
.org-space-section {
  padding: 14px 0;
  border-bottom: 1px solid #f0f3f7;
}
.org-space-section:last-child { border-bottom: 0; padding-bottom: 0; }
.org-space-section--actions { padding-top: 8px; }
.org-space-section--actions .cph-detail-actions-bar { margin-top: 0; padding-top: 0; border-top: 0; }
.org-space-section-head { margin-bottom: 12px; }
.org-space-section-head h6 { margin: 0 0 4px; font-size: 14px; color: #2f4057; }
.org-space-section-head p { margin: 0; font-size: 12px; color: #8ca3bb; line-height: 1.5; }
.org-space-action-row { display: flex; flex-wrap: wrap; gap: 8px; }
.org-invite-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 14px;
  margin-bottom: 8px;
}
.org-invite-grid label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: #5a6a85; font-weight: 600; }
.org-invite-grid label.wide { grid-column: 1 / -1; }
.org-invite-code {
  display: inline-block;
  padding: 6px 10px;
  border-radius: 6px;
  background: #f0f4fa;
  font-size: 13px;
}
.org-space-fields { display: grid; gap: 10px; }
.org-platform-tabs {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
  padding: 0 16px 12px;
  border-bottom: 1px solid #eef2f6;
}
.org-platform-tab {
  height: 32px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #607086;
  font-size: 13px;
  cursor: pointer;
}
.org-platform-tab:hover { background: #f5f8fc; color: #1677ff; }
.org-platform-tab.is-active {
  border-color: #dbeafe;
  background: #eef6ff;
  color: #1677ff;
  font-weight: 600;
}
.org-platform-body { padding-top: 4px; }
.org-cross-grant-bar {
  display: grid;
  grid-template-columns: minmax(140px, 1fr) minmax(140px, 1fr) minmax(160px, 1.2fr) auto;
  gap: 10px 12px;
  align-items: end;
  margin-bottom: 14px;
  padding: 12px 14px;
  border-radius: 10px;
  background: #f8fbff;
  border: 1px solid #e8eef5;
}
.org-cross-grant-bar label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: #5a6a85; font-weight: 600; }
.org-cross-grant-bar select,
.org-cross-grant-bar input {
  height: 34px;
  padding: 0 10px;
  border: 1px solid #d9e3ef;
  border-radius: 6px;
  font-size: 13px;
  background: #fff;
}
.org-cross-grant-bar .primary-button { height: 34px; white-space: nowrap; }
.org-cross-grants-wrap {
  border: 1px solid #eef2f6;
  border-radius: 10px;
  overflow: hidden;
}
.org-cross-grants-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px;
  background: #f7f9fc;
  border-bottom: 1px solid #eef2f6;
  font-size: 12px;
  color: #607086;
}
.org-cross-grants-head b { color: #2f4057; font-size: 13px; }
.org-cross-grants-body { padding: 8px 10px 10px; max-height: 280px; overflow-y: auto; }
.org-cross-grants-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.org-cross-grants-table th,
.org-cross-grants-table td { padding: 8px 10px; border-bottom: 1px solid #f0f3f7; text-align: left; }
.org-cross-grants-table th { color: #607086; font-weight: 600; background: #fafcff; }
.cph-detail-empty p { margin: 0 0 6px; }
.cph-detail-empty p:last-child { margin: 0; color: #8ca3bb; font-size: 12px; }
.company-project-hub .scope-rule-inline,
.company-project-hub .company-cross-company-section { display: none !important; }
.cph-layout--stacked {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: min(72vh, 680px);
}
.cph-layout--stacked .cph-workspace.cph-split {
  flex: 1;
  min-height: 0;
}
.cph-layout--triple { grid-template-columns: minmax(200px, 220px) minmax(0, 1fr); }
.cph-tenant-band {
  padding: 14px 16px 16px;
  flex-shrink: 0;
}
.cph-tenant-band-head { margin-bottom: 12px; }
.cph-tenant-band-head h4 { margin: 2px 0 4px; font-size: 15px; color: #2f4057; }
.cph-tenant-band-head .cph-sidebar-lead { margin: 0; }
.cph-tenant-list.cph-tenant-list--horizontal {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 10px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 2px 2px 6px;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
}
.cph-tenant-band-row {
  display: flex;
  align-items: stretch;
  gap: 12px;
  min-width: 0;
  min-height: 96px;
}
.cph-tenant-list:not(.cph-tenant-list--horizontal),
.cph-project-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 2px;
}
.cph-tenant-list.cph-tenant-list--horizontal .cph-tenant-card {
  flex: 0 0 auto;
  width: min(196px, 40vw);
  min-height: 88px;
  justify-content: space-between;
}
.cph-tenant-list.cph-tenant-list--horizontal .cph-tenant-add-card {
  flex: 0 0 auto;
  align-self: stretch;
  min-height: 88px;
}
.cph-tenant-band-actions {
  display: flex;
  flex-shrink: 0;
  gap: 10px;
  align-items: stretch;
  margin-left: auto;
}
.cph-tenant-band-actions:empty { display: none; }
.cph-platform-item--card {
  width: auto;
  min-width: 168px;
  max-width: 200px;
  flex-shrink: 0;
  min-height: 88px;
  align-items: center;
}
.cph-tenant-add-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 132px;
  max-width: 148px;
  padding: 12px 14px;
  border: 2px dashed #91caff;
  border-radius: 10px;
  background: linear-gradient(180deg, #f8fbff 0%, #fff 100%);
  color: #1677ff;
  cursor: pointer;
  flex-shrink: 0;
  text-align: center;
  font: inherit;
}
.cph-tenant-add-card:hover {
  border-color: #1677ff;
  background: #eef6ff;
  box-shadow: 0 2px 8px rgba(22, 119, 255, 0.12);
}
.cph-tenant-add-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #dcecff;
  font-size: 22px;
  font-weight: 600;
  line-height: 1;
}
.cph-tenant-add-copy { display: flex; flex-direction: column; gap: 2px; }
.cph-tenant-add-copy b { font-size: 13px; line-height: 1.3; }
.cph-tenant-add-copy small { font-size: 11px; color: #5b9dff; line-height: 1.3; }
.cph-layout--dual { grid-template-columns: minmax(0, 1fr); }
.cph-workspace.cph-split {
  display: grid;
  grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
  gap: 14px;
  min-height: 0;
}
.cph-tenants,
.cph-projects,
.cph-detail {
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.cph-sidebar-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}
.cph-sidebar-toolbar .panel-kicker { margin: 0; }
.cph-add-btn { height: 28px; padding: 0 10px; font-size: 12px; white-space: nowrap; }
.cph-tenants h4,
.cph-projects h4 { margin: 4px 0 8px; font-size: 15px; color: #2f4057; }
.cph-projects-sub { display: block; margin: -4px 0 8px; font-size: 12px; color: #8ca3bb; }
.cph-tenant-list:not(.cph-tenant-list--horizontal),
.cph-project-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 2px;
}
.cph-tenant-item,
.cph-project-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 10px 12px;
  border: 1px solid #e8eef5;
  border-radius: 8px;
  background: #fff;
  color: #4f6278;
  font-size: 13px;
  font-weight: var(--weight-strong);
  cursor: pointer;
  text-align: left;
}
.cph-tenant-list:not(.cph-tenant-list--horizontal) .cph-tenant-item,
.cph-project-list .cph-project-item {
  width: 100%;
}
.cph-tenant-list.cph-tenant-list--horizontal .cph-tenant-item {
  width: auto;
}
.cph-tenant-card {
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.cph-tenant-card:hover {
  box-shadow: 0 2px 8px rgba(22, 119, 255, 0.08);
}
.cph-tenant-card.active {
  box-shadow: 0 0 0 1px #9ec5ff, 0 2px 10px rgba(22, 119, 255, 0.12);
}
.cph-tenant-item:hover,
.cph-project-item:hover { border-color: #c5d9f5; background: #f8fbff; }
.cph-tenant-item.active,
.cph-project-item.active { border-color: #9ec5ff; color: #1677ff; background: #eef6ff; }
.cph-tenant-item-title,
.cph-project-item-head {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-width: 0;
  line-height: 1.35;
}
.cph-project-item-head b {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cph-tenant-item-meta,
.cph-project-item-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 11px;
  font-weight: 600;
  color: #8ca3bb;
}
.cph-tenant-item.active .cph-tenant-item-meta,
.cph-project-item.active .cph-project-item-meta { color: #5b9dff; }
.cph-project-logo,
.cph-project-hero-logo { width: 22px; height: 22px; border-radius: 6px; flex-shrink: 0; }
.cph-project-hero-logo { width: 40px; height: 40px; border-radius: 10px; }
.cph-empty-hint { padding: 16px 8px; text-align: center; color: #8b98a8; font-size: 12px; line-height: 1.5; }
.cph-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 10px;
  border-bottom: 1px solid #eef2f6;
  flex-shrink: 0;
}
.cph-detail-kicker { margin: 0 0 4px; font-size: 11px; letter-spacing: .08em; color: #8ca3bb; }
.cph-detail-head h5 { margin: 0; font-size: 16px; color: #2f4057; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cph-detail-sub { display: block; margin-top: 4px; font-size: 12px; color: #8ca3bb; }
.cph-detail-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 14px 16px 16px;
}
.cph-detail-empty {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  text-align: center;
  color: #8b98a8;
  font-size: 13px;
}
.cph-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 14px;
}
.cph-form-grid label,
.cph-form-grid--project label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
  color: #5a6a85;
  font-weight: 600;
}
.cph-form-grid label.wide { grid-column: 1 / -1; }
.cph-form-grid input,
.cph-form-grid select,
.cph-form-grid--project input,
.cph-form-grid--project select {
  height: 34px;
  padding: 0 10px;
  border: 1px solid #d9e3ef;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 400;
  color: rgba(0, 0, 0, .88);
  background: #fff;
}
.cph-form-grid input[readonly] { background: #f8fafc; color: #607086; }
.cph-inline-field { display: flex; align-items: center; gap: 6px; }
.cph-inline-field input { flex: 1; min-width: 0; }
.project-knowledge-card h4 { margin: 0 0 6px; font-size: 15px; }
.project-knowledge-doc-list { margin: 10px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.project-knowledge-doc-list li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #e8eef5; border-radius: 8px; background: #fafcff; font-size: 13px; }
.project-knowledge-doc-list small { color: #7a8799; }
.project-knowledge-summary { display: grid; gap: 8px; font-size: 13px; color: #334155; }
.project-knowledge-summary p { margin: 0; line-height: 1.5; }
.project-knowledge-upload input[type="file"] { height: auto; padding: 8px 0; border: none; background: transparent; }
.cph-meta-line { margin: 12px 0 0; font-size: 12px; color: #6b7f97; line-height: 1.5; }
.cph-details {
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid #eef2f6;
  border-radius: 8px;
  background: #fafcff;
  font-size: 12px;
  color: #5a6a85;
}
.cph-details summary { cursor: pointer; font-weight: 600; color: #334155; }
.cph-details .secondary-button { margin-top: 10px; margin-right: 8px; }
.cph-project-hero {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #eef2f6;
}
.cph-project-hero h5 { margin: 0; font-size: 17px; color: #2f4057; }
.cph-project-hero-meta { margin: 4px 0 0; font-size: 12px; color: #607086; }
.cph-detail-actions-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #eef2f6;
}
.cph-danger-btn { color: #cf1322; border-color: #ffa39e; }
.cph-danger-btn:hover { color: #a8071a; background: #fff1f0; }
.company-project-hub .scope-rule-inline { margin-top: 4px; }
.company-project-hub .company-cross-company-section { margin-top: 4px; }
.company-integration-list { display: grid; gap: 14px; }
.company-integration-card {
  border: 1px solid #dfe7f2;
  border-radius: 12px;
  background: #fff;
  padding: 16px 18px;
  box-shadow: 0 1px 2px rgba(16, 42, 67, 0.04);
}
.company-integration-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.company-integration-card-head h4 { margin: 0; font-size: 16px; }
.company-integration-card-head small { display: block; margin-top: 4px; color: #6b7f97; font-size: 12px; }
.company-integration-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px 14px;
}
.company-integration-card-grid label { display: grid; gap: 6px; font-size: 12px; color: #5a6a85; }
.company-integration-card-grid input,
.company-integration-card-grid select {
  width: 100%;
  padding: 6px 10px;
  border: 1px solid #dfe7f2;
  border-radius: 8px;
  font-size: 13px;
  color: #1f2a37;
  background: #fff;
}
.company-integration-meta { margin: 10px 0 0; color: #6b7f97; font-size: 12px; line-height: 1.5; }
.company-integration-wecom { margin-top: 10px; font-size: 12px; color: #5a6a85; }
.company-integration-wecom summary { cursor: pointer; font-weight: 600; color: #334155; }
.company-integration-card-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #edf2f7;
}
.settings-layout-full .settings-main-body:has(.org-space-hub) {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 16px 20px 20px;
}
.settings-layout-full .org-space-hub { flex: 1; min-height: 0; }
.settings-layout-full .role-perm-split { min-height: 0; flex: 1; }
.settings-layout-full .settings-metric-grid { grid-template-columns: repeat(4, minmax(140px, 1fr)); }
.table-actions { white-space: nowrap; }
.settings-nav-item.settings-nav-external { color: #5a6a85; }
.settings-nav-item.settings-nav-external i { background: #eef6ff; color: #1677ff; }
.settings-nav-item.settings-nav-external::after { content: "↗"; margin-left: auto; font-size: 11px; color: #8aa0b8; }
.settings-nav { position: sticky; top: 12px; padding: 0; overflow: hidden; }
.settings-nav-brand { padding: 18px 16px 12px; border-bottom: 1px solid var(--line); }
.settings-nav-brand h3 { margin: 4px 0 6px; font-size: 18px; }
.settings-nav-brand small { color: var(--muted); font-size: 11px; line-height: 1.5; }
.settings-nav-list { display: flex; flex-direction: column; gap: 2px; padding: 10px 8px 14px; max-height: calc(100vh - 180px); overflow-y: auto; }
.settings-nav-group { margin: 12px 10px 4px; color: #9aa7b6; font-size: 11px; font-weight: var(--weight-strong); letter-spacing: .4px; }
.settings-nav-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border: 0; border-radius: 8px; color: #4f6278; background: transparent; text-align: left; font-size: 13px; font-weight: 600; cursor: pointer; }
.settings-nav-item i { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 7px; background: #f2f6fb; color: #5f738a; font-size: 12px; font-style: normal; font-weight: var(--weight-display); }
.settings-nav-item:hover { background: #f5f8fc; color: #2f4057; }
.settings-nav-item.active { background: #eef6ff; color: #1677ff; }
.settings-nav-item.active i { background: #dcecff; color: #1677ff; }
.settings-main { min-height: 640px; padding: 0; overflow: hidden; }
.settings-main-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 20px 22px 14px; border-bottom: 1px solid var(--line); }
.settings-main-head h2 { margin: 4px 0 0; font-size: 22px; }
.settings-main-desc { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; max-width: 720px; }
.settings-main-actions { display: flex; gap: 8px; flex-shrink: 0; }
.settings-main-body { padding: 18px 22px 24px; }
.settings-section { margin-bottom: 18px; }
.settings-section > h4 { margin: 0 0 10px; font-size: var(--font-page-lg); }
.settings-section > p { margin: 0 0 12px; color: var(--muted); font-size: var(--font-page-sm); line-height: 1.55; }
.settings-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.settings-metric-card { padding: 14px 16px; border: 1px solid #e8eef5; border-radius: 10px; background: #fbfdff; }
.settings-metric-card b { display: block; font-size: 22px; color: #2f4057; }
.settings-metric-card span { display: block; margin-top: 4px; color: #7a8798; font-size: 12px; font-weight: var(--weight-strong); }
.settings-metric-card small { display: block; margin-top: 6px; color: #9aa7b6; font-size: 11px; line-height: 1.45; }
.settings-metric-card.is-good { border-color: #c8ebd8; background: linear-gradient(180deg, #f6fffa 0%, #fbfdff 100%); }
.settings-metric-card.is-good b { color: #13a06b; }
.settings-metric-card.warn { border-color: #ffe8c8; background: linear-gradient(180deg, #fffaf3 0%, #fbfdff 100%); }
.settings-metric-card.warn b { color: #e98000; }
.settings-metric-card.danger { border-color: #ffd4d4; background: linear-gradient(180deg, #fff8f8 0%, #fbfdff 100%); }
.settings-metric-card.danger b { color: #f14444; }
.version-metrics-wrap { margin-bottom: 12px; }
.version-metrics-group { margin-bottom: 10px; }
.version-metrics-group-title { margin: 0 0 8px; font-size: 12px; font-weight: var(--weight-display); color: #607086; letter-spacing: .2px; }
.version-metrics-health .settings-metric-card { min-height: 88px; }
.version-metrics-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 10px 12px; border: 1px solid #e8eef5; border-radius: 10px; background: #f8fbff; font-size: 12px; color: #607086; }
.version-metrics-score b { font-size: 18px; margin-left: 4px; color: #2f4057; }
.version-metrics-score.is-good b { color: #13a06b; }
.version-metrics-score.warn b { color: #e98000; }
.version-metrics-score.danger b { color: #f14444; }
.version-metrics-foot-note { color: #9aa7b6; font-size: 11px; }
.settings-project-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.settings-project-tabs button { height: 34px; padding: 0 14px; border: 1px solid #dfe7f2; border-radius: 999px; background: #fff; color: #607086; font-size: 12px; font-weight: var(--weight-strong); cursor: pointer; }
.settings-project-tabs button.active { border-color: #b9d6ff; color: #1677ff; background: #eef6ff; }
.version-detail-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr); gap: 14px; align-items: start; }
.version-detail-table .version-row { cursor: pointer; }
.version-detail-table .version-row.active td { background: #f3f8ff; }
.version-detail-table .version-row:hover td { background: #f8fbff; }
.version-editor-card { padding: 16px; border: 1px solid #e8eef5; border-radius: 10px; background: #fbfdff; }
.version-editor-card h4 { margin: 0 0 12px; font-size: 15px; }
.version-task-mini { margin-top: 12px; border-top: 1px solid #edf2f8; padding-top: 12px; }
.version-task-mini .section-title-line { margin-bottom: 8px; }
.version-status-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.version-status-pills span { padding: 3px 8px; border-radius: 999px; background: #f2f6fb; color: #607086; font-size: 11px; font-weight: var(--weight-strong); }
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.settings-inline-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.settings-wizard { display: grid; grid-template-columns: minmax(0, 1fr) 200px; gap: 16px; align-items: start; }
.settings-wizard-lead { margin: 0 0 16px; padding: 12px 14px; border-radius: 10px; background: linear-gradient(90deg, #f6f3ff 0%, #f3f8ff 100%); border: 1px solid #e8e0f5; color: #4a5568; font-size: 13px; line-height: 1.6; }
.settings-wizard-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.settings-wizard-step { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; padding: 14px 16px; border: 1px solid #e8eef5; border-radius: 12px; background: #fff; position: relative; }
.settings-wizard-step::before { content: ""; position: absolute; left: 33px; top: 100%; width: 2px; height: 10px; background: #dfe7f2; }
.settings-wizard-step:last-child::before { display: none; }
.settings-wizard-step .step-num { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: #f2f6fb; color: #607086; font-size: 14px; font-weight: var(--weight-display); flex-shrink: 0; }
.settings-wizard-step.is-done .step-num { background: #e8f7ee; color: #1a8f4a; }
.settings-wizard-step.is-warn .step-num { background: #fff4e6; color: #c97800; }
.settings-wizard-step.is-todo .step-num { background: #f2f6fb; color: #8aa0b8; }
.settings-wizard-step h4 { margin: 0 0 4px; font-size: 15px; color: #2f4057; }
.settings-wizard-step p { margin: 0 0 10px; color: #7a8798; font-size: 12px; line-height: 1.55; }
.settings-wizard-step-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.settings-wizard-badge { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: var(--weight-strong); }
.settings-wizard-step.is-done .settings-wizard-badge { background: #e8f7ee; color: #1a8f4a; }
.settings-wizard-step.is-warn .settings-wizard-badge { background: #fff4e6; color: #c97800; }
.settings-wizard-step.is-todo .settings-wizard-badge { background: #f2f6fb; color: #8aa0b8; }
.settings-wizard-step .text-button { font-size: 12px; font-weight: var(--weight-strong); }
.settings-wizard-step-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.settings-wizard-progress { padding: 16px; border: 1px solid #e8e0f5; border-radius: 12px; background: linear-gradient(180deg, #f6f3ff 0%, #fff 100%); text-align: center; position: sticky; top: 12px; }
.settings-wizard-progress b { display: block; font-size: 32px; color: #6b4ce6; line-height: 1.1; }
.settings-wizard-progress span { display: block; margin-top: 6px; color: #7a8798; font-size: 12px; }
.settings-wizard-progress small { display: block; margin-top: 12px; color: #9aa7b6; font-size: 11px; line-height: 1.5; text-align: left; }
.settings-wizard-tip { margin-top: 14px; padding: 14px 16px; border: 1px dashed #d8dee8; border-radius: 10px; background: #fbfdff; }
.settings-wizard-tip h4 { margin: 0 0 6px; font-size: 14px; }
.settings-wizard-tip p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }

/* 反馈接入设置 */
#settingsView .fb-api-settings { --fb-accent: #6b4ce6; }
.fb-api-intro {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px 24px;
  margin-bottom: 14px;
  padding: 18px 20px;
  border-color: #e8e0f5;
  background: linear-gradient(135deg, #faf8ff 0%, #f6f9ff 55%, #fbfdff 100%);
}
.fb-api-intro-copy h4 { margin: 6px 0 8px; font-size: 18px; color: #2f4057; }
.fb-api-intro-copy p { max-width: 560px; line-height: 1.6; }
.fb-api-kicker {
  margin: 0;
  color: var(--fb-accent);
  font-size: 10px;
  font-weight: var(--weight-display);
  letter-spacing: .14em;
}
.fb-api-intro-badges { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }
.fb-api-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border: 1px solid #dfe7f2;
  border-radius: 999px;
  background: #fff;
  color: #607086;
  font-size: 11px;
  font-weight: var(--weight-strong);
}
.fb-api-status.is-on { border-color: #c8ebd8; background: #f0faf5; color: #138f5a; }
.fb-api-status.is-on::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #13a06b; }
.fb-api-status.is-muted { opacity: .85; }
.fb-api-metrics { margin-bottom: 18px; }
.fb-api-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.fb-api-panel {
  padding: 16px 18px;
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(18,45,82,.03);
}
.fb-api-panel--wide { grid-column: 1 / -1; }
.fb-api-panel-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 16px;
  margin-bottom: 14px;
}
.fb-api-panel-head h5 { margin: 0 0 6px; font-size: 15px; color: #2f4057; }
.fb-api-panel-head p { margin: 0; max-width: 520px; color: #7a8798; font-size: 12px; line-height: 1.55; }
.fb-api-panel-head code { padding: 1px 5px; border-radius: 4px; background: #f2f6fb; color: #4a5568; font-size: 11px; }
.fb-api-pill-group {
  display: inline-flex;
  padding: 3px;
  border: 1px solid #dfe7f2;
  border-radius: 999px;
  background: #f5f8fc;
}
.fb-api-pill {
  min-width: 52px;
  height: 30px;
  padding: 0 14px;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: #7a8798;
  font-size: 12px;
  font-weight: var(--weight-strong);
  cursor: pointer;
  transition: background .15s, color .15s, box-shadow .15s;
}
.fb-api-pill:hover { color: #2f4057; }
.fb-api-pill.active {
  background: var(--fb-accent);
  color: #fff;
  box-shadow: 0 2px 8px rgba(107,76,230,.25);
}
.fb-api-endpoint {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  padding: 10px 12px;
  border: 1px solid #e3eaf2;
  border-radius: 10px;
  background: linear-gradient(180deg, #f8fbff 0%, #f3f7fc 100%);
}
.fb-api-method {
  flex-shrink: 0;
  padding: 4px 8px;
  border-radius: 6px;
  background: #6b4ce6;
  color: #fff;
  font-size: 10px;
  font-weight: var(--weight-display);
  letter-spacing: .06em;
}
.fb-api-url {
  flex: 1;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  color: #334155;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  line-height: 1.45;
  word-break: break-all;
}
.fb-api-endpoint .secondary-button {
  flex-shrink: 0;
  height: 30px;
  padding: 0 12px;
  border-radius: 8px;
  font-size: 12px;
}
.fb-api-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}
.fb-api-settings .create-meta-field input {
  width: 100%;
  min-height: 36px;
  padding: 7px 11px;
  border: 1px solid #e3eaf2;
  border-radius: 8px;
  color: #13243a;
  background: #fff;
  font-size: 13px;
  box-sizing: border-box;
  transition: border-color .15s, box-shadow .15s;
}
.fb-api-settings .create-meta-field input:focus {
  border-color: #b9a8f0;
  outline: none;
  box-shadow: 0 0 0 3px rgba(107,76,230,.1);
}
.fb-api-token-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fb-api-token-row input { flex: 1; min-width: 180px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; }
.fb-api-token-row .secondary-button { height: 36px; padding: 0 12px; font-size: 12px; border-radius: 8px; }
.fb-api-sample {
  margin-top: 14px;
  border: 1px dashed #dfe7f2;
  border-radius: 10px;
  background: #fbfdff;
}
.fb-api-sample summary {
  padding: 10px 12px;
  color: #607086;
  font-size: 12px;
  font-weight: var(--weight-strong);
  cursor: pointer;
  user-select: none;
}
.fb-api-sample summary:hover { color: #2f4057; }
.fb-api-code {
  margin: 0;
  padding: 0 12px 12px;
  color: #475569;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
}
.fb-api-channel-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.fb-api-channel-card {
  padding: 14px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #fbfdff;
  transition: border-color .15s, opacity .15s;
}
.fb-api-channel-card.is-disabled { opacity: .62; border-style: dashed; }
.fb-api-channel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.fb-api-channel-index {
  color: #607086;
  font-size: 11px;
  font-weight: var(--weight-display);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.fb-api-channel-head-actions { display: flex; align-items: center; gap: 6px; }
.fb-api-switch {
  position: relative;
  display: inline-block;
  width: 38px;
  height: 22px;
  flex-shrink: 0;
  cursor: pointer;
}
.fb-api-switch input { display: none; }
.fb-api-switch .switch-track { position: absolute; inset: 0; border-radius: 14px; background: #cad2de; transition: .2s; }
.fb-api-switch .switch-track::after {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  content: "";
  transition: .2s;
  box-shadow: 0 1px 2px rgba(0,0,0,.12);
}
.fb-api-switch input:checked + .switch-track { background: #13a06b; }
.fb-api-switch input:checked + .switch-track::after { left: 19px; }
.fb-api-channel-remove {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid #e3eaf2;
  border-radius: 8px;
  background: #fff;
  color: #8aa0b8;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition: border-color .15s, color .15s, background .15s;
}
.fb-api-channel-remove:hover { border-color: #ffd4d4; background: #fff8f8; color: #f14444; }
.fb-api-channel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.fb-api-channel-grid .create-meta-wide { grid-column: 1 / -1; }
.fb-api-tip { margin-top: 16px; border-color: #e8e0f5; background: linear-gradient(90deg, #faf8ff 0%, #fbfdff 100%); }
@media (max-width: 960px) {
  .fb-api-layout, .fb-api-field-grid, .fb-api-channel-grid { grid-template-columns: 1fr; }
  .fb-api-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .settings-wizard { grid-template-columns: 1fr; }
  .settings-wizard-progress { position: static; }
}
.setting-body { padding: 0 18px 10px; }
.setting-row { display: flex; justify-content: space-between; align-items: center; padding: 13px 0; border-top: 1px solid #f0f2f5; }
.setting-row b, .setting-row small { display: block; }.setting-row small { color: var(--muted); font-size: 11px; }
.switch { position: relative; width: 38px; height: 22px; flex-shrink: 0; }
.switch input { display: none; }
.switch-track { position: absolute; inset: 0; border-radius: 14px; background: #cad2de; transition: .2s; }
.switch-track::after { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; content: ""; transition: .2s; }
.switch input:checked + .switch-track { background: var(--green); }
.switch input:checked + .switch-track::after { left: 19px; }
.flow-arrow { display: inline-block; color: #b2bdca; font-size: 18px; font-weight: var(--weight-strong); line-height: 1; user-select: none; }
.flow-arrow::before { content: "→"; }
.settings-org-guide { margin-top: 14px; padding: 14px 16px; border-radius: 10px; background: #f7f9fc; border: 1px solid #e8eef5; }
.settings-org-guide h4 { margin: 0 0 8px; font-size: 14px; }
.settings-org-guide p { margin: 0 0 8px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.settings-org-guide p:last-child { margin-bottom: 0; }
.role-list { padding: 0 18px 10px; }.role-list p { display: flex; justify-content: space-between; margin: 0; padding: 10px 0; border-top: 1px solid #f0f2f5; font-size: 12px; }.role-list span { color: var(--muted); }
.floating-create-button { position: fixed; top: 92px; right: 28px; z-index: 20; height: 42px; padding: 0 22px; border-radius: 9px; color: #fff; background: #1677ff; box-shadow: 0 12px 24px rgba(22,119,255,.24); font-size: 14px; font-weight: var(--weight-display); }
.floating-create-button:hover { background: #0f68e6; transform: translateY(-1px); }
.task-page-layout { display: grid; grid-template-columns: minmax(0, 1fr) var(--layout-aside-width); gap: var(--layout-page-gap); align-items: start; margin-top: 4px; }
.task-page-main { display: flex; min-width: 0; flex-direction: column; gap: 16px; }
.task-page-aside { display: flex; flex-direction: column; gap: 14px; min-width: 0; width: 100%; height: auto; align-self: start; position: sticky; top: 12px; z-index: 2; max-height: calc(100vh - 24px); overflow-x: hidden; overflow-y: auto; box-sizing: border-box; -webkit-overflow-scrolling: touch; }
#tasksView .task-page-aside > .task-aside-panel:first-child .task-aside-head {
  padding-top: 2px;
  min-height: 41px;
}
#tasksView.view {
  padding-top: 0;
}
#tasksView .task-page-layout {
  margin-top: clamp(14px, 0.72vw + 10px, 22px);
}
#tasksView .task-page-main,
#tasksView .task-list-toolbar,
#tasksView .task-filter-bar,
#tasksView .task-list-panel,
#tasksView .task-card-grid-wrap,
#tasksView .task-card-grid,
#tasksView #taskCardGrid,
#tasksView #taskCardGridHead { max-height: none !important; height: auto !important; overflow: visible !important; }
#tasksView .task-list-panel { border-color: #e7eef8; background: rgba(255,255,255,.88); box-shadow: 0 14px 36px rgba(11,36,70,.05); }
#tasksView .task-list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid #e8eef5;
  background: transparent;
}
#tasksView .task-list-toolbar-search {
  flex: 0 0 260px;
  min-width: 180px;
  max-width: 320px;
}
#tasksView .task-list-toolbar-search label {
  display: block;
  width: 100%;
  margin: 0;
}
#tasksView .task-list-toolbar-search label span { display: none; }
#tasksView .task-list-toolbar-filters {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 1 1 auto;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
  padding: 0;
  border-bottom: 0;
}
#tasksView .task-list-toolbar-filters label span { display: none; }
#tasksView .task-list-toolbar-filters input,
#tasksView .task-list-toolbar-filters select,
#tasksView .task-list-toolbar-search input {
  width: 100%;
  height: 40px;
  border: 1px solid #dfe7f2;
  border-radius: 8px;
  background: #fff;
  color: #2f4057;
  font-size: 13px;
  box-sizing: border-box;
}
#tasksView .task-list-toolbar-filters label { width: 128px; margin: 0; }
#tasksView .task-list-toolbar-filters label.task-time-field { width: 108px; }
#tasksView .task-list-toolbar-filters label.task-date-range-field { width: auto; min-width: 220px; }
#tasksView .task-list-toolbar-filters .task-date-field input { width: 108px; }
#tasksView .task-list-toolbar-filters .secondary-button {
  height: 40px;
  min-width: 72px;
  border-radius: 8px;
  font-weight: var(--weight-strong);
}
#tasksView .task-list-toolbar-filters #exportTaskList { min-width: 108px; white-space: nowrap; }
#tasksView .task-filter-bar { border-color: #e7eef8; background: rgba(255,255,255,.88); box-shadow: 0 14px 36px rgba(11,36,70,.05); }
#tasksView .task-filter-bar .filter-bar { align-items: center; padding: 16px 18px 18px; border-bottom: 0; background: transparent; }
#tasksView .task-filter-bar .filter-bar label span { display: none; }
#tasksView .task-filter-bar .filter-bar input,
#tasksView .task-filter-bar .filter-bar select { height: 42px; border-color: #dfe7f2; border-radius: 8px; background: #fff; color: #2f4057; font-size: 13px; }
#tasksView .task-filter-bar .filter-bar label { width: 140px; }
#tasksView .task-filter-bar .filter-bar label:first-child { width: 260px; }
#tasksView .task-filter-bar .filter-bar label.task-time-field { width: 118px; }
#tasksView .task-filter-bar .filter-bar label.task-date-range-field { width: auto; min-width: 248px; }
#tasksView .task-filter-bar .task-date-field input { width: 112px; }
#tasksView .task-filter-bar .filter-bar .secondary-button { height: 42px; min-width: 78px; border-radius: 8px; font-weight: var(--weight-strong); }
#tasksView .task-card-grid-layout { --task-card-cols: 36px minmax(120px, 1.6fr) minmax(80px, 0.85fr) minmax(84px, 0.8fr) minmax(118px, 1fr) minmax(108px, 1fr) 68px; }
#tasksView .task-card-grid-layout .task-card-grid-head,
#tasksView .task-card-grid-layout .task-work-card { column-gap: var(--vp-task-card-gap); }
#tasksView .task-card-grid { gap: 6px; }
#tasksView .task-card-grid-wrap { padding: 0 14px 18px; }
#tasksView .task-card-grid-head-wrap {
  position: sticky;
  top: 0;
  z-index: 25;
  margin: 0 -14px 0;
  padding: 0 14px;
  background: #fff;
  box-shadow: 0 1px 0 rgba(226, 232, 240, 0.92);
}
#tasksView .task-card-grid-head {
  position: static;
  top: auto;
  margin: 0;
  padding: 5px 18px 4px;
  border: none;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  border-bottom: 1px solid rgba(226, 232, 240, 0.92);
  min-height: 0;
}
#tasksView .task-card-grid-head .th {
  color: #64748b;
  font-size: 12px;
  font-weight: var(--weight-strong);
  letter-spacing: 0.02em;
  line-height: 1.3;
}
#tasksView .task-card-grid-head .th-title,
#tasksView .task-card-grid-head .th-owner,
#tasksView .task-card-grid-head .th-project,
#tasksView .task-card-grid-head .th-deadline,
#tasksView .task-card-grid-head .th-status,
#tasksView .task-card-grid-head .th-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  max-width: 100%;
  padding: 2px 10px 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: var(--weight-strong);
  letter-spacing: 0.03em;
  line-height: 1.2;
  border: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
}
#tasksView .task-card-grid-head .th-title::before,
#tasksView .task-card-grid-head .th-owner::before,
#tasksView .task-card-grid-head .th-project::before,
#tasksView .task-card-grid-head .th-deadline::before,
#tasksView .task-card-grid-head .th-status::before,
#tasksView .task-card-grid-head .th-actions::before {
  content: "";
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  background: currentColor;
  opacity: 0.9;
}
#tasksView .task-card-grid-head .th-title {
  color: #334155;
  border-color: rgba(203, 213, 225, 0.72);
  background: linear-gradient(135deg, rgba(248, 250, 252, 0.98) 0%, rgba(241, 245, 249, 0.92) 100%);
}
#tasksView .task-card-grid-head .th-title::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2'/%3E%3Crect x='9' y='3' width='6' height='4' rx='1'/%3E%3Cpath d='M9 12h6M9 16h4'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2'/%3E%3Crect x='9' y='3' width='6' height='4' rx='1'/%3E%3Cpath d='M9 12h6M9 16h4'/%3E%3C/svg%3E") center / contain no-repeat;
}
#tasksView .task-card-grid-head .th-owner {
  color: #047857;
  border-color: rgba(110, 231, 183, 0.42);
  background: linear-gradient(135deg, rgba(236, 253, 245, 0.98) 0%, rgba(240, 253, 250, 0.9) 100%);
}
#tasksView .task-card-grid-head .th-owner::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-3.3 2.7-6 6-6h4c3.3 0 6 2.7 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-3.3 2.7-6 6-6h4c3.3 0 6 2.7 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
#tasksView .task-card-grid-head .th-project {
  color: #6d28d9;
  border-color: rgba(196, 181, 253, 0.48);
  background: linear-gradient(135deg, rgba(245, 243, 255, 0.98) 0%, rgba(237, 233, 254, 0.9) 100%);
}
#tasksView .task-card-grid-head .th-project::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7h18v12a1 1 0 01-1 1H4a1 1 0 01-1-1V7z'/%3E%3Cpath d='M8 7V5a2 2 0 012-2h4a2 2 0 012 2v2'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7h18v12a1 1 0 01-1 1H4a1 1 0 01-1-1V7z'/%3E%3Cpath d='M8 7V5a2 2 0 012-2h4a2 2 0 012 2v2'/%3E%3C/svg%3E") center / contain no-repeat;
}
#tasksView .task-card-grid-head .th-deadline {
  color: #0369a1;
  border-color: rgba(125, 211, 252, 0.45);
  background: linear-gradient(135deg, rgba(224, 242, 254, 0.98) 0%, rgba(240, 249, 255, 0.88) 100%);
}
#tasksView .task-card-grid-head .th-deadline::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat;
}
#tasksView .task-card-grid-head .th-status {
  color: #4338ca;
  border-color: rgba(165, 180, 252, 0.42);
  background: linear-gradient(135deg, rgba(224, 231, 255, 0.98) 0%, rgba(238, 242, 255, 0.9) 100%);
}
#tasksView .task-card-grid-head .th-status::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5 9 17l10.5-10.5'/%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5 9 17l10.5-10.5'/%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E") center / contain no-repeat;
}
#tasksView .task-card-grid-head .th-actions {
  justify-self: end;
  margin-left: auto;
  padding: 2px 10px 2px 8px;
  color: #64748b;
  border-color: rgba(226, 232, 240, 0.95);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.94) 100%);
  font-size: 11px;
  letter-spacing: 0.04em;
  text-align: right;
}
#tasksView .task-card-grid-head .th-actions::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='1.5'/%3E%3Ccircle cx='6' cy='12' r='1.5'/%3E%3Ccircle cx='18' cy='12' r='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='1.5'/%3E%3Ccircle cx='6' cy='12' r='1.5'/%3E%3Ccircle cx='18' cy='12' r='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
#tasksView .task-work-col-owner .task-owner-chip > span:not(.member-hover-pop):not(.xm-avatar),
#tasksView .task-work-col-project .task-project-cell b {
  color: #334155;
  font-weight: var(--weight-strong);
}
#tasksView .task-work-col-project .task-project-cell small {
  color: #94a3b8;
}
#tasksView .task-work-col-deadline time { color: #334155; font-weight: var(--weight-strong); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: visible; text-overflow: clip; }
#tasksView .task-deadline-when {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  --task-deadline-icon-slot: calc(18px + 4px);
}
#tasksView .task-deadline-when .task-deadline-clock {
  position: static;
  left: auto;
  top: auto;
  transform: none;
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background: transparent center/16px no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='2'%3E%3Cpath d='M12 8v4l3 2M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
}
#tasksView .task-deadline-when:has(time.danger-text) .task-deadline-clock {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23cf1322' stroke-width='2'%3E%3Cpath d='M12 8v4l3 2M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
}
#tasksView .task-deadline-when:has(time.warn-text) .task-deadline-clock {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23b45309' stroke-width='2'%3E%3Cpath d='M12 8v4l3 2M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
}
#tasksView .task-work-card.has-due-soon .task-deadline-when .task-deadline-clock {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23b45309' stroke-width='2'%3E%3Cpath d='M12 8v4l3 2M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
}
#tasksView .task-deadline-countdown { color: #64748b; }
#tasksView .task-deadline-countdown--warn { color: #b45309; }
#tasksView .task-deadline-countdown--violated { color: #dc2626; }
#tasksView .task-work-col-status .tag {
  padding: 3px 9px;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 11px;
  font-weight: var(--weight-strong);
  letter-spacing: 0.02em;
  line-height: 1.25;
}
#tasksView .task-work-col-status .tag.blue { color: #1d4ed8; border-color: rgba(147, 197, 253, 0.55); background: linear-gradient(180deg, #f0f7ff 0%, #e8f1ff 100%); }
#tasksView .task-work-col-status .tag.green { color: #059669; border-color: rgba(110, 231, 183, 0.45); background: linear-gradient(180deg, #f0fdf7 0%, #e6faf2 100%); }
#tasksView .task-work-col-status .tag.orange { color: #c2410c; border-color: rgba(253, 186, 116, 0.5); background: linear-gradient(180deg, #fff8f0 0%, #fff1e6 100%); }
#tasksView .task-work-col-status .tag.red { color: #dc2626; border-color: rgba(252, 165, 165, 0.5); background: linear-gradient(180deg, #fff5f5 0%, #ffecec 100%); }
#tasksView .task-work-col-status .tag.purple { color: #6d28d9; border-color: rgba(196, 181, 253, 0.5); background: linear-gradient(180deg, #f7f3ff 0%, #f0eaff 100%); }
#tasksView .task-work-col-status .tag.gray { color: #475569; border-color: rgba(203, 213, 225, 0.65); background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%); }
#tasksView .task-work-col-status .task-sla-capsule { border-radius: 8px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65); }
#tasksView .task-work-card { position: relative; overflow: visible; padding: 14px 18px; min-height: 64px; align-items: center; }
#tasksView .task-work-main { gap: 6px; }
#tasksView .task-work-tags { gap: 6px; }
#tasksView .task-status-line,
#tasksView .task-deadline-line { display: inline-flex; flex-wrap: nowrap; align-items: center; gap: 6px; max-width: 100%; min-width: 0; overflow: visible; }
#tasksView .task-status-line { gap: 6px; }
#tasksView .task-status-line .tag,
#tasksView .task-status-line .task-sla-capsule { flex-shrink: 0; }
#tasksView .task-work-card.has-review-reject:hover,
#tasksView .task-work-card.has-review-reject:focus-within,
#tasksView .task-work-card.has-review-reject.is-active { border-left-color: #ff9c6e; }
#tasksView .task-deadline-line--stacked { flex-direction: column; align-items: flex-start; gap: 3px; }
#tasksView .task-deadline-line--stacked .task-deadline-when,
#tasksView .task-deadline-line--stacked time { white-space: nowrap; }
#tasksView .task-deadline-line--stacked .task-deadline-countdown {
  margin-left: var(--task-deadline-icon-slot, 22px);
}
#tasksView .task-deadline-line--stacked .task-deadline-countdown::before { display: none; }
#tasksView .task-work-col-deadline { align-items: flex-start; }
#tasksView .task-work-col-status { align-items: center; }
#tasksView .task-work-card.has-due-soon { min-height: 72px; align-items: center; }
#tasksView .task-sla-capsule { align-items: center; }
#tasksView .task-sla-capsule-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  background-position: center;
  background-size: 12px 12px;
  background-repeat: no-repeat;
}
#tasksView .task-work-actions {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  justify-self: end;
  min-width: 72px;
  overflow: visible;
}
#tasksView .task-work-card.is-task-menu-open {
  position: relative;
  z-index: 50;
  overflow: visible;
}
#tasksView .task-card-menu-wrap {
  position: relative;
  z-index: 6;
}
#tasksView .task-card-menu-wrap.is-menu-ready {
  z-index: 51;
}
#tasksView .task-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 32px;
  padding: 0 12px;
  border: 1px solid #dfe7f2;
  border-radius: 8px;
  color: #5f6f82;
  background: #fff;
  font-size: 12px;
  font-weight: var(--weight-strong);
  cursor: pointer;
  opacity: 1;
  pointer-events: auto;
  transition: border-color .15s ease, color .15s ease, background .15s ease, box-shadow .15s ease;
  white-space: nowrap;
}
#tasksView .task-more-chevron {
  width: 14px;
  height: 14px;
  transition: transform .18s ease;
}
#tasksView .subtask-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 7px 2px 5px;
  border: 0;
  border-radius: 999px;
  color: #1677ff;
  background: #eef6ff;
  font-size: 11px;
  line-height: 1.2;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
#tasksView .subtask-pill:hover {
  background: #dceeff;
}
#tasksView .subtask-pill-tree-icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
#tasksView .subtask-pill-label {
  white-space: nowrap;
}
#tasksView .subtask-pill .task-more-chevron {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}
#tasksView .subtask-pill.is-expanded .task-more-chevron {
  transform: rotate(180deg);
}
#tasksView .task-more-btn:hover,
#tasksView .task-card-menu-wrap.is-menu-ready .task-more-btn {
  border-color: #b9d6ff;
  color: #1677ff;
  background: #f5f9ff;
  box-shadow: 0 4px 14px rgba(22, 119, 255, .1);
}
#tasksView .task-card-menu-wrap.is-menu-ready .task-more-chevron {
  transform: rotate(180deg);
}
#tasksView .task-card-menu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -14px;
  height: 14px;
}
#tasksView .task-card-menu-wrap.is-drop-up .task-card-menu::before {
  top: auto;
  bottom: -14px;
}
#tasksView .task-card-menu-wrap.is-menu-ready:not(.is-drop-up)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 18px;
  pointer-events: auto;
}
#tasksView .task-card-menu-wrap.is-menu-ready.is-drop-up::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: 18px;
  pointer-events: auto;
}
#tasksView .task-card-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 52;
  display: grid;
  gap: 2px;
  min-width: 188px;
  max-width: 240px;
  padding: 6px;
  border: 1px solid #e3ebf5;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(14, 34, 64, .14), 0 2px 8px rgba(14, 34, 64, .06);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}
#tasksView .task-card-menu.is-measuring {
  position: fixed;
  left: -9999px;
  top: 0;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  transform: none !important;
}
#tasksView .task-card-menu-wrap.is-drop-up .task-card-menu {
  top: auto;
  bottom: calc(100% + 4px);
  transform: translateY(6px);
}
#tasksView .task-card-menu-wrap:not(.is-menu-ready) .task-card-menu {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: none !important;
}
#tasksView .task-card-menu-wrap.is-menu-ready .task-card-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}
#tasksView .task-card-menu-wrap.is-menu-ready.is-drop-up .task-card-menu {
  transform: translateY(0);
}
#tasksView .task-card-menu-item {
  display: grid;
  gap: 2px;
  width: 100%;
  padding: 9px 12px;
  border: 0;
  border-radius: 8px;
  color: #2f4057;
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: background .12s ease, color .12s ease;
}
#tasksView .task-card-menu-item small {
  color: #8b98a8;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
}
#tasksView .task-card-menu-item:hover {
  color: #1677ff;
  background: #f5f9ff;
}
#tasksView .task-card-menu-divider {
  height: 1px;
  margin: 4px 6px;
  background: #edf2f8;
}
#tasksView .task-project-cell { gap: 2px; }
#tasksView .task-project-cell .task-project-logo,
#tasksView .task-project-cell .hub-pick-icon { width: 20px; height: 20px; margin-right: 0; border-radius: 50%; }
#tasksView .task-project-cell b { margin-left: 0; letter-spacing: -.1px; }
#tasksView .task-quick-card {
  height: auto;
  min-height: 108px;
  padding: 16px 18px;
  align-items: center;
  border-color: #ececf1;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}
#tasksView .task-quick-card:hover {
  border-color: #b9d7ff;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(22, 119, 255, .08);
}
#tasksView .task-quick-card.is-active {
  border-color: #1677ff;
  background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%);
  box-shadow: 0 0 0 1px #1677ff, 0 8px 20px rgba(22, 119, 255, .1);
  transform: none;
}
#tasksView .task-quick-card.is-active:hover {
  transform: translateY(-1px);
}
#tasksView .task-quick-cards.task-quick-cards--compact .task-quick-card {
  min-height: 88px;
  padding: 14px 10px;
}
#tasksView .task-quick-cards.task-quick-cards--compact .task-quick-card i {
  width: 32px;
  height: 32px;
  flex-basis: 32px;
}
#tasksView .task-quick-cards.task-quick-cards--compact .task-quick-card b {
  margin-top: 6px;
  font-size: 22px;
}
#tasksView .task-quick-cards.task-quick-cards--compact .task-quick-card span {
  font-size: 12px;
}
#tasksView .task-quick-cards.task-quick-cards--created .task-quick-card {
  min-height: 88px;
  padding: 14px 10px;
  gap: 10px;
}
#tasksView .task-quick-cards.task-quick-cards--created .task-quick-card i {
  width: 32px;
  height: 32px;
  flex-basis: 32px;
}
#tasksView .task-quick-cards.task-quick-cards--created .task-quick-card i .task-quick-svg {
  width: 20px;
  height: 20px;
}
#tasksView .task-quick-cards.task-quick-cards--created .task-quick-card b {
  margin-top: 6px;
  font-size: 22px;
}
#tasksView .task-quick-cards.task-quick-cards--created .task-quick-card span {
  font-size: 12px;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#tasksView .task-quick-cards.task-quick-cards--created .task-quick-card > div {
  min-height: 0;
}
#tasksView .task-quick-cards.task-quick-cards--created .task-quick-card small {
  display: none;
}
#tasksView .task-quick-cards.task-quick-cards--created .task-quick-card b::after {
  font-size: 11px;
  margin-left: 2px;
}
#tasksView .task-quick-card i {
  display: grid;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  place-items: center;
  border-radius: 0;
  color: #252525;
  background: transparent;
  box-shadow: none;
  font-size: 0;
  font-style: normal;
  font-weight: 400;
}
#tasksView .task-quick-card i .task-quick-svg {
  display: block;
  width: 26px;
  height: 26px;
}
#tasksView .task-quick-card > div {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1;
  min-width: 0;
  min-height: 48px;
}
#tasksView .task-quick-cards.task-quick-cards--compact .task-quick-card > div {
  min-height: 0;
}
#tasksView .task-quick-card span {
  color: #353740;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
}
#tasksView .task-quick-card b {
  margin-top: 6px;
  color: #0d0d0d;
  font-size: 26px;
  font-weight: var(--weight-strong);
  line-height: 1;
  letter-spacing: -.6px;
}
#tasksView .task-quick-card b::after {
  margin-left: 4px;
  color: #8e8ea0;
  font-size: 13px;
  font-weight: 500;
  content: "个";
}
#tasksView .task-quick-card small {
  margin-top: 4px;
  min-height: 15px;
  color: #8e8ea0;
  font-size: 11px;
  line-height: 1.35;
}
.task-aside-panel { overflow: hidden; border: 1px solid #e8eef5; border-radius: 12px; background: #fff; box-shadow: 0 10px 28px rgba(15, 35, 68, .06); }
.task-aside-panel .task-aside-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 18px 8px; }
.task-aside-panel .task-aside-head h3 { margin: 0; font-size: 15px; font-weight: var(--weight-display); color: #0f1f33; letter-spacing: 0; }
.task-aside-more { padding: 0; border: 0; color: #8b98a8; background: transparent; font-size: 12px; font-weight: 600; cursor: pointer; transition: color .15s ease; }
.task-aside-more span { display: inline-block; margin-left: 1px; font-size: 14px; line-height: 1; }
.task-aside-more:hover { color: #1677ff; }
.task-aside-empty-tip { margin: 0; padding: 6px 18px 18px; color: #9aa6b7; font-size: 12px; line-height: 1.6; }
.task-schedule-timeline { position: relative; padding: 4px 18px 18px; }
.task-schedule-timeline::before { content: ""; position: absolute; left: calc(18px + 48px + 8px); top: 14px; bottom: 18px; width: 1px; background: linear-gradient(180deg, #dce6f2 0%, #e8eef5 100%); }
.task-schedule-item { display: grid; grid-template-columns: 48px 16px minmax(0, 1fr); gap: 0 10px; align-items: start; padding: 11px 8px 11px 0; position: relative; cursor: pointer; border-radius: 8px; transition: background .15s ease; }
.task-schedule-item:hover { background: #f7faff; }
.task-schedule-dot { display: block; width: 8px; height: 8px; margin-top: 5px; justify-self: center; border: 2px solid #fff; border-radius: 50%; background: #1677ff; box-shadow: 0 0 0 3px #e8f2ff; position: relative; z-index: 1; }
.task-schedule-item.tone-violet .task-schedule-dot { background: #7b3ff2; box-shadow: 0 0 0 3px #f0e8ff; }
.task-schedule-item.tone-orange .task-schedule-dot { background: #ff9518; box-shadow: 0 0 0 3px #fff0df; }
.task-schedule-item.tone-green .task-schedule-dot { background: #20b56b; box-shadow: 0 0 0 3px #e5f8ee; }
.task-schedule-item.tone-red .task-schedule-dot { background: #ff5151; box-shadow: 0 0 0 3px #ffe8e8; }
.task-schedule-item time { color: #1677ff; font-size: 13px; font-weight: var(--weight-strong); line-height: 1.4; letter-spacing: 0; text-align: right; padding-right: 2px; position: relative; z-index: 0; }
.task-schedule-item.tone-red time { color: #ff5151; }
.task-schedule-body b { display: block; color: #12233c; font-size: 13px; font-weight: var(--weight-display); line-height: 1.45; }
.task-schedule-body small { display: block; margin-top: 4px; color: #93a0b3; font-size: 11px; line-height: 1.45; }
.task-aside-donut { padding: 8px 16px 18px; box-sizing: border-box; }
.task-aside-donut-body { display: flex; align-items: center; gap: 12px; width: 100%; }
.task-aside-donut-body.is-empty { flex-direction: column; align-items: stretch; }
.task-aside-donut-chart { flex: 0 0 auto; }
.task-aside-donut-ring { display: grid; width: 118px; height: 118px; place-items: center; border-radius: 50%; flex-shrink: 0; }
.task-aside-donut-ring.empty { background: #edf1f5 !important; }
.task-aside-donut-core { display: grid; width: 76px; height: 76px; place-items: center; align-content: center; border-radius: 50%; background: #fff; text-align: center; box-shadow: inset 0 0 0 1px #f0f2f5; }
.task-aside-donut-core strong { font-size: 22px; font-weight: var(--weight-display); color: #102033; line-height: 1; letter-spacing: -.2px; }
.task-aside-donut-core small { margin-top: 4px; color: #93a0b3; font-size: 11px; font-weight: 600; }
.task-aside-legend { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; padding-top: 2px; }
.task-aside-legend-row { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; gap: 8px; align-items: center; font-size: 12px; line-height: 1.35; }
.task-aside-legend-row i { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; font-style: normal; }
.task-aside-legend-row .label { color: #5f6f84; font-weight: var(--weight-medium); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.task-aside-legend-row .value { color: #12233c; font-weight: var(--weight-strong); white-space: nowrap; }
.task-aside-legend-row .value em { margin-left: 2px; color: #93a0b3; font-size: 11px; font-weight: 600; font-style: normal; }
.task-aside-filter-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 16px 16px; }
.task-aside-filter-chip { display: inline-flex; gap: 6px; align-items: center; max-width: 100%; padding: 5px 10px; border-radius: 999px; background: #f2f6fb; color: #526173; font-size: 11px; font-weight: 600; line-height: 1.35; }
.task-aside-filter-chip em { color: #8b98a8; font-style: normal; font-weight: 600; }
.task-aside-filter-chip.is-active { color: #1677ff; background: #e6f4ff; }
.task-aside-filter-chip.is-active em { color: #5b9fff; }
.task-aside-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; box-sizing: border-box; padding: 2px 16px 18px; }
.task-aside-action { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 10px; min-height: 48px; padding: 10px 12px; border: 0; border-radius: 10px; color: #2f4057; font-size: 12px; font-weight: var(--weight-strong); cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, filter .15s ease; text-align: left; }
.task-aside-action.is-active {
  color: #1677ff;
  background: #eef6ff;
  box-shadow: inset 0 0 0 1px #91caff;
}
.task-aside-action.is-active .task-aside-action-icon {
  background: #1677ff !important;
}
.task-aside-action.is-active .task-aside-action-icon--xm {
  background: #dcecff !important;
}
.task-aside-action:hover { transform: translateY(-1px); filter: brightness(.98); box-shadow: 0 6px 16px rgba(22, 119, 255, .08); }
.task-aside-action span:last-child { line-height: 1.25; }
.task-aside-action-icon { display: block; width: 32px; height: 32px; flex: 0 0 32px; border-radius: 50%; background: #1677ff; opacity: .92; }
.task-aside-action-icon--xm { display: grid; place-items: center; background: #eef6ff; opacity: 1; }
.task-aside-action-icon--xm .xm-ic { width: 16px; height: 16px; opacity: 1; }
.task-aside-action.tone-blue,
.task-aside-action.tone-orange,
.task-aside-action.tone-green,
.task-aside-action.tone-mint,
.task-aside-action.tone-purple,
.task-aside-action.tone-slate { background: #f8f9fb; }
.task-aside-action .task-aside-action-icon { background: #6b7c93; }
.task-aside-action .task-aside-action-icon--xm { background: #eef0f3; }
.task-aside-action.tone-blue .task-aside-action-icon--xm { background: #eef0f3; }
.task-aside-action-icon.icon-task { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 4v16m8-8H4' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") center/16px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 4v16m8-8H4'/%3E%3C/svg%3E") center/16px no-repeat; }
.task-aside-action-icon.icon-feedback { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M6 3h12a2 2 0 012 2v10a2 2 0 01-2 2H10l-4 4V5a2 2 0 012-2z'/%3E%3C/svg%3E") center/16px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M6 3h12a2 2 0 012 2v10a2 2 0 01-2 2H10l-4 4V5a2 2 0 012-2z'/%3E%3C/svg%3E") center/16px no-repeat; }
.task-aside-action-icon.icon-demand { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 3h10v18l-5-3-5 3z'/%3E%3C/svg%3E") center/16px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 3h10v18l-5-3-5 3z'/%3E%3C/svg%3E") center/16px no-repeat; }
.task-aside-action-icon.icon-export { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M11 4h2v7.2l2.6-2.6 1.4 1.4L12 16l-5-5 1.4-1.4L11 11.2V4z'/%3E%3Cpath fill='%23000' d='M5 18h14v2H5z'/%3E%3C/svg%3E") center/16px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M11 4h2v7.2l2.6-2.6 1.4 1.4L12 16l-5-5 1.4-1.4L11 11.2V4z'/%3E%3Cpath fill='%23000' d='M5 18h14v2H5z'/%3E%3C/svg%3E") center/16px no-repeat; }
.task-aside-action-icon.icon-star { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2l2.9 6.26L22 9.27l-5 4.87L18.18 22 12 18.27 5.82 22 7 14.14l-5-4.87 7.1-1.01z'/%3E%3C/svg%3E") center/16px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2l2.9 6.26L22 9.27l-5 4.87L18.18 22 12 18.27 5.82 22 7 14.14l-5-4.87 7.1-1.01z'/%3E%3C/svg%3E") center/16px no-repeat; }
.task-aside-action-icon.icon-tag { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 11l8-8 10 10-8 8zM9 9a1.5 1.5 0 100 3 1.5 1.5 0 000-3z'/%3E%3C/svg%3E") center/16px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 11l8-8 10 10-8 8zM9 9a1.5 1.5 0 100 3 1.5 1.5 0 000-3z'/%3E%3C/svg%3E") center/16px no-repeat; }
.task-quick-cards { display: grid; width: 100%; min-width: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; flex: 0 0 auto; }
.task-quick-cards.task-quick-cards--created { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.task-quick-cards.task-quick-cards--compact { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; }
.task-quick-card { position: relative; display: flex; min-height: 108px; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid #e7eef8; border-radius: 12px; background: #fff; box-shadow: 0 8px 22px rgba(11,36,70,.04); cursor: pointer; transition: .18s ease; }
.task-quick-card.is-compact { min-height: 88px; height: auto; padding: 14px 10px; gap: 10px; border-radius: 10px; }
.task-quick-card.is-compact i { width: 32px; height: 32px; flex: 0 0 32px; }
.task-quick-card.is-compact i .task-quick-svg { width: 20px; height: 20px; }
.task-quick-card.is-compact b { margin-top: 6px; font-size: 22px; }
.task-quick-card.is-compact > div { min-width: 0; }
.task-quick-card.is-compact span { font-size: 12px; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.task-quick-card.is-compact b::after { font-size: 11px; margin-left: 2px; }
.task-aside-panel--completion .task-aside-head { padding-bottom: 10px; }
.task-aside-completion-badge {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  background: #e6f4ff;
  color: #1677ff;
  font-size: 12px;
  font-weight: var(--weight-strong);
  line-height: 1;
}
.task-aside-completion-badge.is-done { background: #e8f8ef; color: #20b56b; }
.task-aside-completion-body { display: flex; flex-direction: column; gap: 12px; padding: 2px 16px 16px; }
.task-aside-completion-hero { display: flex; align-items: center; gap: 12px; }
.task-aside-completion-ring-wrap { flex: 0 0 auto; }
.task-aside-completion-ring-wrap .task-completion-ring { width: 52px; height: 52px; }
.task-aside-completion-ring-wrap .task-completion-ring-label { font-size: 11px; }
.task-aside-completion-metrics {
  display: grid;
  flex: 1;
  min-width: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.task-aside-completion-metric {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #fbfdff;
}
.task-aside-completion-metric strong {
  color: #102033;
  font-size: 18px;
  font-weight: var(--weight-display);
  line-height: 1.1;
  letter-spacing: -.2px;
}
.task-aside-completion-metric span {
  color: #8b98a8;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.task-aside-completion-metric.is-muted strong { color: #526173; }
.task-aside-completion-track {
  height: 8px;
  border-radius: 999px;
  background: #eef2f7;
  overflow: hidden;
}
.task-aside-completion-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #69b1ff 0%, #1677ff 100%);
  transition: width .25s ease;
}
.task-aside-completion-sub {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 10px;
  border-top: 1px solid #eef2f7;
}
.task-aside-completion-sub-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 12px;
  line-height: 1.35;
}
.task-aside-completion-sub-head > span { color: #8b98a8; font-weight: 600; }
.task-aside-completion-sub-head strong { color: #12233c; font-weight: var(--weight-strong); }
.task-aside-completion-sub-head strong em { margin-left: 2px; color: #93a0b3; font-size: 11px; font-style: normal; font-weight: 600; }
.task-aside-completion-sub-track {
  height: 5px;
  border-radius: 999px;
  background: #f0f3f8;
  overflow: hidden;
}
.task-aside-completion-sub-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #b7c4d6 0%, #8b98a8 100%);
}
.task-aside-insight-timeline::before { left: calc(18px + 56px + 8px); }
.task-aside-insight-timeline .task-schedule-item { grid-template-columns: 56px 16px minmax(0, 1fr); padding-right: 4px; }
.task-aside-insight-timeline .task-schedule-item time {
  color: #8b98a8;
  font-size: 11px;
  font-weight: 600;
}
.task-aside-insight-timeline .task-schedule-item.tone-red time,
.task-aside-insight-timeline .task-schedule-item.tone-slate time { color: #8b98a8; }
.task-aside-insight-timeline .task-schedule-body b {
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.task-aside-insight-timeline .task-schedule-body small {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.task-schedule-item.tone-slate .task-schedule-dot { background: #94a3b8; box-shadow: 0 0 0 3px #eef2f6; }
.task-schedule-item.tone-muted .task-schedule-dot { background: #cbd5e1; box-shadow: 0 0 0 3px #f1f5f9; }
.task-schedule-item.tone-muted time { color: #b0bac7; }
#tasksView .task-filter-bar .filter-bar #exportTaskList { min-width: 108px; white-space: nowrap; }
.task-quick-card:hover { border-color: #b9d7ff; transform: translateY(-2px); box-shadow: 0 16px 32px rgba(22,119,255,.08); }
.task-quick-card i { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 0; color: #252525; background: transparent; font-size: 0; font-style: normal; font-weight: 400; box-shadow: none; }
.task-quick-card b, .task-quick-card span, .task-quick-card small { display: block; }
.task-quick-card b { margin-top: 10px; color: #071a33; font-size: 28px; line-height: 1; letter-spacing: -.8px; }
.task-quick-card b::after { margin-left: 6px; color: #718096; font-size: 15px; font-weight: 600; content: "个"; }
.task-quick-card span { color: #17263b; font-size: 14px; font-weight: var(--weight-display); }
.task-quick-card small { margin-top: 5px; color: #9aa6b7; font-size: 11px; }
.task-list-panel { overflow: visible; border-color: #e7eef8; background: rgba(255,255,255,.88); box-shadow: 0 14px 36px rgba(11,36,70,.05); }
.task-card-grid-wrap { padding: 0 10px 14px; }
.task-card-grid-layout { --task-card-cols: 36px minmax(0, 2fr) 100px 128px 140px minmax(112px, 1fr) auto; }
.task-card-grid-layout .task-card-grid-head,
.task-card-grid-layout .task-work-card { display: grid; grid-template-columns: var(--task-card-cols); column-gap: 16px; row-gap: 0; align-items: center; width: 100%; box-sizing: border-box; }
.task-card-grid > .task-card-grid-head { margin: 0 0 6px; }
.task-card-grid-head { padding: 11px 14px 10px; border: none; border-radius: 0; background: #fff; box-shadow: 0 1px 0 rgba(226, 232, 240, 0.92); }
.task-card-grid-head .th { color: #64748b; font-size: 12px; font-weight: var(--weight-strong); letter-spacing: .02em; line-height: 1.3; }
.task-card-grid-head .th-actions { justify-self: end; text-align: right; }
.task-card-grid { display: grid; gap: 10px; }
.task-empty-tip { padding: 40px 20px; border: 1px dashed #d6e5f8; border-radius: 12px; color: #8b98a8; background: #fbfdff; text-align: center; font-size: 13px; }
.task-empty-tip--error { border-color: #fecaca; color: #b91c1c; background: #fff5f5; }
.task-empty-tip--error .link-button { margin-left: 6px; }
.task-load-more {
  display: block;
  width: 100%;
  margin: 12px 0 4px;
  padding: 12px 16px;
  border: 1px dashed #c8daf0;
  border-radius: 12px;
  background: #f8fbff;
  color: #1677ff;
  font-size: 13px;
  text-align: center;
  cursor: pointer;
}
.task-load-more:disabled { opacity: 0.65; cursor: wait; }
.task-load-more.is-done {
  cursor: default;
  color: #8b98a8;
  background: #fbfdff;
}
body.app-hydrating::after {
  content: "后台正在补全数据…";
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 1200;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(22, 119, 255, 0.92);
  color: #fff;
  font-size: 12px;
  box-shadow: 0 8px 24px rgba(22, 119, 255, 0.25);
  pointer-events: none;
}
body.task-list-loading #taskCardGrid { opacity: 0.72; }
body.org-list-loading #memberRows { opacity: 0.72; }
body.feedback-list-loading #fbCardList { opacity: 0.72; }
.task-list-footer { display: flex; align-items: center; padding: 4px 8px 6px; color: #8b98a8; font-size: 12px; }
.task-work-card { gap: 0 16px; padding: 12px 14px; border: 1px solid #e8eef5; border-left: 3px solid #e8eef5; border-radius: 10px; background: #fff; box-shadow: 0 2px 10px rgba(14,34,64,.025); transition: border-color .16s ease, box-shadow .16s ease; cursor: pointer; }
.task-work-card:hover,
.task-work-card:focus-within,
.task-work-card.is-active { border-left-color: #1677ff; }
.task-work-card.priority-p0:hover,
.task-work-card.priority-p0:focus-within,
.task-work-card.priority-p0.is-active { border-left-color: #ff3b30; }
.task-work-card.priority-p1:hover,
.task-work-card.priority-p1:focus-within,
.task-work-card.priority-p1.is-active { border-left-color: #ff9800; }
.task-work-card.priority-p2:hover,
.task-work-card.priority-p2:focus-within,
.task-work-card.priority-p2.is-active { border-left-color: #1677ff; }
.task-work-card.priority-p3:hover,
.task-work-card.priority-p3:focus-within,
.task-work-card.priority-p3.is-active { border-left-color: #22b66f; }
.task-work-card.is-overdue:hover,
.task-work-card.is-overdue:focus-within,
.task-work-card.is-overdue.is-active { border-left-color: #ff3b30; }
.task-work-card.has-fr-violation:hover,
.task-work-card.has-fr-violation:focus-within,
.task-work-card.has-fr-violation.is-active { border-left-color: #e85d5d; }
.task-work-card.is-done { background: #fcfefd; box-shadow: 0 4px 14px rgba(14,34,64,.03); }
.task-work-card.is-done:hover,
.task-work-card.is-done:focus-within,
.task-work-card.is-done.is-active { border-left-color: #d0d8e4; }
.task-work-card.priority-p0 { border-left-width: 4px; }
.task-work-card.is-active { border-color: #d6e5f4; box-shadow: 0 4px 14px rgba(22,119,255,.06); }
.task-work-card:hover { border-color: #d6e5f4; box-shadow: 0 6px 16px rgba(22,119,255,.05); }
.task-work-card > .priority-badge { display: grid; width: 34px; height: 34px; place-items: center; align-content: center; border-radius: 9px; box-shadow: none; font-style: normal; font-size: 12px; justify-self: start; }
.task-work-main { min-width: 0; display: flex; flex-direction: column; gap: 3px; justify-content: center; }
.task-work-title-text { overflow: hidden; color: #12233c; font-size: 14px; font-weight: var(--weight-display); line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.task-work-subline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  min-width: 0;
}
.task-work-subline .task-meta-foot {
  flex: 0 1 auto;
  min-width: 0;
}
.task-work-subline .task-work-tags {
  flex: 1 1 auto;
  min-width: 0;
}
.task-meta-foot {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
  color: #8a8b91;
  font-size: 11px;
  line-height: 1.2;
}
.task-meta-foot--sm {
  gap: 7px;
  font-size: 10px;
}
.task-meta-foot-time {
  flex: 0 0 auto;
  color: #8a8b91;
  font-size: inherit;
  white-space: nowrap;
}
.task-meta-foot-code-wrap {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  max-width: 100%;
}
.task-meta-foot-code {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 168px;
  overflow: hidden;
  color: #597ef7;
  background: transparent;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: inherit;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.task-meta-foot--sm .task-meta-foot-code { max-width: 132px; }
.task-meta-foot-copy {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 0;
  min-width: 0;
  height: 18px;
  padding: 0;
  border: 0 solid #e2e8f0;
  border-radius: 5px;
  color: #64748b;
  background: #fff;
  line-height: 0;
  cursor: pointer;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: opacity .15s ease, width .15s ease, min-width .15s ease, border-width .15s ease, border-color .15s ease, color .15s ease, background .15s ease;
}
.task-meta-foot-code-wrap:hover .task-meta-foot-copy,
.task-meta-foot-code-wrap:focus-within .task-meta-foot-copy {
  opacity: 1;
  width: 18px;
  min-width: 18px;
  border-width: 1px;
  pointer-events: auto;
}
.task-meta-foot-copy-icon {
  display: block;
  width: 11px;
  height: 11px;
}
.task-meta-foot--md .task-meta-foot-copy {
  height: 20px;
}
.task-meta-foot--md .task-meta-foot-code-wrap:hover .task-meta-foot-copy,
.task-meta-foot--md .task-meta-foot-code-wrap:focus-within .task-meta-foot-copy {
  width: 20px;
  min-width: 20px;
}
.task-meta-foot--md .task-meta-foot-copy-icon {
  width: 12px;
  height: 12px;
}
.task-meta-foot-copy:hover {
  border-color: #91caff;
  color: #1677ff;
  background: #f0f7ff;
}
.task-card-type-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 21px;
  padding: 0 7px 0 5px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 11px;
  font-weight: var(--weight-strong);
  line-height: 1;
  white-space: nowrap;
}
.task-card-type-tag > span {
  line-height: 1;
}
.task-card-type-tag .create-type-ic {
  display: block;
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  background-size: 10px;
  border-radius: 4px;
}
.task-card-type-tag[data-tone="blue"] { color: #1677ff; background: #eef6ff; border-color: #c8ddf8; }
.task-card-type-tag[data-tone="green"] { color: #178a52; background: #effaf4; border-color: #b7eb8f; }
.task-card-type-tag[data-tone="red"] { color: #cf1322; background: #fff1f0; border-color: #ffccc7; }
.task-card-type-tag[data-tone="orange"] { color: #d46b08; background: #fff7e6; border-color: #ffd591; }
.task-card-type-tag[data-tone="purple"] { color: #722ed1; background: #f9f0ff; border-color: #d3adf7; }
.task-card-type-tag[data-tone="gray"] { color: #595959; background: #f5f5f5; border-color: #e8e8e8; }
.task-work-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; min-width: 0; }
.task-comment-tag {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 21px;
  padding: 0 6px 0 5px;
  border: 0;
  border-radius: 6px;
  color: #5b7a99;
  background: #edf3fa;
  font-size: 11px;
  line-height: 1;
  cursor: pointer;
  transition: color .15s ease, background .15s ease;
}
.task-comment-tag:hover {
  color: #1677ff;
  background: #e8f2ff;
}
.task-comment-tag .task-svg-icon {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}
.task-comment-tag em {
  font-style: normal;
  font-weight: var(--weight-strong);
  color: inherit;
}
.task-id-muted { color: #9aa6b7; font-size: 11px; font-style: normal; font-weight: 600; }
.task-work-col { min-width: 0; display: flex; flex-direction: row; justify-content: flex-start; align-items: center; gap: 0; text-align: left; }
.task-col-label { display: none; }
.task-work-col time { overflow: hidden; color: #4f6278; font-size: 12px; font-weight: var(--weight-medium); line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.task-work-col-owner { justify-content: flex-start; flex-wrap: wrap; gap: 1px 6px; }
.task-creator-sub { display: inline-block; font-size: 11px; color: #94a3b8; font-weight: var(--weight-medium); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.task-creator-sub::before { content: "创建 "; font-weight: var(--weight-normal); }
.task-work-col-status { min-width: 0; }
.task-status-line { display: inline-flex; flex-wrap: nowrap; align-items: center; gap: 8px; max-width: 100%; min-width: 0; }
.task-status-line .tag { flex-shrink: 0; }
.task-deadline-line { display: inline-flex; flex-wrap: nowrap; align-items: center; gap: 6px; max-width: 100%; min-width: 0; }
.task-deadline-line .task-deadline-countdown::before { margin: 0 2px; color: #c5d0dc; font-weight: 400; content: "·"; }
.task-deadline-line--stacked .task-deadline-countdown {
  margin-left: calc(18px + 4px);
}
.task-deadline-line--stacked .task-deadline-countdown::before { display: none; }
.task-deadline-countdown { display: inline-flex; align-items: center; padding: 0; border-radius: 0; background: transparent; font-size: 11px; font-weight: var(--weight-strong); font-variant-numeric: tabular-nums; line-height: 1.25; white-space: nowrap; flex-shrink: 0; }
.task-deadline-countdown b { font-weight: inherit; }
.task-deadline-countdown--warn { color: #d48806; }
.task-deadline-countdown--violated { color: #e85d5d; }
.task-sla-capsule { display: inline-flex; align-items: center; height: 20px; border-radius: 6px; border: 1px solid #e3ebf5; overflow: hidden; white-space: nowrap; flex-shrink: 0; background: #fafcfe; }
.task-sla-capsule-ic { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; flex-shrink: 0; color: #1677ff; background-color: #f0f6fc; font-size: 0; font-weight: var(--weight-display); line-height: 1; }
.task-sla-capsule-body { display: inline-flex; align-items: center; gap: 4px; padding: 0 6px 0 0; height: 100%; }
.task-sla-capsule-body em { color: #8b98a8; font-size: 10px; font-style: normal; font-weight: var(--weight-strong); }
.task-sla-capsule b { display: inline-flex; align-items: center; font-size: 11px; font-weight: var(--weight-strong); font-variant-numeric: tabular-nums; color: #5f6f82; background: transparent; }
.stats-member-table--sla .stats-member-head,
.stats-member-table--sla .stats-member-row { grid-template-columns: 36px minmax(0, 1.4fr) 72px 88px 72px 80px; }
.stats-member-row .is-warn { color: #e85d5d; font-weight: var(--weight-display); }
.task-sla-capsule--urgent { border-color: #f0e2c8; background: #fffdf8; }
.task-sla-capsule--urgent .task-sla-capsule-ic { color: #d48806; background: #fff7e6; }
.task-sla-capsule--urgent b { color: #d48806; }
.task-sla-capsule--violated { border-color: #f0d4d4; background: #fffafa; }
.task-sla-capsule--violated .task-sla-capsule-ic { color: #e85d5d; background: #fff2f0; }
.task-sla-capsule--violated b { color: #e85d5d; }
.task-sla-capsule--paused { border-color: #d3adf7; background: #f9f0ff; }
.task-sla-capsule--paused .task-sla-capsule-ic { color: #722ed1; background: #efdbff; }
.task-sla-capsule--paused b { color: #722ed1; }
.task-sla-capsule--reject { border-color: #ffbb96; background: #fff7f0; }
.task-sla-capsule--reject .task-sla-capsule-ic { color: #d4380d; background: #fff2e8; }
.task-sla-capsule--reject b { color: #d4380d; }
.task-work-card.has-review-reject:not(.is-done):not(:hover):not(:focus-within):not(.is-active) { border-left-color: #ff9c6e; }
.task-owner-chip { position: relative; display: inline-flex; align-items: center; gap: 6px; max-width: 100%; }
.task-owner-chip .xm-avatar {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(145deg, #83c1eb, #17578c);
  font-size: 11px;
  font-weight: var(--weight-strong);
  line-height: 1;
  text-align: center;
  box-sizing: border-box;
  flex-shrink: 0;
  padding: 0;
  overflow: hidden;
}
.task-owner-chip > span:not(.member-hover-pop):not(.xm-avatar) { overflow: hidden; color: #4f6278; font-size: 12px; font-weight: var(--weight-medium); text-overflow: ellipsis; white-space: nowrap; }
.member-hover-host { position: relative; }
.member-hover-pop { position: absolute; z-index: 20; left: 0; top: calc(100% + 6px); display: none; min-width: 200px; padding: 10px 12px; border: 1px solid #dfe7f1; border-radius: 10px; background: #fff; box-shadow: 0 10px 28px rgba(15, 35, 70, .14); pointer-events: none; }
.member-hover-pop .member-hover-line { display: block; color: #6d8096; font-size: 11px; line-height: 1.55; }
.member-hover-pop .member-hover-line strong { color: #4f6278; font-weight: var(--weight-display); }
.member-hover-pop .member-hover-val { color: #122033; font-weight: var(--weight-strong); }
.member-hover-tel { color: #1677ff; text-decoration: none; pointer-events: auto; }
.member-hover-host:hover .member-hover-pop, .member-hover-host:focus-within .member-hover-pop { display: grid; gap: 2px; pointer-events: auto; }
.task-project-cell { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; min-width: 0; }
.task-project-logo, .task-project-cell .hub-pick-icon { width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0; font-size: 11px; }
.task-project-cell b { overflow: hidden; color: #4f6278; font-size: 12px; font-weight: var(--weight-medium); text-overflow: ellipsis; white-space: nowrap; }
.task-work-actions { justify-self: end; }
.task-work-subtasks { grid-column: 1 / -1; position: relative; margin-top: 2px; padding-top: 8px; border-top: 1px dashed #e8eef5; animation: task-tree-subtasks-in .26s cubic-bezier(.4, 0, .2, 1); }
@keyframes task-tree-subtasks-in {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .task-work-subtasks { animation: none; }
  .task-tree-list-panel { animation: none; }
}
.task-work-card.is-tree-expanded .task-work-subtasks::before {
  content: "";
  position: absolute;
  left: 74px;
  top: 0;
  width: 2px;
  height: 10px;
  background: #91caff;
  transform: translateY(-10px);
}
.task-work-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; justify-self: end; }
.outline-action-sm { height: 30px; padding: 0 12px; font-size: 12px; white-space: nowrap; }
.task-card-primary-btn { min-width: 52px; padding: 0 10px; font-weight: var(--weight-strong); letter-spacing: .06em; text-align: center; }
.task-svg-icon { width: 17px; height: 17px; }
.task-card-menu-wrap { position: relative; }
.task-more-btn { display: inline-flex; align-items: center; gap: 4px; height: 32px; padding: 0 12px; border: 1px solid #dfe7f2; border-radius: 8px; color: #5f6f82; background: #fff; font-size: 12px; font-weight: var(--weight-strong); cursor: pointer; }
.task-more-chevron { width: 14px; height: 14px; }
.task-card-menu { position: absolute; top: calc(100% + 6px); right: 0; z-index: 12; display: grid; gap: 2px; min-width: 188px; padding: 6px; border: 1px solid #e3ebf5; border-radius: 12px; background: #fff; box-shadow: 0 16px 40px rgba(14,34,64,.14); }
.task-card-menu-item { display: grid; gap: 2px; width: 100%; padding: 9px 12px; border: 0; border-radius: 8px; color: #2f4057; background: transparent; font-size: 13px; font-weight: 600; text-align: left; cursor: pointer; }
.task-card-menu-item small { color: #8b98a8; font-size: 11px; font-weight: 500; }
.task-card-menu-item:hover { color: #1677ff; background: #f5f9ff; }
.task-card-menu-divider { height: 1px; margin: 4px 6px; background: #edf2f8; }
.task-title-cell { display: flex; gap: 16px; align-items: center; min-width: 0; }
.task-title-cell b { display: block; overflow: hidden; color: #12233c; font-size: 15px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.task-title-cell small { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 8px; color: #66758a; font-size: 12px; }
.priority-badge { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 8px; color: #fff; font-size: 12px; font-style: normal; font-weight: 900; box-shadow: 0 8px 18px rgba(11,36,70,.08); }
.priority-badge.p0 { background: linear-gradient(145deg, #ff6b73, #ff2d55); }
.priority-badge.p1 { background: linear-gradient(145deg, #ffbd4a, #ff8a00); }
.priority-badge.p2 { background: linear-gradient(145deg, #4c9cff, #1677ff); }
.priority-badge.p3 { background: linear-gradient(145deg, #5cd894, #22b66f); }
.project-cell { display: inline-flex; align-items: center; gap: 9px; min-width: 0; }
.project-cell i { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: #1677ff; background: #eef6ff; font-style: normal; font-weight: 900; }
.project-cell b { overflow: hidden; color: #12233c; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.field-label { display: block; margin-bottom: 5px; color: #8b98aa; font-size: 11px; font-weight: var(--weight-display); }
.danger-text { color: #ff3b30 !important; }
.warn-text { color: #ff9800 !important; }
.outline-action { height: 34px; padding: 0 14px; border: 1px solid #1677ff; border-radius: 7px; color: #1677ff; background: #fff; font-size: 12px; font-weight: var(--weight-display); }
.outline-action:hover { background: #eef6ff; }
.outline-action.disabled { border-color: #e2e8f0; color: #8fa0b4; background: #f5f7fa; }
.card-icons { display: flex; gap: 10px; justify-content: flex-end; }
.card-icons button { position: relative; display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #e1e9f4; border-radius: 8px; color: #5c6b7f; background: #fff; font-size: 0; font-weight: var(--weight-display); }
.card-icons button:hover { border-color: #bad8ff; color: #1677ff; background: #f7fbff; }
.card-icons button::before, .card-icons button::after { content: ""; position: absolute; box-sizing: border-box; }
.comment-icon::before { width: 16px; height: 12px; border: 2px solid currentColor; border-radius: 5px; }
.comment-icon::after { left: 11px; bottom: 8px; width: 7px; height: 7px; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-25deg); background: #fff; }
.share-icon::before { width: 18px; height: 18px; border: 0; background: radial-gradient(circle at 3px 9px,currentColor 0 3px,transparent 3.5px), radial-gradient(circle at 15px 4px,currentColor 0 3px,transparent 3.5px), radial-gradient(circle at 15px 15px,currentColor 0 3px,transparent 3.5px); }
.share-icon::after { width: 14px; height: 12px; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: skewY(-24deg); }
.more-icon::before { width: 4px; height: 4px; border-radius: 50%; background: currentColor; box-shadow: -7px 0 0 currentColor, 7px 0 0 currentColor; }
.task-card-table { overflow: visible; min-height: 0; padding: 0 10px 14px; }
.task-card-table table { width: 100%; min-width: 0; border-collapse: separate; border-spacing: 0 10px; }
.task-card-table thead { display: none; }
.task-card-table tbody { display: grid; gap: 10px; }
.task-card-table tr.task-card-row { display: grid; grid-template-columns: 92px minmax(250px, 1.55fr) minmax(120px, .65fr) minmax(140px, .75fr) minmax(110px, .58fr) minmax(150px, .75fr) minmax(110px, .55fr) minmax(110px, .55fr) 148px; align-items: center; min-height: 88px; padding: 18px 18px; border: 1px solid #e7eef8; border-left: 3px solid transparent; border-radius: 10px; background: #fff; box-shadow: 0 10px 24px rgba(14,34,64,.04); transition: .18s ease; cursor: pointer; }
.task-card-table tr.task-card-row:hover { border-color: #cfe3ff; border-left-color: #1677ff; box-shadow: 0 14px 28px rgba(22,119,255,.08); transform: translateY(-1px); }
.task-card-table tr.task-card-row.is-active { border-color: #cfe3ff; border-left-color: #1677ff; box-shadow: 0 10px 22px rgba(22,119,255,.06); }
.task-card-table tr.task-card-row td { display: block; padding: 0 12px; border: 0; color: #13243a; font-size: 13px; line-height: 1.45; white-space: normal; }
.task-card-table tr.subtask-expand-row { display: block; margin: -4px 8px 8px; border: 1px dashed #d6e5f8; border-radius: 10px; background: #f8fbff; }
.task-card-table tr.subtask-expand-row td { display: block; padding: 12px 14px; border: 0; }
.feedback-list-panel .panel-header { display: none; }
.feedback-card-table tr.task-card-row { grid-template-columns: 92px minmax(250px, 1.55fr) minmax(120px, .65fr) minmax(140px, .75fr) minmax(110px, .58fr) minmax(150px, .75fr) minmax(110px, .55fr) minmax(110px, .55fr) 148px; border-left-color: transparent; }
.feedback-card-table tr.task-card-row:hover { border-left-color: #ff9800; }
.feedback-card-table tr.task-card-row td:last-child { display: block; }
.work-lens { margin-bottom: 12px; padding: 16px 18px; border-left: 4px solid var(--blue); }
.work-lens h3 { margin: 0 0 6px; }.work-lens p { margin: 0; color: var(--muted); font-size: 13px; }
.work-lens .lens-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.work-lens .lens-tags span { padding: 6px 10px; border-radius: 16px; color: #28609a; background: #eef6ff; font-size: 12px; }
.create-type-guide { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.type-choice { padding: 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--text); background: #fff; text-align: left; }
.type-choice b, .type-choice span { display: block; }.type-choice b { margin-bottom: 4px; }.type-choice span { color: var(--muted); font-size: 11px; line-height: 1.5; }
.type-choice.active { border-color: var(--blue); background: #f2f8ff; box-shadow: inset 0 0 0 1px #bcd8ff; }
.role-perm-layout { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 14px; align-items: stretch; min-height: 0; }
.role-perm-sidebar { padding: 14px 12px; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.role-perm-workspace { min-width: 0; display: flex; flex-direction: column; gap: 10px; min-height: 0; }
.role-perm-split { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 14px; flex: 1; min-height: 0; align-items: stretch; }
.role-perm-groups { padding: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.role-perm-groups-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 14px; border-bottom: 1px solid #e8eef5; background: #f7f9fc; font-size: 12px; color: #7a8798; }
.role-perm-groups-head b { color: #2f4057; font-size: 13px; }
.role-perm-group-list { display: flex; flex-direction: column; gap: 6px; padding: 10px; overflow-y: auto; flex: 1; min-height: 0; }
.role-perm-group-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; padding: 10px 12px; border: 1px solid #e8eef5; border-radius: 8px; background: #fff; color: #4f6278; font-size: 13px; font-weight: var(--weight-strong); cursor: pointer; text-align: left; }
.role-perm-group-item:hover { border-color: #c5d9f5; background: #f8fbff; }
.role-perm-group-item.active { border-color: #9ec5ff; color: #1677ff; background: #eef6ff; }
.role-perm-group-item-title { flex: 1; min-width: 0; line-height: 1.35; }
.role-perm-group-item-meta { font-size: 11px; font-weight: 600; color: #8ca3bb; white-space: nowrap; }
.role-perm-group-item.active .role-perm-group-item-meta { color: #5b9dff; }
.role-perm-detail { min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; padding: 0; }
.role-perm-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 14px 16px 10px; border-bottom: 1px solid #eef2f6; }
.role-perm-detail-kicker { margin: 0 0 4px; font-size: 11px; letter-spacing: .08em; color: #8ca3bb; }
.role-perm-detail-head h5 { margin: 0; font-size: 16px; color: #2f4057; }
.role-perm-detail-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.role-perm-detail-body { flex: 1; min-height: 0; overflow-y: auto; border-radius: 0 0 10px 10px; }
.role-perm-detail-empty { padding: 28px 16px; text-align: center; color: #8b98a8; font-size: 13px; }
.role-perm-sidebar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.role-perm-sidebar-toolbar .panel-kicker { margin: 0; }
.role-perm-add-btn { height: 28px; padding: 0 10px; font-size: 12px; white-space: nowrap; }
.role-perm-add-form { display: flex; flex-direction: column; gap: 8px; margin: 0 0 10px; padding: 10px; border: 1px dashed #c5d9f5; border-radius: 8px; background: #f8fbff; }
.role-perm-add-form[hidden] { display: none !important; }
.role-perm-add-template { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: #607086; }
.role-perm-add-template select { height: 32px; border: 1px solid #d9e3ef; border-radius: 6px; padding: 0 8px; }
.role-perm-add-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.role-perm-main-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.role-perm-delete-btn { color: #cf1322; border-color: #ffa39e; }
.role-perm-delete-btn:hover { color: #a8071a; background: #fff1f0; }
.role-perm-hint { font-size: 12px; color: #8ca3bb; white-space: nowrap; }
.role-perm-sidebar h4 { margin: 4px 0 12px; font-size: 15px; }
.role-perm-role-list { display: flex; flex-direction: column; gap: 6px; flex: 1; min-height: 0; overflow-y: auto; }
.role-perm-role-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; padding: 10px 12px; border: 1px solid #e8eef5; border-radius: 8px; background: #fff; color: #4f6278; font-size: 13px; font-weight: var(--weight-strong); cursor: pointer; text-align: left; }
.role-perm-role-item:hover { border-color: #c5d9f5; background: #f8fbff; }
.role-perm-role-item.active { border-color: #9ec5ff; color: #1677ff; background: #eef6ff; }
.role-perm-main-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.role-perm-main-head h4 { margin: 0; font-size: 18px; }
.perm-legend { display: flex; gap: 28px; color: #7a8798; font-size: 12px; font-weight: var(--weight-strong); }
.perm-tree-table { border: 1px solid #e8eef5; border-radius: 10px 10px 0 0; overflow: hidden; background: #f7f9fc; }
.perm-tree-body { border: 1px solid #e8eef5; border-top: 0; border-radius: 0 0 10px 10px; background: #fff; }
.perm-tree-row { display: grid; grid-template-columns: minmax(0, 1fr) 72px 72px; gap: 8px; align-items: center; padding: 10px 14px; border-top: 1px solid #f0f4f8; }
.perm-tree-row:first-child { border-top: 0; }
.perm-tree-head { background: #f7f9fc; font-size: 12px; font-weight: var(--weight-display); color: #7a8798; }
.perm-tree-head span:not(:first-child) { text-align: center; }
.perm-tree-name b { display: block; color: #2f4057; font-size: 13px; }
.perm-tree-name small { display: block; margin-top: 2px; color: #9aa7b6; font-size: 11px; }
.perm-tree-name em { display: block; margin-top: 2px; color: #e98000; font-size: 11px; font-style: normal; }
.perm-tree-check { display: flex; justify-content: center; margin: 0; }
.perm-tree-check input { width: 16px; height: 16px; accent-color: #1677ff; }
.perm-tree-row.is-disabled { opacity: .55; }
.perm-tree-group { border-top: 1px solid #f0f4f8; }
.perm-tree-group:first-child { border-top: 0; }
.perm-tree-group-head { display: flex; align-items: center; gap: 8px; width: 100%; padding: 12px 14px; border: 0; background: #fbfdff; color: #2f4057; font-size: 13px; font-weight: var(--weight-display); cursor: pointer; text-align: left; }
.perm-tree-group-title { flex: 1; }
.perm-tree-group-actions { display: flex; gap: 6px; }
.perm-tree-group-actions .text-button { font-size: 11px; }
.perm-tree-caret { width: 8px; height: 8px; border-right: 2px solid #7a8798; border-bottom: 2px solid #7a8798; transform: rotate(-45deg); transition: .2s; }
.perm-tree-group.is-open .perm-tree-caret { transform: rotate(45deg); margin-top: -4px; }
.perm-tree-children { display: none; }
.perm-tree-group.is-open .perm-tree-children { display: block; }
.perm-tree-children .perm-tree-row { padding-left: 28px; }
.perm-projects-block { margin-top: 16px; padding-top: 14px; border-top: 1px dashed #e8eef5; }
.perm-projects-block header h4 { margin: 0 0 6px; }
.perm-projects-block header p { margin: 0 0 10px; color: var(--muted); font-size: 12px; }
.perm-projects-grid { border-radius: 10px; overflow: hidden; border: 1px solid #e8eef5; }
.permission-matrix, .member-project-matrix, .routine-template-list, .rule-list { display: grid; gap: 12px; }
.permission-role-card, .member-project-card, .routine-template-card, .rule-card { padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: #fbfcfe; }
.permission-role-card h4, .member-project-card h4, .routine-template-card h4, .rule-card h4 { margin: 0 0 8px; }
.permission-checks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.permission-checks label, .rule-card label { display: flex; gap: 8px; align-items: center; justify-content: space-between; padding: 8px 10px; border: 1px solid #e6ebf2; border-radius: 7px; background: #fff; font-size: 12px; }
.permission-checks small { display: block; color: var(--muted); font-size: 10px; }
.reminder-card, .workflow-card { grid-column: span 2; }
.reminder-flow { display: flex; gap: 11px; align-items: center; padding: 9px 18px 14px; }
.reminder-flow article { flex: 1; padding: 13px; border: 1px solid #e4eaf2; border-radius: 8px; background: #fbfcfe; }
.reminder-flow b, .reminder-flow span, .reminder-flow small { display: block; }.reminder-flow b { color: var(--blue); font-size: 20px; }.reminder-flow small, .setting-note, .workflow-tip { color: var(--muted); font-size: 11px; }
.reminder-flow .flow-arrow, .workflow .flow-arrow { font-size: 22px; }
.setting-note { margin: 0 18px 15px; padding: 10px; border-radius: 6px; background: #f7f9fc; }
.workflow { display: flex; gap: 10px; align-items: center; padding: 10px 18px 4px; }.workflow span { padding: 8px 13px; border-radius: 18px; color: #1677ff; background: #eef6ff; font-size: 12px; }.workflow-tip { margin: 8px 18px 17px; }
.audit-summary { display: flex; gap: 12px; align-items: center; margin: 0 0 10px; padding: 11px 13px; border-radius: 7px; color: #278557; background: #effaf4; font-size: 12px; }
.audit-summary span { color: #607184; }.audit-list { padding: 0 18px 14px; }.audit-list p { display: flex; justify-content: space-between; margin: 0; padding: 8px 0; border-top: 1px solid #f0f2f5; color: var(--muted); font-size: 11px; }.audit-list b { color: var(--green); }
.audit-settings-card .audit-filters { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; margin: 12px 0; }
.audit-settings-card .audit-filters label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.audit-settings-card .audit-filters input, .audit-settings-card .audit-filters select { min-width: 160px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 6px; font-size: 13px; }
.audit-log-table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 8px; }
.audit-log-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.audit-log-table th, .audit-log-table td { padding: 8px 10px; border-bottom: 1px solid #f0f2f5; text-align: left; vertical-align: top; }
.audit-log-table th { background: #f8fafc; color: var(--muted); font-weight: 600; white-space: nowrap; }
.audit-log-table code { font-size: 11px; color: #4b5b6d; }
.audit-log-table .audit-detail-cell { max-width: 220px; word-break: break-all; color: var(--muted); }
.audit-log-table small { display: block; color: var(--muted); margin-top: 2px; }
.away-screensaver {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  color: #e8f2ff;
}
.away-screensaver.show { display: flex; }
.away-screensaver[hidden] { display: none !important; }
body.away-screensaver-open { overflow: hidden; }
.logged-out .away-screensaver { display: none !important; }
body.login-gate-open { overflow: hidden; }
body.logged-out .login-screen { z-index: 10000; }
.dept-away-rules-table { margin-top: 12px; border: 1px solid #e6edf5; border-radius: 12px; overflow: hidden; }
.dept-away-rules-head,
.dept-away-rule-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
}
.dept-away-rules-head {
  background: #f3f7fb;
  color: #607184;
  font-size: 11px;
  font-weight: var(--weight-strong);
}
.dept-away-rule-row { border-top: 1px solid #edf2f7; background: #fff; }
.dept-away-rule-label { color: #334155; font-size: 13px; font-weight: 600; }
.dept-away-rule-row label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
}
.dept-away-rule-row label em { color: #7b8ea3; font-style: normal; min-width: 56px; }
.dept-away-rule-row label i { color: #7b8ea3; font-style: normal; font-size: 11px; }
.dept-away-rule-row input {
  width: 72px;
  padding: 6px 8px;
  border: 1px solid #d7e3f1;
  border-radius: 8px;
  text-align: right;
}
.dept-away-rules-card p { color: var(--muted); font-size: 12px; line-height: 1.55; }
.member-resign-modal { width: min(520px, 94vw); }
.member-resign-modal.show { display: block; z-index: 63; }
.member-resign-modal[hidden] { display: none !important; }
.member-resign-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  border-bottom: 1px solid #edf2f7;
}
.member-resign-head h2 { margin: 4px 0 0; font-size: 18px; }
.member-resign-body { display: grid; gap: 14px; padding: 16px 18px; }
.member-resign-summary {
  margin: 0;
  padding: 12px 14px;
  border-radius: 12px;
  color: #5c6b7a;
  font-size: 13px;
  line-height: 1.65;
  background: #f8fafc;
  border: 1px solid #e8eef5;
}
.member-resign-info {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.member-resign-info li {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  font-size: 13px;
  line-height: 1.55;
}
.member-resign-info span { color: #8b98a8; }
.member-resign-info b { color: #1f2d3d; font-weight: var(--weight-strong); }
.member-resign-warn {
  margin: 0;
  padding: 12px 14px;
  border-radius: 12px;
  color: #a8071a;
  font-size: 12px;
  line-height: 1.65;
  background: #fff1f0;
  border: 1px solid #ffccc7;
}
.member-resign-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 14px 18px 18px;
  border-top: 1px solid #edf2f7;
}
.member-resign-footer .danger-button { margin-top: 0; min-width: 108px; }
.custom-away-modal { width: min(460px, 94vw); }
.custom-away-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-bottom: 1px solid #edf2f7;
}
.custom-away-head h2 { margin: 0; font-size: 18px; }
.custom-away-body { display: grid; gap: 14px; padding: 16px 18px; }
.custom-away-field { display: grid; gap: 6px; }
.custom-away-field span,
.custom-away-limit-label,
.custom-away-minutes span { color: #607184; font-size: 12px; font-weight: 600; }
.custom-away-field input,
.custom-away-minutes input {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #d7e3f1;
  border-radius: 10px;
  font-size: 14px;
}
.custom-away-limit-block { display: grid; gap: 10px; }
.custom-away-presets { display: flex; flex-wrap: wrap; gap: 8px; }
.custom-away-presets .secondary-button {
  min-width: 56px;
  padding: 8px 10px;
  border-radius: 999px;
  font-size: 12px;
}
.custom-away-presets .secondary-button.active {
  color: #fff;
  border-color: #1677ff;
  background: #1677ff;
}
.custom-away-minutes { display: flex; align-items: center; gap: 8px; }
.custom-away-minutes input { width: 88px; }
.custom-away-minutes em { color: #7b8ea3; font-style: normal; font-size: 12px; }
.custom-away-tip { margin: 0; color: #8ca3bb; font-size: 11px; line-height: 1.5; }
.custom-away-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px 18px 16px;
  border-top: 1px solid #edf2f7;
}
.away-screensaver-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 22%, rgba(105, 177, 255, .28), transparent 42%),
    radial-gradient(circle at 82% 78%, rgba(179, 127, 235, .22), transparent 40%),
    linear-gradient(145deg, #071a2e 0%, #0f3152 48%, #0a2540 100%);
  animation: away-screensaver-bg 18s ease-in-out infinite alternate;
}
.away-screensaver-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    -45deg,
    rgba(255, 255, 255, .015) 0,
    rgba(255, 255, 255, .015) 2px,
    transparent 2px,
    transparent 10px
  );
  opacity: .6;
}
.away-screensaver-inner {
  position: relative;
  z-index: 1;
  width: min(620px, 94vw);
  padding: 40px 34px 34px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 24px;
  text-align: center;
  background: rgba(8, 28, 48, .72);
  box-shadow: 0 24px 64px rgba(0, 0, 0, .35);
  backdrop-filter: blur(12px);
}
.away-screensaver-icon {
  display: grid;
  width: 88px;
  height: 88px;
  margin: 0 auto 18px;
  place-items: center;
  border-radius: 50%;
  font-size: 40px;
  line-height: 1;
  background: rgba(255, 255, 255, .08);
  box-shadow: 0 0 0 12px rgba(255, 255, 255, .04);
  animation: away-screensaver-pulse 2.6s ease-in-out infinite;
}
.away-screensaver-icon::before { content: "⏸"; }
.away-screensaver-icon.is-meeting::before { content: "📋"; }
.away-screensaver-icon.is-bathroom::before { content: "🚻"; }
.away-screensaver-icon.is-smoking::before { content: "🚬"; }
.away-screensaver-icon.is-package::before { content: "📦"; }
.away-screensaver-icon.is-custom::before { content: "✎"; }
.away-screensaver-icon.is-out::before { content: "🚶"; }
.away-screensaver-icon.is-meal::before { content: "🍽"; }
.away-screensaver-icon.is-away::before { content: "💤"; }
.away-screensaver.is-meeting .away-screensaver-icon { box-shadow: 0 0 0 12px rgba(105, 177, 255, .12); }
.away-screensaver.is-bathroom .away-screensaver-icon { box-shadow: 0 0 0 12px rgba(179, 127, 235, .12); }
.away-screensaver.is-smoking .away-screensaver-icon { box-shadow: 0 0 0 12px rgba(149, 222, 100, .12); }
.away-screensaver.is-package .away-screensaver-icon { box-shadow: 0 0 0 12px rgba(92, 219, 211, .12); }
.away-screensaver.is-custom .away-screensaver-icon { box-shadow: 0 0 0 12px rgba(105, 177, 255, .12); }
.away-screensaver.is-out .away-screensaver-icon { box-shadow: 0 0 0 12px rgba(255, 192, 105, .12); }
.away-screensaver.is-meal .away-screensaver-icon { box-shadow: 0 0 0 12px rgba(255, 156, 110, .12); }
.away-screensaver.is-away .away-screensaver-icon { box-shadow: 0 0 0 12px rgba(140, 163, 187, .12); }
.away-screensaver-kicker {
  margin: 0 0 8px;
  color: #8ca3bb;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.away-screensaver-inner h2 {
  margin: 0 0 10px;
  color: #fff;
  font-size: 36px;
  font-weight: var(--weight-display);
  letter-spacing: -.02em;
}
.away-screensaver-hint {
  margin: 0 0 16px;
  color: #b8c9dc;
  font-size: 16px;
  line-height: 1.55;
}
.away-screensaver-details {
  display: grid;
  gap: 10px;
  width: min(520px, 100%);
  margin: 0 auto 22px;
  padding: 18px 20px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 14px;
  background: rgba(0, 0, 0, .18);
  text-align: left;
}
.away-screensaver-details > div {
  display: grid;
  grid-template-columns: 108px 1fr;
  gap: 12px;
  align-items: center;
}
.away-screensaver-details dt {
  margin: 0;
  color: #8ca3bb;
  font-size: 15px;
  font-weight: var(--weight-strong);
}
.away-screensaver-details dd {
  margin: 0;
  color: #eef5ff;
  font-size: 20px;
  font-weight: var(--weight-display);
  font-variant-numeric: tabular-nums;
}
.away-screensaver-details dd.is-elapsed {
  color: #69b1ff;
  font-size: 34px;
  letter-spacing: .05em;
}
#awayScreensaverOverdueRow[hidden] { display: none !important; }
.away-screensaver-overdue-banner[hidden] { display: none !important; }
.away-screensaver-overdue-banner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: min(520px, 100%);
  margin: 0 auto 16px;
  padding: 16px 20px;
  border: 2px solid rgba(255, 77, 79, .75);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(120, 16, 16, .55), rgba(80, 8, 8, .42));
  box-shadow: 0 0 32px rgba(255, 77, 79, .35);
  animation: away-overdue-pulse 1.4s ease-in-out infinite;
}
.away-screensaver-overdue-banner strong {
  color: #ff4d4f;
  font-size: 42px;
  font-weight: 900;
  letter-spacing: .12em;
  text-shadow: 0 0 24px rgba(255, 77, 79, .55);
}
.away-screensaver-overdue-banner span {
  color: #ffb3b3;
  font-size: 38px;
  font-weight: var(--weight-display);
  font-variant-numeric: tabular-nums;
  letter-spacing: .06em;
}
.away-screensaver-details dd.is-overdue {
  color: #ff4d4f;
  font-size: 38px;
  text-shadow: 0 0 20px rgba(255, 77, 79, .45);
}
.away-screensaver.is-overdue .away-screensaver-inner {
  border-color: rgba(255, 77, 79, .55);
  box-shadow: 0 0 48px rgba(255, 77, 79, .28), 0 24px 64px rgba(120, 20, 20, .35);
}
.away-screensaver.is-overdue .away-screensaver-bg {
  background:
    radial-gradient(circle at 50% 40%, rgba(255, 77, 79, .22), transparent 48%),
    radial-gradient(circle at 18% 22%, rgba(105, 177, 255, .18), transparent 42%),
    linear-gradient(145deg, #2a0a0a 0%, #0f3152 48%, #0a2540 100%);
}
@keyframes away-overdue-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.02); opacity: .94; }
}
.away-screensaver-snooze {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 18px 0 0;
  font-size: 13px;
  color: #4a6278;
  cursor: pointer;
  user-select: none;
}
.away-screensaver-snooze[hidden],
.away-screensaver-snooze-note[hidden] { display: none !important; }
.away-screensaver-snooze input {
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
  flex-shrink: 0;
}
.away-screensaver-snooze-note {
  margin: 8px 0 0;
  color: #6f879f;
  font-size: 11px;
  line-height: 1.5;
  text-align: center;
}
.away-screensaver-back {
  min-width: 168px;
  margin-top: 14px;
  padding: 12px 28px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: var(--weight-display);
}
.away-screensaver-note {
  margin: 18px 0 0;
  color: #6f879f;
  font-size: 11px;
  line-height: 1.5;
}
@keyframes away-screensaver-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.04); opacity: .92; }
}
@keyframes away-screensaver-bg {
  0% { filter: hue-rotate(0deg) brightness(1); }
  100% { filter: hue-rotate(8deg) brightness(1.06); }
}
.overlay { position: fixed; inset: 0; z-index: 38; display: none; background: rgba(3,17,32,.35); }
.overlay.show { display: block; cursor: pointer; }
.drawer {
  position: fixed;
  top: 0;
  right: calc(-1 * var(--panel-width));
  z-index: 40;
  display: flex;
  width: var(--panel-width);
  max-width: var(--panel-width);
  height: 100vh;
  flex-direction: column;
  background: #fff;
  box-shadow: none;
  visibility: hidden;
  pointer-events: none;
  transition:
    right .25s ease,
    box-shadow .25s ease,
    visibility 0s linear .25s;
}
.drawer.show {
  right: 0;
  visibility: visible;
  pointer-events: auto;
  box-shadow: -15px 0 35px rgba(5, 28, 54, .12);
  transition:
    right .25s ease,
    box-shadow .25s ease,
    visibility 0s;
}
#kpiScopeDrawer.drawer.has-kpi-config-panel {
  --kpi-scope-compact-width: min(360px, 32vw);
  width: var(--kpi-scope-compact-width);
  max-width: var(--kpi-scope-compact-width);
}
body.has-notification-drawer.has-task-drawer #taskDrawer.show,
body.has-notification-drawer.has-feedback-drawer #feedbackDrawer.show,
body.has-notification-drawer.has-routine-drawer #routineDrawer.show,
body.has-notification-drawer.has-version-drawer #versionDrawer.show,
body.has-notification-drawer.has-eff-drawer #effDetailDrawer.show {
  right: var(--panel-width);
  z-index: 41;
}
body.has-notification-drawer.has-approval-drawer:not(.has-task-drawer) #approvalDrawer.show {
  right: var(--panel-width);
  z-index: 43;
}
body.has-feedback-drawer.has-task-drawer #feedbackDrawer.show {
  right: var(--panel-width);
  z-index: 41;
}
body.has-feedback-drawer.has-task-drawer #taskDrawer.show {
  right: 0;
  z-index: 42;
}
body.has-notification-drawer #notificationDrawer.show { z-index: 42; }
#taskDrawer,
#feedbackDrawer {
  --td-pad: 20px;
  --td-gap: 10px;
  --td-radius: 8px;
  --td-border: #f0f0f0;
  --td-text: rgba(0, 0, 0, .88);
  --td-muted: rgba(0, 0, 0, .45);
  --td-text-secondary: rgba(0, 0, 0, .45);
  --td-primary: #1890ff;
  --td-danger: #ff4d4f;
  --td-header-h: 48px;
  --td-footer-h: 52px;
  height: 100vh;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
  transition:
    right .25s ease,
    box-shadow .25s ease;
}
#taskDrawer.is-drawer-loading .task-drawer-subtask-rail {
  display: none !important;
}
#taskDrawer {
  --task-drawer-compact-width: min(320px, 28vw);
  --task-panel-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --task-panel-duration: 0.36s;
}
#taskDrawer.show,
#feedbackDrawer.show { box-shadow: -10px 0 40px rgba(0, 0, 0, .1); }
#taskCommentsDrawer {
  --task-comments-panel-width: min(40vw, 860px);
  width: var(--task-comments-panel-width);
  max-width: var(--task-comments-panel-width);
  right: calc(-1 * var(--task-comments-panel-width));
  z-index: 39;
}
#taskSubtaskDrawer {
  --task-panel-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --task-panel-duration: 0.36s;
  --td-pad: 20px;
  --td-border: #f0f0f0;
  --td-text: rgba(0, 0, 0, .88);
  --td-primary: #1890ff;
  --td-danger: #ff4d4f;
  --td-footer-h: 52px;
  --task-subtask-panel-width: var(--panel-width);
  --task-drawer-compact-width: min(320px, 28vw);
  width: var(--task-subtask-panel-width);
  max-width: var(--task-subtask-panel-width);
  right: calc(-1 * var(--task-subtask-panel-width));
  z-index: 42;
  transition:
    right var(--task-panel-duration) var(--task-panel-ease),
    width var(--task-panel-duration) var(--task-panel-ease),
    max-width var(--task-panel-duration) var(--task-panel-ease),
    box-shadow var(--task-panel-duration) ease,
    visibility 0s linear var(--task-panel-duration);
}
#taskActionDrawer {
  --task-panel-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --task-panel-duration: 0.36s;
  --td-pad: 20px;
  --td-border: #f0f0f0;
  --td-text: rgba(0, 0, 0, .88);
  --td-primary: #1890ff;
  --td-danger: #ff4d4f;
  --td-footer-h: 52px;
  --task-action-panel-width: var(--panel-width);
  --task-drawer-compact-width: min(320px, 28vw);
  width: var(--task-action-panel-width);
  max-width: var(--task-action-panel-width);
  right: calc(-1 * var(--task-action-panel-width));
  z-index: 43;
  transition:
    right var(--task-panel-duration) var(--task-panel-ease),
    width var(--task-panel-duration) var(--task-panel-ease),
    max-width var(--task-panel-duration) var(--task-panel-ease),
    box-shadow var(--task-panel-duration) ease,
    visibility 0s linear var(--task-panel-duration);
}
#taskActionDrawer[hidden] { display: none !important; }
#taskSubtaskDrawer.show,
#taskActionDrawer.show {
  right: var(--task-drawer-compact-width);
  transition:
    right var(--task-panel-duration) var(--task-panel-ease),
    width var(--task-panel-duration) var(--task-panel-ease),
    max-width var(--task-panel-duration) var(--task-panel-ease),
    box-shadow var(--task-panel-duration) ease,
    visibility 0s;
}
#taskSubtaskDrawer.show .task-subtask-drawer-body,
#taskActionDrawer.show .task-action-drawer-body {
  animation: taskSidePanelBodyIn var(--task-panel-duration) var(--task-panel-ease);
}
@keyframes taskSidePanelBodyIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
body.has-notification-drawer.has-task-drawer #taskSubtaskDrawer.show,
body.has-notification-drawer.has-task-drawer #taskActionDrawer.show {
  right: calc(var(--task-drawer-compact-width) + var(--panel-width));
}
#taskDrawer.has-subtask-panel,
#taskDrawer.has-action-panel {
  width: var(--task-drawer-compact-width);
  max-width: var(--task-drawer-compact-width);
  transition:
    width var(--task-panel-duration, 0.36s) var(--task-panel-ease, cubic-bezier(0.22, 1, 0.36, 1)),
    max-width var(--task-panel-duration, 0.36s) var(--task-panel-ease, cubic-bezier(0.22, 1, 0.36, 1)),
    right .25s ease,
    box-shadow .25s ease;
}
#taskDrawer.has-subtask-panel .td-sec-title .td-title-mid,
#taskDrawer.has-action-panel .td-sec-title .td-title-mid,
#taskDrawer.has-subtask-panel .td-title-people,
#taskDrawer.has-action-panel .td-title-people,
#taskDrawer.has-subtask-panel .td-tags,
#taskDrawer.has-action-panel .td-tags,
#taskDrawer.has-subtask-panel .td-focus-strip,
#taskDrawer.has-action-panel .td-focus-strip,
#taskDrawer.has-subtask-panel .td-sec:not(.td-sec-title):not(.td-sec-desc),
#taskDrawer.has-action-panel .td-sec:not(.td-sec-title):not(.td-sec-desc),
#taskDrawer.has-subtask-panel .td-body-stack,
#taskDrawer.has-action-panel .td-body-stack,
#taskDrawer.has-subtask-panel .td-detail-workspace,
#taskDrawer.has-action-panel .td-detail-workspace,
#taskDrawer.has-subtask-panel .task-drawer-footer,
#taskDrawer.has-action-panel .task-drawer-footer {
  display: none !important;
}
#taskDrawer.has-subtask-panel .td-sec-title,
#taskDrawer.has-action-panel .td-sec-title {
  margin-bottom: 0;
  padding: 12px 14px 12px 18px;
  border-bottom: 0;
}
#taskDrawer.has-subtask-panel .td-h1,
#taskDrawer.has-action-panel .td-h1 {
  margin: 0;
  font-size: 16px;
  line-height: 1.4;
}
#taskDrawer.has-subtask-panel .td-sec-desc .td-desc,
#taskDrawer.has-action-panel .td-sec-desc .td-desc {
  max-height: min(42vh, 360px);
  overflow-y: auto;
  font-size: 13px;
  line-height: 1.55;
}
#taskDrawer.has-subtask-panel .td-sec-desc .td-block-title,
#taskDrawer.has-action-panel .td-sec-desc .td-block-title {
  margin-bottom: 6px;
  font-size: 12px;
}
#taskDrawer.has-action-panel .task-drawer-header,
#taskDrawer.has-subtask-panel .task-drawer-header {
  height: auto;
  min-height: var(--td-header-h);
  padding: 8px 14px;
  gap: 8px;
}
#taskDrawer.has-action-panel .task-drawer-header-left,
#taskDrawer.has-subtask-panel .task-drawer-header-left {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex-wrap: nowrap;
}
#taskDrawer.has-action-panel .task-drawer-header-actions,
#taskDrawer.has-subtask-panel .task-drawer-header-actions {
  display: none !important;
}
#taskDrawer.has-action-panel .td-drawer-task-id,
#taskDrawer.has-subtask-panel .td-drawer-task-id {
  flex-shrink: 0;
  max-width: 42%;
}
#taskDrawer.has-action-panel .drawer-sla-badges,
#taskDrawer.has-subtask-panel .drawer-sla-badges {
  flex: 1;
  justify-content: flex-end;
  flex-wrap: nowrap;
  min-width: 0;
  overflow: hidden;
}
#taskDrawer.has-subtask-panel {
  overflow: visible;
}
.task-drawer-subtask-rail {
  --subtask-rail-action-size: 38px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 8;
  display: flex;
  width: var(--subtask-rail-action-size);
  min-width: var(--subtask-rail-action-size);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 0 16px;
  overflow: visible;
  pointer-events: auto;
  transform: translateX(-100%);
}
.task-drawer-subtask-rail-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  flex-shrink: 0;
  width: var(--subtask-rail-action-size);
  height: var(--subtask-rail-action-size);
  margin: 0 0 10px;
  padding: 0;
  border: 1px solid #e4eaf2;
  border-radius: 50%;
  background: #fff center/14px 14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%238b98a8' stroke-width='2' stroke-linecap='round' d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
  box-shadow: 0 1px 3px rgba(15, 35, 62, .05);
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease;
}
.task-drawer-subtask-rail-close:hover {
  border-color: #c8d4e6;
  background-color: #f7f9fc;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%23526073' stroke-width='2' stroke-linecap='round' d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
  box-shadow: 0 2px 6px rgba(15, 35, 62, .08);
  transform: none;
}
.task-drawer-subtask-rail[hidden] {
  display: none !important;
}
.task-drawer-subtask-rail-tab {
  position: relative;
  display: flex;
  width: var(--subtask-rail-action-size);
  height: var(--subtask-rail-action-size);
  min-height: var(--subtask-rail-action-size);
  max-height: var(--subtask-rail-action-size);
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #6d8096;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease;
}
.task-drawer-subtask-rail-tab.is-avatar::before {
  display: none;
}
.task-drawer-subtask-rail-tab-av-wrap {
  display: grid;
  place-items: center;
  width: var(--subtask-rail-action-size);
  height: var(--subtask-rail-action-size);
  border-radius: 50%;
  background: #f6f8fb;
  box-shadow: inset 0 0 0 1px #e3ebf5;
  transition: box-shadow .18s ease, background .18s ease, transform .18s ease;
}
.task-drawer-subtask-rail-av {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #87d068;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  object-fit: cover;
}
img.task-drawer-subtask-rail-av.avatar-img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
}
.task-drawer-subtask-rail-av.is-unassigned {
  color: #8b98a8;
  background: #eef2f7;
  border: 1px dashed #c5d3e8;
  font-size: 12px;
}
.task-drawer-subtask-rail-tip {
  position: absolute;
  top: 50%;
  right: calc(100% + 10px);
  z-index: 12;
  display: grid;
  gap: 3px;
  min-width: 168px;
  max-width: 240px;
  padding: 8px 10px;
  border: 1px solid #dfe7f1;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 35, 62, .14);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-50%) translateX(4px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}
.task-drawer-subtask-rail-tip-title {
  display: block;
  overflow: hidden;
  color: #122033;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.task-drawer-subtask-rail-tip-meta {
  display: block;
  color: #6d8096;
  font-size: 11px;
  line-height: 1.4;
}
.task-drawer-subtask-rail-tab.is-avatar:hover .task-drawer-subtask-rail-tip,
.task-drawer-subtask-rail-tab.is-avatar:focus-visible .task-drawer-subtask-rail-tip {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0);
}
.task-drawer-subtask-rail-tab.is-avatar.is-pending .task-drawer-subtask-rail-tab-av-wrap {
  background: #f4f7fb;
  box-shadow: inset 0 0 0 1px #e3ebf5;
}
.task-drawer-subtask-rail-tab.is-avatar.is-claim .task-drawer-subtask-rail-tab-av-wrap {
  background: #fffbe6;
  box-shadow: inset 0 0 0 2px #ffe58f;
}
.task-drawer-subtask-rail-tab.is-avatar.is-progress .task-drawer-subtask-rail-tab-av-wrap {
  background: #e6f4ff;
  box-shadow: inset 0 0 0 2px #91caff;
}
.task-drawer-subtask-rail-tab.is-avatar.is-danger .task-drawer-subtask-rail-tab-av-wrap {
  background: #fff2f0;
  box-shadow: inset 0 0 0 2px #ffccc7;
}
.task-drawer-subtask-rail-tab.is-avatar:hover .task-drawer-subtask-rail-tab-av-wrap {
  box-shadow: inset 0 0 0 2px #91caff, 0 2px 8px rgba(22, 119, 255, .12);
}
.task-drawer-subtask-rail-tab.is-avatar.is-active .task-drawer-subtask-rail-tab-av-wrap {
  background: #1677ff;
  box-shadow: 0 0 0 3px rgba(22, 119, 255, .18);
}
.task-drawer-subtask-rail-tab.is-avatar.is-active .task-drawer-subtask-rail-av {
  box-shadow: 0 0 0 2px rgba(255, 255, 255, .92);
}
.task-drawer-subtask-rail-tab.is-avatar.is-done .task-drawer-subtask-rail-tab-av-wrap {
  background: #f6ffed;
  box-shadow: inset 0 0 0 2px #b7eb8f;
}
.task-drawer-subtask-rail-tab.is-avatar.is-done.is-active .task-drawer-subtask-rail-tab-av-wrap {
  background: #52c41a;
  box-shadow: 0 0 0 3px rgba(82, 196, 26, .2);
}
.task-drawer-subtask-rail-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--subtask-rail-action-size);
  height: var(--subtask-rail-action-size);
  padding: 0;
  border: 1.5px dashed #b8c8dc;
  border-radius: 50%;
  background: #fff;
  box-shadow: none;
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.task-drawer-subtask-rail-add-ic {
  display: block;
  width: 14px;
  height: 14px;
  background: center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%238ba3bf' stroke-width='2.2' stroke-linecap='round' d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
}
.task-drawer-subtask-rail-add:hover {
  border-color: #91caff;
  background: #f5faff;
  box-shadow: 0 0 0 3px rgba(22, 119, 255, .08);
}
.task-drawer-subtask-rail-add:hover .task-drawer-subtask-rail-add-ic {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%231677ff' stroke-width='2.2' stroke-linecap='round' d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
}
.task-drawer-subtask-rail-add:active {
  transform: scale(.96);
}
.task-drawer-subtask-rail-foot {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  align-self: stretch;
  width: 100%;
  margin-top: 4px;
  padding-top: 10px;
  border-top: 1px solid #eef2f7;
}
.task-drawer-subtask-rail-collapse {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--subtask-rail-action-size, 28px);
  height: var(--subtask-rail-action-size, 28px);
  padding: 0;
  border: 1px solid #e4eaf2;
  border-radius: 50%;
  background: #fff center/14px 14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%238b98a8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
  box-shadow: 0 1px 3px rgba(15, 35, 62, .05);
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease;
}
.task-drawer-subtask-rail-collapse:hover {
  border-color: #c8d4e6;
  background-color: #f7f9fc;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%23526073' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
  box-shadow: 0 2px 6px rgba(15, 35, 62, .08);
}
.task-subtask-drawer-header {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  min-height: var(--td-header-h, 48px);
  padding: 14px var(--td-pad, 20px) 12px;
  border-bottom: 1px solid #dce5ef;
  background: linear-gradient(180deg, #fff 0%, #f7faff 100%);
  box-shadow: 0 1px 0 rgba(15, 35, 62, .02);
}
.task-subtask-drawer-title {
  min-width: 0;
}
.task-subtask-drawer-kicker {
  margin: 0 0 2px;
  color: #52647b;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0;
}
.task-subtask-drawer-title h2 {
  margin: 0;
  overflow: hidden;
  color: var(--td-text, rgba(0, 0, 0, .88));
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.task-subtask-drawer-sub {
  margin: 4px 0 0;
  color: #5f7188;
  font-size: 12px;
  line-height: 1.3;
}
.task-subtask-parent-ctx {
  display: none;
  margin: 6px 0 0;
  overflow: hidden;
  color: #1677ff;
  font-size: 12px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.task-subtask-drawer-body {
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 14px var(--td-pad, 20px) 18px;
  background: #f6f8fb;
  -webkit-overflow-scrolling: touch;
}
#taskSubtaskDrawer.is-form-mode .task-subtask-drawer-body {
  padding: 0;
  background: #fff;
}
#taskSubtaskDrawer .task-subtask-drawer-footer {
  flex-shrink: 0;
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 0;
  height: auto;
  min-height: var(--td-footer-h, 52px);
  padding: 0;
  border-top: 1px solid var(--td-border, #f0f0f0);
  background: #fff;
  box-shadow: none;
}
#taskSubtaskDrawer .task-subtask-drawer-footer-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: var(--td-footer-h, 52px);
  padding: 0 var(--td-pad, 20px);
  box-sizing: border-box;
}
#taskSubtaskDrawer .task-subtask-drawer-footer-bar[hidden] {
  display: none !important;
}
#taskSubtaskDrawer .task-subtask-drawer-footer-bar .td-btn-danger {
  flex-shrink: 0;
  margin-left: auto;
}
#taskSubtaskDrawer .task-subtask-drawer-hint:not([hidden]) + .task-subtask-drawer-footer-bar {
  min-height: 44px;
  padding-top: 0;
  padding-bottom: 10px;
}
#taskSubtaskDrawer .task-subtask-drawer-hint:not([hidden]) {
  padding: 8px var(--td-pad, 20px) 0;
}
.task-subtask-drawer-hint {
  width: 100%;
  margin: 0;
  color: #cf1322;
  font-size: 12px;
  line-height: 1.45;
}
.task-subtask-drawer-hint.is-info { color: #1677ff; }
.task-subtask-drawer-hint.is-success { color: #389e0d; }
.task-subtask-drawer-hint[hidden] { display: none !important; }
#taskSubtaskDrawer .create-field-hint {
  margin: 4px 0 0;
  color: #cf1322;
  font-size: 12px;
  line-height: 1.4;
}
#taskSubtaskDrawer .create-field-hint.is-info { color: #1677ff; }
#taskSubtaskDrawer .create-field-hint.is-success { color: #389e0d; }
#taskSubtaskDrawer .is-field-invalid {
  border-color: #ff4d4f !important;
  box-shadow: 0 0 0 2px rgba(255, 77, 79, .12);
}
@keyframes taskSubtaskBodyIn {
  from {
    opacity: 0;
    transform: translateX(10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.task-subtask-drawer-body.is-entering > :first-child {
  animation: taskSubtaskBodyIn .24s cubic-bezier(.4, 0, .2, 1);
}
.td-subtask.is-panel-active {
  background: #f0f7ff;
  border-radius: 6px;
  margin: 0 -6px;
  padding-left: 6px;
  padding-right: 6px;
}
.task-subtask-drawer-footer[hidden] {
  display: none !important;
}
#taskSubtaskDrawer .task-subtask-form {
  display: flex;
  min-height: 100%;
  flex-direction: column;
}
#taskSubtaskDrawer .task-subtask-form .create-flow {
  padding: 14px var(--td-pad, 20px) 18px;
}
#taskSubtaskDrawer .task-subtask-form .create-meta-project .create-project-picker-btn {
  pointer-events: none;
  opacity: .92;
}
#taskSubtaskDrawer .task-subtask-form-intro {
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid #eef2f6;
  border-radius: 8px;
  background: #f8fbff;
  color: rgba(0, 0, 0, .65);
  font-size: 12px;
  line-height: 1.55;
}
#taskSubtaskDrawer .task-subtask-form-intro b {
  color: rgba(0, 0, 0, .88);
}
#taskSubtaskDrawer .task-subtask-complete-form {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  padding: 14px 22px 18px;
}
#taskSubtaskDrawer .task-subtask-complete-form > label.wide {
  display: grid;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  margin: 0;
}
#taskSubtaskDrawer .task-subtask-complete-form > label.wide > span {
  color: rgba(0, 0, 0, .88);
  font-size: 13px;
  font-weight: 600;
}
#taskSubtaskDrawer .task-subtask-complete-form .rich-editor-shell.is-ready {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
#taskSubtaskDrawer .task-subtask-complete-form .rich-editor-shell.is-ready .EasyMDEContainer {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
#taskSubtaskDrawer .task-subtask-complete-form .rich-editor-shell.is-ready .editor-toolbar {
  flex-wrap: wrap;
  align-content: flex-start;
  min-height: 0;
  padding: 4px 6px;
  gap: 2px;
}
#taskSubtaskDrawer .task-subtask-complete-form .rich-editor-shell.is-ready .CodeMirror,
#taskSubtaskDrawer .task-subtask-complete-form .rich-editor-shell.is-ready .CodeMirror-scroll {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}
.td-subtask-detail {
  display: grid;
  gap: 14px;
}
.td-subtask-detail-sec {
  padding: 12px 14px;
  border: 1px solid #eef2f6;
  border-radius: 8px;
  background: #fff;
}
.td-subtask-detail-sec h4 {
  margin: 0 0 10px;
  color: rgba(0, 0, 0, .88);
  font-size: 13px;
  font-weight: 600;
}
.td-subtask-detail-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 14px;
}
.td-subtask-detail-meta dt {
  margin: 0;
  color: rgba(0, 0, 0, .45);
  font-size: 12px;
  font-weight: 500;
}
.td-subtask-detail-meta dd {
  margin: 4px 0 0;
  color: rgba(0, 0, 0, .88);
  font-size: 13px;
  line-height: 1.4;
}
.td-subtask-detail-meta .wide {
  grid-column: 1 / -1;
}
.td-subtask-detail-desc {
  color: rgba(0, 0, 0, .75);
  font-size: 13px;
  line-height: 1.6;
}
.td-subtask-name-btn {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.td-subtask-name-btn:hover {
  color: var(--td-primary, #1890ff);
}
.td-subtask.is-panel-active .td-subtask-name-btn {
  color: var(--td-primary, #1890ff);
  font-weight: 600;
}
.td-subtask.is-progress .td-subtask-name-btn::before,
.td-subtask.is-claim .td-subtask-name-btn::before,
.td-subtask.is-danger .td-subtask-name-btn::before,
.td-subtask.is-done .td-subtask-name-btn::before {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 6px;
  border-radius: 50%;
  background: currentColor;
  vertical-align: middle;
  content: "";
  opacity: .75;
}
.td-subtask.is-progress .td-subtask-name-btn { color: #1677ff; }
.td-subtask.is-claim .td-subtask-name-btn { color: #d48806; }
.td-subtask.is-danger .td-subtask-name-btn { color: #ff4d4f; }
.td-subtask.is-done .td-subtask-name-btn { color: var(--td-muted); }
#taskCommentsDrawer.show {
  right: var(--panel-width);
}
body.has-notification-drawer.has-task-drawer #taskCommentsDrawer.show {
  right: calc(var(--panel-width) * 2);
}
.task-comments-drawer-header {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: var(--td-header-h, 48px);
  padding: 0 var(--td-pad, 20px);
  border-bottom: 1px solid #dce5ef;
  background: linear-gradient(180deg, #fff 0%, #f7faff 100%);
}
.task-comments-drawer-title { min-width: 0; }
.task-comments-drawer-title h2 {
  margin: 0;
  color: var(--td-text, rgba(0, 0, 0, .88));
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
}
.task-comments-drawer-title h2 span {
  margin-left: 4px;
  color: #5f7188;
  font-size: 13px;
  font-weight: 500;
}
.task-comments-drawer-sub {
  margin: 2px 0 0;
  overflow: hidden;
  color: #5f7188;
  font-size: 12px;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.task-comments-drawer-body {
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 10px 12px 16px;
  background: #f6f8fb;
  -webkit-overflow-scrolling: touch;
}
.task-comments-panel-inner {
  min-height: 100%;
  border: 1px solid #dce5ef;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 35, 62, .05);
  overflow: hidden;
}
.task-comments-panel-inner .dy-comments-list {
  padding: 0;
}
.task-comments-panel-inner .dy-comment-thread {
  padding: 14px 16px 12px;
}
.task-comments-panel-inner .dy-comment-content.is-clamped:not(.is-expanded) {
  background: #eef5ff;
  border-color: #c8ddfa;
}
.task-comments-panel-inner .dy-comment-expand-hint {
  font-size: 14px;
}

/* 双层/多层抽屉：背景层退后、操作层浮前，统一叠层主次感 */
#taskDrawer.has-subtask-panel.show,
#taskDrawer.has-action-panel.show {
  background: var(--drawer-stack-back-bg);
  box-shadow: var(--drawer-stack-back-shadow);
}
#taskDrawer.has-subtask-panel.show .task-drawer-header,
#taskDrawer.has-action-panel.show .task-drawer-header {
  background: var(--drawer-stack-back-header-bg);
  border-bottom-color: rgba(15, 35, 62, .08);
}
#taskDrawer.has-subtask-panel.show .td-h1,
#taskDrawer.has-action-panel.show .td-h1 {
  color: rgba(0, 0, 0, .78);
}
body.has-task-comments-panel.has-task-drawer #taskDrawer.show {
  background: var(--drawer-stack-back-bg);
  box-shadow: var(--drawer-stack-back-shadow);
}
body.has-task-comments-panel.has-task-drawer #taskDrawer.show .task-drawer-header {
  background: var(--drawer-stack-back-header-bg);
  border-bottom-color: rgba(15, 35, 62, .08);
}
#taskSubtaskDrawer.show,
#taskActionDrawer.show,
#taskCommentsDrawer.show,
body.has-version-detail-panel #versionTasksDrawer.show,
#kpiScopeConfigDrawer.show {
  background: var(--drawer-stack-front-bg);
  box-shadow: var(--drawer-stack-front-shadow);
}
#taskSubtaskDrawer.show::before,
#taskActionDrawer.show::before,
#taskCommentsDrawer.show::before,
body.has-version-detail-panel #versionTasksDrawer.show::before,
#kpiScopeConfigDrawer.show::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 4;
  width: 3px;
  background: var(--drawer-stack-accent);
  content: "";
  pointer-events: none;
}
body.has-version-detail-panel #versionDrawer.has-version-tasks-panel.show {
  background: var(--drawer-stack-back-bg);
  box-shadow: var(--drawer-stack-back-shadow);
}
body.has-version-detail-panel #versionDrawer.has-version-tasks-panel.show .version-drawer-header {
  background: var(--drawer-stack-back-header-bg);
  border-bottom-color: rgba(15, 35, 62, .08);
}
body.has-version-detail-panel #versionDrawer.has-version-tasks-panel.show .version-drawer-header h3 {
  color: rgba(0, 0, 0, .78);
}
#kpiScopeDrawer.has-kpi-config-panel.show {
  background: var(--drawer-stack-back-bg);
  box-shadow: var(--drawer-stack-back-shadow);
}
#kpiScopeDrawer.has-kpi-config-panel.show .kpi-scope-drawer-header {
  background: var(--drawer-stack-back-header-bg);
  border-bottom-color: rgba(15, 35, 62, .08);
}
#kpiScopeDrawer.has-kpi-config-panel.show .kpi-scope-drawer-header h3 {
  color: rgba(0, 0, 0, .78);
}
body.has-version-task-dock #versionDrawer.show {
  background: var(--drawer-stack-deep-bg);
  box-shadow: inset 4px 0 12px rgba(15, 35, 62, .08);
}
body.has-version-task-dock #versionDrawer.show .version-drawer-header {
  background: #dde2ea;
  border-bottom-color: rgba(15, 35, 62, .1);
}
body.has-version-task-dock #taskDrawer.show:not(.has-action-panel):not(.has-subtask-panel) {
  background: var(--drawer-stack-front-bg);
  box-shadow: var(--drawer-stack-front-shadow);
}
body.has-version-task-dock #taskDrawer.show:not(.has-action-panel):not(.has-subtask-panel)::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 4;
  width: 3px;
  background: var(--drawer-stack-accent);
  content: "";
  pointer-events: none;
}
body.has-version-task-dock #taskDrawer.show.has-action-panel,
body.has-version-task-dock #taskDrawer.show.has-subtask-panel {
  background: var(--drawer-stack-back-bg);
  box-shadow: var(--drawer-stack-mid-shadow);
}
body.has-version-task-dock #taskDrawer.show.has-action-panel .task-drawer-header,
body.has-version-task-dock #taskDrawer.show.has-subtask-panel .task-drawer-header {
  background: var(--drawer-stack-back-header-bg);
}
body.has-version-task-dock #taskSubtaskDrawer.show,
body.has-version-task-dock #taskActionDrawer.show,
body.has-version-task-dock #taskCommentsDrawer.show {
  box-shadow: var(--drawer-stack-front-shadow);
}

.task-drawer-main { position: relative; display: flex; flex: 1; min-height: 0; flex-direction: column; }
#taskDrawer.has-sheet .task-drawer-main > .drawer-body,
#taskDrawer.has-sheet .task-drawer-main > .task-drawer-footer { visibility: hidden; pointer-events: none; }
.task-drawer-sheet { position: absolute; inset: 0; z-index: 6; display: flex; flex-direction: column; background: #fff; box-shadow: inset 0 1px 0 var(--td-border); }
.task-drawer-sheet[hidden] { display: none !important; }
.task-drawer-sheet-back {
  position: absolute;
  left: -84px;
  top: 10px;
  z-index: 8;
  display: inline-flex;
  gap: 6px;
  align-items: center;
  height: 32px;
  padding: 0 10px 0 6px;
  border: 1px solid #e8e8e8;
  border-radius: 6px;
  color: var(--td-text-secondary);
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
  white-space: nowrap;
}
.task-drawer-sheet-back:hover {
  border-color: var(--td-primary);
  color: var(--td-primary);
}
.task-drawer-back-kbd {
  display: inline-flex;
  align-items: center;
  height: 18px;
  padding: 0 5px;
  border: 1px solid #e5e6eb;
  border-radius: 4px;
  color: #8a8b91;
  background: #f5f5f5;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
}
@media (max-width: 720px) {
  .task-drawer-sheet-back {
    position: static;
    align-self: flex-start;
    margin: 8px 0 0 var(--td-pad);
    transform: none;
    box-shadow: none;
  }
}
.task-drawer-sheet-header { flex-shrink: 0; display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 var(--td-pad); border-bottom: 1px solid var(--td-border); background: #fff; }
.task-drawer-sheet-header h3 { flex: 1; min-width: 0; margin: 0; overflow: hidden; color: var(--td-text); font-size: 15px; font-weight: 600; line-height: 22px; text-overflow: ellipsis; white-space: nowrap; }
.task-drawer-sheet-body { flex: 1; min-height: 0; overflow-x: hidden; overflow-y: auto; padding: 14px var(--td-pad) 16px; background: #fafafa; }
.task-drawer-sheet-body .management-grid,
.task-drawer-sheet-body .management-card { margin-bottom: 0; }
.task-drawer-sheet-body .management-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.task-drawer-sheet-body .management-grid .wide { grid-column: 1 / -1; }
.task-drawer-sheet-body .handoff-version-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 140px;
  gap: 10px 14px;
  align-items: end;
}
.task-drawer-sheet-body .handoff-version-row > label { margin: 0; }
.task-drawer-sheet-body .handoff-version-hint { grid-column: 1 / -1; margin: 0; }
.task-drawer-sheet-body .handoff-version-row--solo { grid-template-columns: 1fr; }
.task-drawer-sheet-body label { display: flex; flex-direction: column; gap: 6px; }
.task-drawer-sheet-body label span { display: inline-flex; gap: 4px; align-items: center; color: rgba(0,0,0,.65); font-size: 13px; font-weight: 500; }
.field-hint-btn {
  display: inline-grid;
  width: 16px;
  height: 16px;
  place-items: center;
  padding: 0;
  border: 1px solid #d9d9d9;
  border-radius: 50%;
  color: #8c8c8c;
  background: #fafafa;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  cursor: help;
}
.field-hint-btn:hover {
  border-color: var(--td-primary);
  color: var(--td-primary);
  background: #f0f7ff;
}
.task-drawer-sheet-body input,
.task-drawer-sheet-body textarea,
.task-drawer-sheet-body select { width: 100%; padding: 7px 10px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 13px; box-sizing: border-box; }
.task-drawer-sheet-body textarea:not(.rich-editor-bound) { min-height: 88px; resize: vertical; }
.task-drawer-sheet-footer { flex-shrink: 0; display: flex; justify-content: flex-end; gap: 8px; padding: 10px var(--td-pad); border-top: 1px solid var(--td-border); background: #fff; }
#managementModal.show { z-index: 50; }
#taskDrawer.show ~ #managementModal.show,
body:has(#taskDrawer.show) #managementModal.show { z-index: 50; }
.notification-drawer { width: var(--panel-width); max-width: var(--panel-width); }
body.has-activity-task-stack {
  --activity-center-compact-width: min(360px, 32vw);
}
#notificationDrawer.is-task-stack {
  --activity-center-compact-width: min(360px, 32vw);
  width: var(--activity-center-compact-width);
  max-width: var(--activity-center-compact-width);
  transition:
    width var(--task-panel-duration, 0.36s) var(--task-panel-ease, cubic-bezier(0.22, 1, 0.36, 1)),
    max-width var(--task-panel-duration, 0.36s) var(--task-panel-ease, cubic-bezier(0.22, 1, 0.36, 1)),
    right .25s ease,
    box-shadow .25s ease;
}
#notificationDrawer.is-task-stack .wac-stepper,
#notificationDrawer.is-task-stack .wac-section-head .wac-link-btn,
#notificationDrawer.is-task-stack .activity-center-tabs {
  display: none;
}
#notificationDrawer.is-task-stack .activity-center-head {
  padding: 14px 16px 12px;
}
#notificationDrawer.is-task-stack .activity-center-head h2 {
  font-size: 16px;
}
#notificationDrawer.is-task-stack .wac-task-card.is-active {
  border-color: #91caff;
  background: #f0f7ff;
  box-shadow: inset 0 0 0 1px rgba(24, 144, 255, .18);
}
body.has-activity-task-stack.has-notification-drawer.has-task-drawer #taskDrawer.show {
  right: var(--activity-center-compact-width);
  z-index: 41;
}
body.has-activity-task-stack.has-notification-drawer #notificationDrawer.show {
  z-index: 42;
}
body.has-activity-task-stack.has-notification-drawer.has-task-drawer #taskSubtaskDrawer.show,
body.has-activity-task-stack.has-notification-drawer.has-task-drawer #taskActionDrawer.show {
  right: calc(var(--activity-center-compact-width) + var(--task-drawer-compact-width));
}
body.has-activity-task-stack.has-notification-drawer.has-task-drawer #taskCommentsDrawer.show {
  right: calc(var(--activity-center-compact-width) + var(--panel-width));
}
.activity-center-drawer { display: flex; flex-direction: column; background: var(--bg); }
.activity-center-drawer header.activity-center-head {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px 16px;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}
.activity-center-head h2 { margin: 0; color: var(--text); font-size: 19px; font-weight: var(--weight-display); letter-spacing: -.02em; }
.activity-center-tabs {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px 0;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
  overflow-x: auto;
}
.activity-center-tabs::-webkit-scrollbar { height: 0; }
.wac-tab {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 56px;
  height: 36px;
  padding: 0 10px 10px;
  border: 0;
  border-radius: 0;
  color: var(--muted);
  background: transparent;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}
.wac-tab-label { line-height: 1.2; }
.wac-tab-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  color: #fff;
  background: var(--red);
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
  pointer-events: none;
  box-shadow: 0 0 0 2px var(--surface);
}
.wac-tab-badge.is-capped {
  min-width: 22px;
  padding: 0 3px;
  font-size: 9px;
  letter-spacing: -0.02em;
}
.wac-tab.active {
  color: var(--blue);
  background: transparent;
  font-weight: var(--weight-display);
}
.wac-tab.active .wac-tab-badge {
  background: var(--red);
  color: #fff;
}
.wac-tab.active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  border-radius: 2px;
  background: var(--blue);
}
.activity-center-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 20px 20px;
  background: var(--bg);
}
.activity-center-foot {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding: 14px 20px 18px;
  border-top: 1px solid var(--line);
  background: var(--surface);
}
.activity-center-foot .primary-button {
  min-width: 168px;
  height: 40px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: var(--weight-strong);
  box-shadow: 0 6px 16px rgba(22, 119, 255, .22);
}
.wac-section { margin-bottom: 14px; }
.wac-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.wac-section-head h3 {
  margin: 0;
  color: var(--text);
  font-size: 14px;
  font-weight: var(--weight-display);
}
.wac-section-head h3 em { color: var(--muted); font-style: normal; font-weight: var(--weight-strong); }
.wac-section-actions { display: flex; align-items: center; gap: 8px; }
.wac-link-btn {
  padding: 0;
  border: 0;
  color: var(--blue);
  background: transparent;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.wac-section-toggle {
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 6px;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%238b98a8' stroke-width='2' stroke-linecap='round' d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/14px no-repeat;
  cursor: pointer;
  transition: transform .2s;
}
.wac-section-toggle.is-collapsed { transform: rotate(-90deg); }
.wac-section.is-collapsed .wac-section-body { display: none; }
.wac-section-body { display: grid; gap: 10px; }
.wac-empty { margin: 0; padding: 18px 12px; border-radius: 10px; color: var(--muted); background: var(--surface); border: 1px solid var(--line); font-size: 12px; text-align: center; }
.wac-task-card {
  padding: 14px 14px 12px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: var(--shadow);
}
.wac-task-top { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.wac-task-title-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
.wac-task-title-row b { overflow: hidden; color: var(--text); font-size: 14px; font-weight: var(--weight-display); text-overflow: ellipsis; white-space: nowrap; }
.wac-priority { flex-shrink: 0; }
.wac-task-meta { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.wac-task-deadline { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 6px 0 0; font-size: 12px; }
.wac-task-deadline span { color: var(--muted); }
.wac-deadline-status { font-style: normal; font-weight: var(--weight-strong); }
.wac-deadline-status.is-danger { color: var(--red); }
.wac-deadline-status.is-warn { color: var(--orange); }
.wac-btn {
  height: 32px;
  padding: 0 14px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: var(--weight-strong);
  white-space: nowrap;
  cursor: pointer;
}
.wac-btn-primary { border: 0; color: #fff; background: var(--blue); }
.wac-btn-outline { border: 1px solid #b9d6ff; color: var(--blue); background: var(--surface); }
.wac-btn-ghost { border: 0; color: var(--blue); background: transparent; }
.wac-stepper {
  display: flex;
  align-items: center;
  gap: 0;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
  overflow-x: auto;
}
.wac-step {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 52px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
}
.wac-step i {
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--line);
}
.wac-step.is-done { color: var(--muted); }
.wac-step.is-done i { background: #b9d6ff; }
.wac-step.is-active { color: var(--blue); }
.wac-step.is-active i { background: var(--blue); box-shadow: 0 0 0 3px rgba(22, 119, 255, .14); }
.wac-step-line {
  flex: 1 1 12px;
  min-width: 12px;
  height: 2px;
  margin: 0 2px 14px;
  background: var(--line);
}
.wac-step-line.is-done { background: #b9d6ff; }
.wac-view-all {
  display: block;
  width: 100%;
  margin-top: 4px;
  padding: 10px 0 0;
  border: 0;
  color: var(--blue);
  background: transparent;
  font-size: 12px;
  font-weight: 400;
  text-align: center;
  cursor: pointer;
}
.wac-at-card,
.wac-urge-card,
.wac-risk-row,
.wac-system-card {
  display: grid;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: var(--shadow);
}
.wac-at-card { grid-template-columns: 36px minmax(0, 1fr) auto; }
.wac-at-card.is-unread,
.wac-urge-card.is-unread,
.wac-system-card.is-unread {
  border-color: #b9d6ff;
  background: var(--blue-soft);
}
.wac-at-avatar { width: 36px; height: 36px; font-size: 13px; }
.wac-at-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.wac-at-head b { color: var(--text); font-size: 13px; }
.wac-at-tag { color: var(--blue); font-size: 12px; font-weight: var(--weight-strong); }
.wac-at-head time { margin-left: auto; color: var(--muted); font-size: 11px; }
.wac-at-text { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.wac-at-task-link {
  display: inline-block;
  margin-top: 6px;
  padding: 0;
  border: 0;
  color: var(--blue);
  background: transparent;
  font-size: 12px;
  font-weight: var(--weight-strong);
  text-align: left;
  cursor: pointer;
}
.wac-urge-card { grid-template-columns: 36px minmax(0, 1fr) auto 16px; }
.wac-urge-body p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.wac-urge-body .is-urge { color: var(--red); }
.wac-urge-wait { color: var(--orange); font-size: 11px; font-weight: var(--weight-strong); white-space: nowrap; }
.wac-chevron {
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%237b8798' stroke-width='2' stroke-linecap='round' d='M9 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
}
.wac-risk-row { grid-template-columns: 24px minmax(0, 1fr) auto; cursor: pointer; }
.wac-risk-ic {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  color: var(--red);
  background: #fff0f0;
  font-size: 12px;
  font-weight: var(--weight-display);
}
.wac-risk-row p { margin: 0; color: var(--text); font-size: 13px; font-weight: 600; }
.wac-system-card { grid-template-columns: 28px minmax(0, 1fr) auto; cursor: pointer; }
.wac-system-ic {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 6px;
  color: var(--muted);
  background: var(--bg);
  font-size: 11px;
}
.wac-system-card b { display: block; color: var(--text); font-size: 13px; }
.wac-system-card .wac-notice-rich {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}
.wac-system-card p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.wac-system-card time { color: var(--muted); font-size: 11px; white-space: nowrap; }
.activity-notice-preview-modal {
  position: fixed;
  z-index: 48;
  top: 50%;
  left: 50%;
  width: min(520px, calc(100vw - 32px));
  max-height: min(72vh, 640px);
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
  box-shadow: 0 18px 48px rgba(15, 23, 42, .18);
  transform: translate(-50%, -50%);
}
.activity-notice-preview-modal.show { display: flex; }
.activity-notice-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px 12px;
  border-bottom: 1px solid var(--line);
}
.activity-notice-preview-head h3 {
  margin: 0;
  color: var(--text);
  font-size: 16px;
  font-weight: var(--weight-display);
  line-height: 1.4;
}
.activity-notice-preview-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 14px 18px 16px;
}
.activity-notice-preview-time {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 12px;
}
.activity-notice-preview-content {
  color: var(--text);
  font-size: 14px;
  line-height: 1.7;
  word-break: break-word;
}
.activity-notice-preview-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 18px 16px;
  border-top: 1px solid var(--line);
}
.activity-notice-preview-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.activity-notice-preview-foot .is-danger-text {
  color: var(--red);
  border-color: #ffd6d6;
  background: #fff;
}
body.has-activity-notice-preview #notificationDrawer.show { z-index: 42; }
body.has-activity-notice-preview #activityNoticePreviewModal.activity-notice-preview-modal.show { z-index: 60; }
body.has-activity-notice-preview::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 47;
  background: rgba(15, 23, 42, .28);
  pointer-events: none;
}
.notice-policy { margin-bottom: 12px; padding: 11px 13px; border: 1px solid #dbeafe; border-radius: 10px; color: #516171; background: #f6faff; font-size: 12px; line-height: 1.7; }
.notice-policy b { color: #1559b7; }
.notice-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.notice-tabs button { padding: 7px 10px; border: 1px solid #dfe6f0; border-radius: 18px; color: #526173; background: #fff; font-size: 12px; }
.notice-tabs button.active { border-color: #1677ff; color: #1677ff; background: #eef6ff; font-weight: var(--weight-strong); }
.notice-tabs span { margin-left: 4px; color: #8b98a8; }
.notice-kind { display: inline-block; margin-left: 6px; padding: 2px 6px; border-radius: 10px; color: #1677ff; background: #eef6ff; font-size: 11px; }
.sheet-mention-host { position: relative; display: block; width: 100%; }
.sheet-mention-editor { min-height: 96px; max-height: 200px; }
.sheet-mention-picker { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 6px); }
#taskActionDrawer .sheet-mention-host {
  position: relative;
  z-index: 2;
}
#taskActionDrawer .sheet-mention-picker:not([hidden]):not(.is-floating) {
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
}
#taskActionDrawer .sheet-mention-picker.is-floating {
  z-index: 10120;
  max-height: min(280px, 42vh);
  overflow: auto;
  background: #fff;
  border: 1px solid #dce5ef;
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(15, 35, 62, .16);
  padding: 8px;
}
.sheet-mention-picker.is-floating {
  margin-top: 0;
  padding: 8px;
  border: 1px solid #dfe7f1;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 35, 70, .16);
  z-index: 10120;
}
body.rich-editor-fs-lock .sheet-mention-picker.is-floating {
  z-index: 10150;
}
.sheet-mention-picker.is-floating .create-search-dropdown:not([hidden]) {
  position: static;
  left: auto;
  right: auto;
  top: auto;
  margin-top: 6px;
  max-height: none;
  overflow: visible;
  box-shadow: none;
  border: 0;
}
#taskActionDrawer .sheet-mention-picker .create-search-dropdown:not([hidden]) {
  position: relative;
  z-index: 121;
  max-height: min(200px, 32vh);
  overflow: auto;
}
#taskActionDrawer .task-action-drawer-body .rich-compose-footer,
#taskActionDrawer .task-action-drawer-body .sheet-mention-actions {
  position: relative;
  z-index: 1;
}
.sheet-form-intro p { margin: 0; color: #5b6c7e; font-size: 13px; line-height: 1.75; }
.sheet-form-intro p + p, .sheet-form-hint { margin-top: 8px; color: #8b98a8; font-size: 12px; line-height: 1.65; }
.delay-approval-info { display: grid; gap: 6px; padding: 12px 14px; border: 1px solid #e8eef5; border-radius: 10px; background: #f8fbff; }
.delay-approval-info > span { color: #8b98a8; font-size: 11px; font-weight: var(--weight-strong); letter-spacing: .02em; }
.delay-approval-copy { margin: 0; color: #2f4057; font-size: 13px; line-height: 1.7; }
.delay-approval-copy b { color: #12233c; font-weight: var(--weight-display); }
input[type="datetime-local"] { color: #2f4057; font-size: 13px; }
.notification-list article.unread { background: #f3f8ff; border-color: #cfe2ff; }
.notification-list article { cursor: pointer; border: 1px solid transparent; }
.notification-list .read-state { color: var(--muted); font-size: 12px; }
.notification-list .read-state.unread { color: #1677ff; font-weight: var(--weight-strong); }
.member-row.clickable { cursor: pointer; }
.member-row.clickable:hover { background: #f5f9ff; }
.drawer header, .modal header { display: flex; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--line); }
#taskDrawer .task-drawer-header,
#feedbackDrawer .task-drawer-header { flex-shrink: 0; display: flex; justify-content: space-between; align-items: center; gap: 12px; height: var(--td-header-h); padding: 0 22px; border-bottom: 1px solid #dce5ef; background: linear-gradient(180deg, #fff 0%, #f7faff 100%); }
.task-drawer-header-left { display: flex; align-items: center; min-width: 0; flex: 1; }
.td-drawer-task-id { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; height: 28px; padding: 0 10px 0 4px; border: 1px solid #e8e8e8; border-radius: 6px; background: linear-gradient(180deg, #fafafa 0%, #f5f5f5 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9); }
.td-drawer-task-id small { flex-shrink: 0; padding: 2px 7px; border-radius: 4px; color: var(--td-primary); background: #e6f4ff; font-size: 11px; font-weight: 600; line-height: 18px; }
.td-drawer-task-id em { overflow: hidden; color: rgba(0, 0, 0, .65); font-size: 12px; font-style: normal; font-weight: 600; font-family: ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace; line-height: 20px; text-overflow: ellipsis; white-space: nowrap; }
.task-drawer-header-actions { display: flex; flex-shrink: 0; gap: 8px; align-items: center; }
.task-drawer-nav { display: flex; gap: 12px; align-items: center; min-width: 0; }
.task-drawer-back { padding: 0; border: 0; color: var(--td-text-secondary); background: transparent; font-size: 13px; font-weight: 400; line-height: 20px; cursor: pointer; }
.task-drawer-back:hover { color: var(--td-primary); }
.task-drawer-crumb-sep { color: #d9d9d9; font-size: 13px; line-height: 20px; }
.task-drawer-crumb { margin: 0; color: var(--td-text-secondary); font-size: 13px; line-height: 20px; }
.task-drawer-crumb span { margin: 0 4px; color: #d9d9d9; }
.task-drawer-follow-btn { display: inline-flex; gap: 5px; align-items: center; height: 28px; padding: 0 10px; border: 1px solid #d9d9d9; border-radius: 4px; color: var(--td-text); background: #fff; font-size: 13px; font-weight: 400; line-height: 1; cursor: pointer; transition: border-color .2s, color .2s; }
.task-drawer-follow-btn:hover { border-color: var(--td-primary); color: var(--td-primary); }
.task-drawer-follow-btn.is-active { border-color: #ffe58f; color: #d48806; background: #fffbe6; }
.task-drawer-more-wrap { position: relative; display: inline-flex; }
.task-drawer-more-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 28px;
  padding: 0 10px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  color: var(--td-text);
  background: #fff;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  transition: border-color .2s, color .2s;
}
.task-drawer-more-btn:hover,
.task-drawer-more-btn[aria-expanded="true"] { border-color: var(--td-primary); color: var(--td-primary); }
.task-drawer-more-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 8;
  min-width: 148px;
  padding: 4px;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .12);
}
.task-drawer-more-menu[hidden] { display: none !important; }
.task-drawer-more-menu button {
  display: block;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--td-text);
  font-size: 13px;
  text-align: left;
  cursor: pointer;
}
.task-drawer-more-menu button:hover { background: #f0f7ff; color: var(--td-primary); }
.task-drawer-more-menu button.is-danger { color: var(--td-danger); }
.task-drawer-more-menu button.is-danger:hover { background: #fff2f0; color: var(--td-danger); }
.task-drawer-square-btn { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; border: 1px solid #d9d9d9; border-radius: 4px; color: rgba(0, 0, 0, .65); background: #fff; font-size: 16px; line-height: 1; cursor: pointer; }
.task-drawer-square-btn:hover { border-color: var(--td-primary); color: var(--td-primary); }
#taskDrawer .task-drawer-close-x {
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid #e3ebf5;
  border-radius: 8px;
  background-color: #fff;
  background-position: center;
  background-size: 14px 14px;
  box-shadow: 0 1px 2px rgba(15, 35, 62, .06);
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
#taskDrawer .task-drawer-close-x:hover {
  border-color: #91caff;
  background-color: #f0f7ff;
  box-shadow: 0 2px 8px rgba(22, 119, 255, .14);
}
.drawer h2, .modal h2 { margin: 1px 0 0; font-size: 19px; }
/* close-button 图标见 icons.css */
.drawer-body { flex: 1; overflow-y: auto; padding: 16px 22px; }
#taskDrawer .drawer-body,
#feedbackDrawer .drawer-body { flex: 1; min-height: 0; overflow-x: hidden; overflow-y: auto; overflow-anchor: none; padding: 14px var(--td-pad) 18px; background: #f6f8fb; -webkit-overflow-scrolling: touch; }
.td-shell { display: flex; flex-direction: column; gap: 12px; }
.td-task-tree-crumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 10px;
  background: var(--surface-muted, #f6f7f9);
  font-size: 13px;
  line-height: 1.4;
}
.td-task-tree-crumb-link {
  border: 0;
  background: none;
  padding: 0;
  color: var(--primary, #2563eb);
  cursor: pointer;
  font: inherit;
}
.td-task-tree-crumb-link:hover { text-decoration: underline; }
.td-task-tree-crumb-current { color: var(--text-secondary, #64748b); font-weight: 600; }
.td-task-tree-crumb-sep { color: var(--text-tertiary, #94a3b8); user-select: none; }
.task-subtask-row.is-tree-node { border-left: 3px solid var(--primary, #2563eb); }

.task-drawer-tabs {
  display: flex;
  gap: 4px;
  padding: 0 16px 8px;
  border-bottom: 1px solid var(--border, #e2e8f0);
}
.task-drawer-tab {
  border: 0;
  background: transparent;
  padding: 8px 14px;
  border-radius: 8px;
  font: inherit;
  font-size: 13px;
  color: var(--text-secondary, #64748b);
  cursor: pointer;
}
.task-drawer-tab.is-active {
  background: #e6f4ff;
  color: var(--td-primary, #1890ff);
  font-weight: 600;
}
.task-drawer-pane { display: none; flex: 1; min-height: 0; flex-direction: column; }
.task-drawer-pane.is-active { display: flex; }
.task-drawer-main { display: flex; flex-direction: column; min-height: 0; flex: 1; }

.task-tree-pane { display: flex; flex-direction: column; min-height: 0; flex: 1; height: 100%; }
.task-tree-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--td-border, #f0f0f0);
  background: linear-gradient(180deg, #fff 0%, #fafafa 100%);
}
.task-tree-toolbar-actions { display: flex; align-items: center; gap: 8px; }
.task-tree-legend {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--td-border, #f0f0f0);
  box-shadow: 0 1px 2px rgba(0, 0, 0, .03);
}
.task-tree-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--td-muted, rgba(0, 0, 0, .45));
  line-height: 20px;
}
.task-tree-legend-line {
  display: inline-block;
  width: 22px;
  height: 0;
  border-top: 2px solid var(--td-primary, #1890ff);
}
.task-tree-legend-line.is-optional {
  border-top-style: dashed;
  border-top-color: #bfbfbf;
}
.task-tree-toolbar-summary {
  font-size: 12px;
  line-height: 20px;
  padding: 2px 10px;
  border-radius: 999px;
  background: #e6f4ff;
  color: var(--td-primary, #1890ff);
  border: 1px solid #91caff;
}
.task-tree-toolbar-summary.is-warning {
  background: #fff2f0;
  color: var(--td-danger, #ff4d4f);
  border-color: #ffccc7;
}
.task-tree-toolbar-summary.is-done {
  background: #f6ffed;
  color: #389e0d;
  border-color: #b7eb8f;
}
.task-tree-toolbar-hint { margin-left: auto; font-size: 12px; color: var(--td-muted, rgba(0, 0, 0, .45)); white-space: nowrap; }
.task-tree-toolbar-actions [data-task-tree-focus-me].is-active {
  color: var(--td-primary, #1890ff);
  border-color: #91caff;
  background: #e6f4ff;
}
.task-tree-focus-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px 14px 10px;
  border-bottom: 1px solid var(--td-border, #f0f0f0);
  background: linear-gradient(90deg, #f0f7ff 0%, #fff 100%);
}
.task-tree-focus-chip {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  line-height: 22px;
  color: var(--td-text, rgba(0, 0, 0, .88));
  background: #fff;
  border: 1px solid #d9d9d9;
}
.task-tree-focus-chip.is-root {
  color: var(--td-primary, #1890ff);
  border-color: #91caff;
  background: #e6f4ff;
}
.task-tree-split {
  display: flex;
  min-height: 0;
  flex: 1;
  overflow: hidden;
}
.task-tree-canvas-wrap {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  background-color: #f5f7fa;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(0, 0, 0, .06) 1px, transparent 0);
  background-size: 20px 20px;
  cursor: grab;
  position: relative;
}
.task-tree-canvas-wrap.is-panning { cursor: grabbing; }
.task-tree-canvas {
  position: relative;
  min-width: 100%;
  min-height: 100%;
}
.task-tree-stage {
  position: absolute;
  left: 0;
  top: 0;
  transform-origin: 0 0;
  will-change: transform;
}
.task-tree-edges {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  overflow: visible;
}
.task-tree-edge {
  fill: none;
  stroke: var(--td-primary, #1890ff);
  stroke-width: 2.5;
  opacity: .88;
  transition: opacity .15s ease;
}
.task-tree-edge.is-required { stroke: var(--td-primary, #1890ff); }
.task-tree-edge.is-optional {
  stroke: #bfbfbf;
  stroke-width: 2;
  stroke-dasharray: 7 6;
  opacity: .95;
}
.task-tree-edge.is-blocking {
  stroke: #ff7875;
  stroke-width: 2.5;
  opacity: 1;
}
.task-tree-node-card {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  padding: 12px 14px 10px;
  border-radius: var(--td-radius, 8px);
  border: 1px solid var(--td-border, #f0f0f0);
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .03), 0 4px 14px rgba(0, 0, 0, .06);
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: inherit;
  overflow: hidden;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.task-tree-node-card:hover {
  border-color: #91caff;
  box-shadow: 0 2px 8px rgba(22, 119, 255, .12), 0 8px 24px rgba(0, 0, 0, .08);
  transform: translateY(-1px);
}
.task-tree-node-card.is-focus {
  border-color: #91caff;
}
.task-tree-node-card.is-active {
  border-color: var(--td-primary, #1890ff);
  box-shadow: 0 0 0 2px rgba(24, 144, 255, .16), 0 8px 24px rgba(24, 144, 255, .12);
}
.task-tree-node-card.is-mine .task-tree-node-accent { background: var(--td-primary, #1890ff); }
.task-tree-node-card.has-block {
  border-color: #ffccc7;
  background: linear-gradient(180deg, #fff 0%, #fffafa 100%);
}
.task-tree-node-accent {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: #d9d9d9;
  border-radius: var(--td-radius, 8px) 0 0 var(--td-radius, 8px);
}
.task-tree-node-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.task-tree-node-badges {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.task-tree-node-type {
  height: 18px;
  padding: 0 6px;
  font-size: 10px;
  line-height: 16px;
}
.task-tree-node-id {
  font-size: 11px;
  color: var(--td-muted, rgba(0, 0, 0, .45));
  letter-spacing: .02em;
}
.task-tree-node-focus { color: #faad14; margin-left: 2px; }
.task-tree-node-badge {
  font-size: 10px;
  padding: 0 6px;
  height: 18px;
  line-height: 16px;
  border-radius: 4px;
  background: #fff1f0;
  color: var(--td-danger, #ff4d4f);
  border: 1px solid #ffccc7;
  flex-shrink: 0;
}
.task-tree-node-badge.is-optional {
  background: #fafafa;
  color: #595959;
  border-color: #d9d9d9;
}
.task-tree-node-title {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  margin: 0 0 8px;
  color: var(--td-text, rgba(0, 0, 0, .88));
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.task-tree-node-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}
.task-tree-node-owner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #e6f4ff;
  color: var(--td-primary, #1890ff);
  font-size: 11px;
  font-weight: 600;
  flex-shrink: 0;
}
.task-tree-node-foot-main {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  flex: 1;
}
.task-tree-node-owner-name {
  font-size: 12px;
  color: var(--td-text, rgba(0, 0, 0, .88));
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.task-tree-node-status {
  height: 20px;
  padding: 0 6px;
  font-size: 11px;
  line-height: 18px;
  flex-shrink: 0;
}
.task-tree-node-deadline {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--td-muted, rgba(0, 0, 0, .45));
  margin-bottom: 6px;
}
.task-tree-node-progress { margin-top: 4px; }
.task-tree-node-progress-bar {
  height: 4px;
  border-radius: 999px;
  background: #f0f0f0;
  overflow: hidden;
  margin-bottom: 4px;
}
.task-tree-node-progress-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--td-primary, #1890ff);
  transition: width .25s ease;
}
.task-tree-node-progress.is-warning .task-tree-node-progress-bar span { background: #ff7875; }
.task-tree-node-progress.is-done .task-tree-node-progress-bar span { background: #52c41a; }
.task-tree-node-progress-text {
  display: block;
  font-size: 11px;
  line-height: 16px;
  color: var(--td-muted, rgba(0, 0, 0, .45));
}
.task-tree-node-progress.is-warning .task-tree-node-progress-text { color: var(--td-danger, #ff4d4f); }
.td-sec-tree-summary { padding: 12px 14px; }
.td-sec-tree-summary.is-warning { border-color: #ffccc7; background: linear-gradient(180deg, #fff 0%, #fffafa 100%); }
.td-sec-tree-summary.is-done { border-color: #b7eb8f; background: linear-gradient(180deg, #fff 0%, #f6ffed 100%); }
.task-tree-summary-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.task-tree-summary-head .td-block-title { margin: 0; }
.task-tree-summary-pct {
  font-size: 13px;
  font-weight: 600;
  color: var(--td-primary, #1890ff);
}
.td-sec-tree-summary.is-warning .task-tree-summary-pct { color: var(--td-danger, #ff4d4f); }
.td-sec-tree-summary.is-done .task-tree-summary-pct { color: #389e0d; }
.task-tree-summary-bar {
  height: 6px;
  border-radius: 999px;
  background: #f0f0f0;
  overflow: hidden;
  margin-bottom: 8px;
}
.task-tree-summary-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #69c0ff 0%, var(--td-primary, #1890ff) 100%);
  transition: width .25s ease;
}
.td-sec-tree-summary.is-warning .task-tree-summary-bar span { background: linear-gradient(90deg, #ffa39e 0%, #ff4d4f 100%); }
.td-sec-tree-summary.is-done .task-tree-summary-bar span { background: linear-gradient(90deg, #95de64 0%, #52c41a 100%); }
.task-tree-summary-text {
  margin: 0 0 4px;
  font-size: 13px;
  line-height: 20px;
  color: var(--td-text, rgba(0, 0, 0, .88));
  font-weight: 500;
}
.task-tree-summary-hint {
  margin: 0;
  font-size: 12px;
  line-height: 18px;
  color: var(--td-muted, rgba(0, 0, 0, .45));
}
.task-tree-badge {
  display: inline-flex;
  align-items: center;
  padding: 0 6px;
  height: 20px;
  border-radius: 4px;
  font-size: 11px;
  line-height: 18px;
  font-style: normal;
  border: 1px solid transparent;
}
.task-tree-badge.is-root {
  color: #531dab;
  background: #f9f0ff;
  border-color: #d3adf7;
}
.task-tree-badge.is-children {
  color: #389e0d;
  background: #f6ffed;
  border-color: #b7eb8f;
}
.task-tree-split--viewer {
  flex: 1;
  min-height: 0;
}
.task-tree-pane--viewer {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.task-tree-viewer-overlay {
  position: fixed;
  inset: 0;
  z-index: 44;
  pointer-events: none;
  background: transparent;
  padding: 0;
}
.task-tree-viewer-overlay[hidden],
.task-tree-viewer-overlay:not(.show) {
  display: none;
}
.task-tree-viewer-dialog {
  pointer-events: auto;
  position: fixed;
  left: calc(var(--app-sidebar-offset) + 12px);
  top: 80px;
  display: flex;
  flex-direction: column;
  width: min(920px, calc(100vw - var(--app-sidebar-offset) - 36px));
  height: min(760px, calc(100vh - 96px));
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(15, 23, 42, .18), 0 0 0 1px rgba(15, 23, 42, .06);
  overflow: hidden;
}
.task-tree-viewer-dialog.is-docked-left {
  left: calc(var(--app-sidebar-offset) + 12px);
  top: 80px;
  width: min(520px, calc(100vw - var(--app-sidebar-offset) - var(--panel-width, 420px) - 48px));
  height: min(calc(100vh - 96px), 820px);
  max-width: 42vw;
}
body.has-task-drawer .task-tree-viewer-overlay {
  z-index: 42;
}
body.has-task-drawer #taskActionDrawer.show {
  z-index: 43;
}
body.has-task-drawer #taskSubtaskDrawer.show {
  z-index: 42;
}
body.has-task-tree-viewer {
  --task-overlay-z-base: 44;
  --task-overlay-z-tree: var(--task-overlay-z-base);
  --task-overlay-z-drawer: calc(var(--task-overlay-z-base) + 1);
  --task-overlay-z-subtask: calc(var(--task-overlay-z-base) + 2);
  --task-overlay-z-action: calc(var(--task-overlay-z-base) + 2);
}
body.has-task-tree-viewer.task-overlay-focus-tree {
  --task-overlay-z-tree: calc(var(--task-overlay-z-base) + 4);
}
body.has-task-tree-viewer.task-overlay-focus-drawer {
  --task-overlay-z-drawer: calc(var(--task-overlay-z-base) + 4);
}
body.has-task-tree-viewer.task-overlay-focus-subtask {
  --task-overlay-z-subtask: calc(var(--task-overlay-z-base) + 4);
}
body.has-task-tree-viewer.task-overlay-focus-action {
  --task-overlay-z-action: calc(var(--task-overlay-z-base) + 4);
}
body.has-task-tree-viewer .task-tree-viewer-overlay {
  z-index: var(--task-overlay-z-tree, 44);
}
body.has-task-tree-viewer.has-task-drawer #taskDrawer.show {
  z-index: var(--task-overlay-z-drawer, 45);
  pointer-events: auto;
}
body.has-task-tree-viewer.has-task-subtask-panel #taskSubtaskDrawer.show {
  right: var(--task-drawer-compact-width);
  z-index: var(--task-overlay-z-subtask, 46);
  box-shadow: -12px 0 36px rgba(0, 0, 0, .14);
}
body.has-task-tree-viewer.has-task-action-panel #taskActionDrawer.show {
  right: var(--task-drawer-compact-width);
  z-index: var(--task-overlay-z-action, 46);
  box-shadow: -12px 0 36px rgba(0, 0, 0, .14);
}
.task-tree-viewer-dialog.is-dragging {
  user-select: none;
  cursor: grabbing;
}
.task-tree-viewer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--td-border, #f0f0f0);
  background: linear-gradient(180deg, #fff 0%, #fafafa 100%);
  cursor: grab;
}
.task-tree-viewer-head:active { cursor: grabbing; }
.task-tree-viewer-dialog.is-docked-left .task-tree-viewer-head {
  cursor: default;
}
.task-tree-viewer-head-text h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--td-text, rgba(0, 0, 0, .88));
}
.task-tree-viewer-sub {
  margin: 4px 0 0;
  font-size: 12px;
  color: var(--td-muted, rgba(0, 0, 0, .45));
}
body.task-tree-viewer-open:not(.has-task-drawer) { overflow: auto; }

.task-card-grid-wrap {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.task-list-completion-host {
  width: 100%;
  flex: 0 0 auto;
}
.task-list-completion-host:not(:empty) {
  grid-column: 1 / -1;
  margin: 0 0 10px;
}
.task-list-completion-banner {
  display: grid;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #dfeaf7;
  border-radius: 12px;
  background: linear-gradient(180deg, #fbfdff 0%, #fff 100%);
}
.task-list-completion-head {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.task-list-completion-copy {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  font-size: 13px;
}
.task-list-completion-copy strong {
  font-size: 14px;
  color: var(--td-text, rgba(0, 0, 0, .88));
}
.task-list-completion-meta {
  color: var(--td-muted, rgba(0, 0, 0, .45));
  font-size: 12px;
}
.task-list-completion-bar {
  height: 8px;
  border-radius: 999px;
  background: #eef2f7;
  overflow: hidden;
}
.task-list-completion-bar > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #69b1ff 0%, #1677ff 100%);
  transition: width .25s ease;
}
.task-list-completion-ring-wrap .task-completion-ring {
  width: 44px;
  height: 44px;
}
.task-list-completion-ring-wrap .task-completion-ring-label {
  font-size: 10px;
}

.task-status-stack {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.task-completion-ring {
  position: relative;
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
}
.task-completion-ring svg {
  width: 100%;
  height: 100%;
  display: block;
}
.task-completion-ring-track {
  fill: none;
  stroke: #eef2f7;
  stroke-width: 3.2;
}
.task-completion-ring-bar {
  fill: none;
  stroke: #1677ff;
  stroke-width: 3.2;
  stroke-linecap: round;
}
.task-completion-ring.is-done .task-completion-ring-bar { stroke: #20b56b; }
.task-completion-ring.is-warning .task-completion-ring-bar { stroke: #ff7875; }
.task-completion-ring-label {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 9px;
  font-weight: 700;
  color: #334155;
  line-height: 1;
}

.task-tree-node-wrap {
  position: absolute;
  width: 240px;
  z-index: 1;
}
.task-tree-node-wrap.can-split:hover,
.task-tree-node-wrap.can-split:focus-within {
  z-index: 3;
}
.task-tree-node-wrap.has-block .task-tree-node-card {
  border-color: #ffccc7;
  background: linear-gradient(180deg, #fff 0%, #fffafa 100%);
}
.task-tree-node-wrap.is-mine .task-tree-node-accent { background: var(--td-primary, #1890ff); }
.task-tree-node-wrap.is-focus .task-tree-node-card {
  outline: 2px solid #faad14;
  outline-offset: 1px;
}
.task-tree-node-split {
  position: absolute;
  left: 50%;
  top: -10px;
  transform: translateX(-50%) translateY(-4px);
  opacity: 0;
  pointer-events: none;
  padding: 2px 10px;
  border: 1px solid #91caff;
  border-radius: 999px;
  background: #fff;
  color: #1677ff;
  font-size: 11px;
  font-weight: 600;
  box-shadow: 0 4px 12px rgba(22, 119, 255, .16);
  transition: opacity .15s ease, transform .15s ease;
  cursor: pointer;
  z-index: 2;
}
.task-tree-node-wrap.can-split:hover .task-tree-node-split,
.task-tree-node-wrap.can-split:focus-within .task-tree-node-split {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.task-tree-node-split:hover {
  background: #e6f4ff;
}

.task-tree-list-panel {
  display: grid;
  gap: 6px;
  padding: 8px 12px 10px 12px;
  border: 1px solid #e8eef5;
  border-radius: 8px;
  background: #fcfdff;
  animation: task-tree-panel-in .28s cubic-bezier(.4, 0, .2, 1);
}
@keyframes task-tree-panel-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
.task-tree-list-lite-head {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 0 8px;
  align-items: start;
  font-size: 11px;
  line-height: 18px;
}
.task-tree-list-lite-head-dot {
  position: relative;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.task-tree-list-lite-head-dot::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #b7d4ff;
}
.task-tree-list-lite-head-dot::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  width: 2px;
  height: 6px;
  margin-left: -1px;
  background: #b7d4ff;
}
.task-tree-list-lite-head-body {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 1px;
}
.task-tree-list-lite-head.is-warning .task-tree-list-lite-summary { color: var(--td-danger, #ff4d4f); font-weight: 600; }
.task-tree-list-lite-head.is-warning .task-tree-list-lite-head-dot::before { background: var(--td-danger, #ff4d4f); }
.task-tree-list-lite-head.is-warning .task-tree-list-lite-head-dot::after { background: var(--td-danger, #ff4d4f); }
.task-tree-list-lite-head.is-done .task-tree-list-lite-summary { color: #389e0d; font-weight: 600; }
.task-tree-list-lite-head.is-done .task-tree-list-lite-head-dot::before { background: #389e0d; }
.task-tree-list-lite-head.is-done .task-tree-list-lite-head-dot::after { background: #389e0d; }
.task-tree-list-lite-summary { color: var(--td-muted, rgba(0, 0, 0, .45)); }
.task-tree-list-lite {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 0 8px;
  align-items: start;
}
.task-tree-list-lite-rail {
  position: relative;
  align-self: stretch;
  min-height: 28px;
}
.task-tree-list-lite-rail::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -6px;
  bottom: 50%;
  width: 2px;
  margin-left: -1px;
  background: #b7d4ff;
}
.task-tree-list-lite-rail::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 10px;
  height: 2px;
  background: #b7d4ff;
}
.task-tree-list-lite-leaves {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}
.task-tree-list-lite-leaves.is-virtual {
  display: block;
  flex: 1;
  min-width: 0;
}
.task-tree-list-virtual-viewport {
  position: relative;
  max-height: min(280px, 42vh);
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid #eef2f7;
  border-radius: 8px;
  background: #fff;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}
.task-tree-list-virtual-spacer {
  width: 100%;
  pointer-events: none;
}
.task-tree-list-virtual-window {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
  gap: 8px;
  padding: 8px;
  box-sizing: border-box;
  will-change: transform;
}
.task-tree-list-virtual-hint {
  margin: 4px 0 0;
  color: var(--td-muted, rgba(0, 0, 0, .45));
  font-size: 10px;
  line-height: 1.4;
}
.task-tree-list-lite-loading {
  padding: 6px 10px;
  border: 1px dashed #dbe7f5;
  border-radius: 6px;
  color: var(--td-muted, rgba(0, 0, 0, .45));
  font-size: 11px;
  background: #fff;
}
.task-tree-list-leaf {
  display: grid;
  gap: 4px;
  min-width: 168px;
  max-width: 220px;
  padding: 6px 8px;
  border: 1px solid #e8eef5;
  border-radius: 8px;
  background: #fff;
}
.task-tree-list-leaf.is-required { border-left: 2px solid var(--td-primary, #1890ff); }
.task-tree-list-leaf.is-optional { border-left: 2px solid #d9d9d9; }
.task-tree-list-leaf.is-done { opacity: .82; }
.task-tree-list-leaf-body {
  display: grid;
  gap: 2px;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.task-tree-list-leaf-body:hover .task-tree-list-leaf-title { color: #1677ff; }
.task-tree-list-leaf-title {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--td-text, rgba(0, 0, 0, .88));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.task-tree-list-leaf-branch {
  justify-self: start;
  height: 20px;
  padding: 0 8px;
  border: 1px solid #d6e4ff;
  border-radius: 999px;
  color: #597ef7;
  background: #f0f5ff;
  font-size: 10px;
  font-weight: 600;
  line-height: 18px;
  cursor: pointer;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.task-tree-list-leaf-branch:hover {
  border-color: #91caff;
  color: #1677ff;
  background: #e6f4ff;
}
.task-tree-list-leaf-meta {
  font-size: 10px;
  color: var(--td-muted, rgba(0, 0, 0, .45));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.task-tree-list-leaf .task-meta-foot {
  padding-top: 1px;
}
.task-tree-list-open {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 22px;
  padding: 0 10px;
  border: 1px solid #c2d7f5;
  border-radius: 11px;
  background: linear-gradient(180deg, #f6faff 0%, #eef5ff 100%);
  color: #3b6cb7;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: all .16s ease;
}
.task-tree-list-open:hover {
  border-color: #91b8e8;
  background: linear-gradient(180deg, #eef6ff 0%, #dcecff 100%);
  color: #2658a3;
  box-shadow: 0 2px 6px rgba(22,119,255,.12);
}
.task-tree-list-open:active {
  background: #dcecff;
  transform: translateY(1px);
}

.task-tree-list-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.task-tree-list-chip {
  display: grid;
  gap: 2px;
  max-width: 100%;
  text-align: left;
  padding: 8px 10px;
  border: 1px solid #e8eef5;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.task-tree-list-chip:hover {
  border-color: #91caff;
  box-shadow: 0 2px 8px rgba(24, 144, 255, .12);
}
.task-tree-list-chip.is-required { border-left: 3px solid var(--td-primary, #1890ff); }
.task-tree-list-chip.is-optional { border-left: 3px solid #bfbfbf; }
.task-tree-list-chip.is-done { opacity: .78; }
.task-tree-list-chip-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--td-text, rgba(0, 0, 0, .88));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.task-tree-list-chip-meta {
  font-size: 11px;
  color: var(--td-muted, rgba(0, 0, 0, .45));
}

.task-tree-detail {
  width: min(420px, 42%);
  border-left: 1px solid var(--td-border, #f0f0f0);
  background: #fff;
  display: flex;
  flex-direction: column;
  min-height: 0;
  box-shadow: -4px 0 16px rgba(0, 0, 0, .04);
}
.task-tree-detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--td-border, #f0f0f0);
  background: #fafafa;
}
.task-tree-detail-head h3 { margin: 0; font-size: 14px; font-weight: 600; color: var(--td-text, rgba(0, 0, 0, .88)); }
.task-tree-detail-body { flex: 1; overflow: auto; padding: 0; background: #fff; }
.task-tree-empty {
  padding: 48px 24px;
  text-align: center;
  color: var(--td-muted, rgba(0, 0, 0, .45));
  font-size: 14px;
  line-height: 1.6;
}
#taskDrawer .td-sec,
#feedbackDrawer .td-sec { padding: 14px 16px; border: 1px solid #dce5ef; border-radius: var(--td-radius); background: #fff; box-shadow: 0 8px 24px rgba(15, 35, 62, .045); }
.td-sec-title { padding: 18px 20px; border-left: 3px solid #155eef; }
.td-block-title { margin: 0 0 10px; color: var(--td-text); font-size: 14px; font-weight: 600; line-height: 22px; }
.td-block-title small { margin-left: 4px; color: var(--td-muted); font-size: 12px; font-weight: 400; }
.td-muted { margin: 0; color: var(--td-muted); font-size: 12px; line-height: 20px; }
.td-alert { padding: 8px 10px; border: 1px solid #ffccc7; border-radius: 4px; color: var(--td-danger); background: #fff2f0; font-size: 12px; }
.td-title-row { display: block; min-width: 0; }
.td-title-main { display: flex; flex-direction: column; justify-content: center; gap: 10px; min-height: 0; }
.td-h1 { margin: 0; color: #101828; font-size: 19px; font-weight: 700; line-height: 1.42; }
.td-tags { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.td-tags > .td-status { flex-shrink: 0; }
.td-tag { display: inline-flex; gap: 4px; align-items: center; height: 22px; padding: 0 8px; border-radius: 4px; font-size: 12px; line-height: 20px; }
.td-tag-blue { color: var(--td-primary); background: #e6f4ff; border: 1px solid #91caff; }
.td-tag-bug { color: var(--td-danger); background: #fff1f0; border: 1px solid #ffccc7; }
.td-tag-soft { color: #595959; background: #fafafa; border: 1px solid #d9d9d9; }
.td-tag-p0, .td-tag-priority.p0 { color: #fff; background: #ff4d4f; border: 0; font-weight: 500; }
.td-tag-priority.p1 { color: #fff; background: #fa8c16; border: 0; font-weight: 500; }
.td-tag-priority.p2 { color: #fff; background: #1890ff; border: 0; font-weight: 500; }
.td-tag-priority.p3 { color: #fff; background: #52c41a; border: 0; font-weight: 500; }
.td-tag-purple { color: #722ed1; background: #f9f0ff; border: 1px solid #d3adf7; }
.td-tag-gray { color: #595959; background: #fafafa; border: 1px solid #d9d9d9; }
.td-tag-orange { color: #d46b08; background: #fff7e6; border: 1px solid #ffd591; }
.td-title-mid { display: flex; flex-direction: column; gap: 10px; align-items: flex-end; justify-content: center; align-self: center; padding: 2px 0 2px 8px; white-space: nowrap; }
.td-status { display: inline-flex; align-items: center; gap: 4px; height: 24px; padding: 0 10px; border-radius: 4px; font-size: 12px; line-height: 22px; }
button.td-status { cursor: pointer; border: none; font: inherit; transition: filter .15s ease, box-shadow .15s ease; }
button.td-status:hover,
button.td-status:focus-visible { filter: brightness(0.97); box-shadow: 0 0 0 2px rgba(22, 119, 255, .12); }
.td-status.success { color: #52c41a; background: #f6ffed; border: 1px solid #b7eb8f; }
.td-status.danger { color: var(--td-danger); background: #fff2f0; border: 1px solid #ffccc7; }
.td-status.info { color: var(--td-primary); background: #e6f4ff; border: 1px solid #91caff; }
.td-countdown { display: inline-flex; gap: 6px; align-items: center; margin: 0; color: var(--td-muted); font-size: 12px; line-height: 20px; }
.td-countdown.is-urgent { color: var(--td-danger); }
.td-focus-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}
.td-focus-strip:has(.td-focus-item:nth-child(5)) {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.td-focus-countdown { color: #64748b; font-weight: 600; }
.td-focus-countdown.is-urgent { color: var(--td-danger); }
.td-progress-v2-col.has-detail {
  cursor: help;
}
.td-progress-v2-col.has-detail:hover,
.td-progress-v2-col.has-detail:focus-within {
  z-index: 30;
}
.td-focus-item {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid #dfe7f2;
  border-left: 3px solid #8ea4bd;
  border-radius: 8px;
  background: #f8fbff;
}
.td-focus-item em {
  overflow: hidden;
  color: #5f7188;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.td-focus-item b {
  overflow: hidden;
  color: #172033;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.td-focus-item.is-info { border-left-color: #155eef; background: #f4f8ff; }
.td-focus-item.is-success,
.td-focus-item.is-stable { border-left-color: #12b76a; background: #f4fbf7; }
.td-focus-item.is-warn { border-left-color: #f79009; background: #fff8ec; }
.td-focus-item.is-danger { border-left-color: #d92d20; background: #fff5f3; }
.td-focus-item.is-info b { color: #155eef; }
.td-focus-item.is-success b,
.td-focus-item.is-stable b { color: #087443; }
.td-focus-item.is-warn b { color: #b54708; }
.td-focus-item.is-danger b { color: #b42318; }
.task-work-card.has-due-soon .task-deadline-line time { color: #b45309; }
.task-drawer-header-left { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.drawer-sla-badges { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.drawer-sla-chip { display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 10px; border-radius: 999px; border: 1px solid #dfe7f2; background: #f8fbff; color: #6d8096; font-size: 11px; font-weight: var(--weight-strong); white-space: nowrap; }
.drawer-sla-chip i { font-style: normal; font-weight: 900; }
.drawer-sla-chip b { font-size: 12px; font-weight: var(--weight-display); font-variant-numeric: tabular-nums; }
.drawer-sla-chip--info { border-color: #b9d6ff; color: #1677ff; background: #eef6ff; }
.drawer-sla-chip--info b { color: #1677ff; }
.drawer-sla-chip--urgent, .drawer-sla-chip--warn { border-color: #ffe7ba; color: #d48806; background: #fffbe6; }
.drawer-sla-chip--urgent b, .drawer-sla-chip--warn b { color: #d48806; }
.drawer-sla-chip--violated { border-color: #ffccc7; color: #f14444; background: #fff2f0; }
.drawer-sla-chip--violated b { color: #f14444; }
.drawer-sla-chip--paused { border-color: #d3adf7; color: #722ed1; background: #f9f0ff; }
.drawer-sla-chip--paused b { color: #722ed1; }
.subtask-expand-panel { display: grid; gap: 8px; }
.task-subtask-row { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto auto; gap: 10px 12px; align-items: center; padding: 10px 12px; border: 1px solid #e8eef5; border-radius: 8px; background: #fff; }
.task-subtask-row.is-done { opacity: .88; background: #fcfefd; }
.task-subtask-av { position: relative; display: inline-flex; }
.task-subtask-body { min-width: 0; }
.task-subtask-body b { display: block; font-size: 13px; color: #12233c; }
.task-subtask-body small { display: block; margin-top: 4px; color: #8b98a8; font-size: 11px; line-height: 1.45; }
.task-subtask-body p { margin: 6px 0 0; color: #607086; font-size: 11px; line-height: 1.45; }
.task-subtask-result { color: #4f6278 !important; }
.task-subtask-actions { display: flex; gap: 6px; flex-shrink: 0; }
.row-action.subtle { color: #8b98a8; border-color: #e8eef5; }
@keyframes slaPulse { 0%, 100% { opacity: 1; } 50% { opacity: .82; } }
.td-sidebox { padding: 10px 12px; border: 1px solid var(--td-border); border-radius: var(--td-radius); background: #fafafa; }
.td-sidebox-row { display: grid; gap: 4px; margin-bottom: 10px; }
.td-sidebox-row:last-child { margin-bottom: 0; }
.td-sidebox-k { color: var(--td-muted); font-size: 12px; line-height: 20px; }
.td-sidebox-row b, .td-sidebox-row .td-person { display: inline-flex; gap: 4px; align-items: center; font-size: 13px; font-weight: 400; line-height: 20px; }
.td-compose-av.td-person-av { background: var(--td-primary); }
.td-progress-track { display: grid; grid-template-columns: repeat(5, 1fr); padding: 4px 0 0; }
.td-progress-step { position: relative; display: grid; justify-items: center; gap: 6px; text-align: center; cursor: default; }
.td-progress-step::before { position: absolute; top: 11px; left: calc(-50% + 14px); width: calc(100% - 28px); height: 2px; background: #f0f0f0; content: ""; z-index: 0; }
.td-progress-step:first-child::before { display: none; }
.td-progress-node { position: relative; z-index: 1; display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid #d9d9d9; border-radius: 50%; background: #fff; }
.td-progress-ic { display: block; width: 12px; height: 12px; background: #8c8c8c; opacity: .9; }
.td-progress-ic--create { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8zm0 2 4 4h-4z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8zm0 2 4 4h-4z'/%3E%3C/svg%3E") center/contain no-repeat; }
.td-progress-ic--assign { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 12a4 4 0 100-8 4 4 0 000 8zm-6 8a6 6 0 0112 0z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 12a4 4 0 100-8 4 4 0 000 8zm-6 8a6 6 0 0112 0z'/%3E%3C/svg%3E") center/contain no-repeat; }
.td-progress-ic--work { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a5 5 0 015 4.9V11h2v9H5v-9h2V6.9A5 5 0 0112 2zm0 2a3 3 0 00-3 2.9V11h6V6.9A3 3 0 0012 4z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a5 5 0 015 4.9V11h2v9H5v-9h2V6.9A5 5 0 0112 2zm0 2a3 3 0 00-3 2.9V11h6V6.9A3 3 0 0012 4z'/%3E%3C/svg%3E") center/contain no-repeat; }
.td-progress-ic--review { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 4.5C7 4.5 2.7 7.6 1 12c1.7 4.4 6 7.5 11 7.5s9.3-3.1 11-7.5C21.3 7.6 17 4.5 12 4.5zm0 2.5a5 5 0 110 10 5 5 0 010-10z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 4.5C7 4.5 2.7 7.6 1 12c1.7 4.4 6 7.5 11 7.5s9.3-3.1 11-7.5C21.3 7.6 17 4.5 12 4.5zm0 2.5a5 5 0 110 10 5 5 0 010-10z'/%3E%3C/svg%3E") center/contain no-repeat; }
.td-progress-ic--done { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 100 20 10 10 0 000-20zm-1.2 14.2-3.5-3.5 1.4-1.4 2.1 2.1 5.3-5.3 1.4 1.4z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 100 20 10 10 0 000-20zm-1.2 14.2-3.5-3.5 1.4-1.4 2.1 2.1 5.3-5.3 1.4 1.4z'/%3E%3C/svg%3E") center/contain no-repeat; }
.td-progress-step b { color: var(--td-text); font-size: 11px; font-weight: 400; line-height: 16px; white-space: nowrap; }
.td-progress-foot { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin-top: 10px; padding: 8px 10px; border-radius: 6px; background: #fafafa; color: var(--td-muted); font-size: 12px; line-height: 18px; }
.td-progress-foot.is-done { background: #f6ffed; color: #389e0d; }
.td-progress-deadline { display: inline-flex; gap: 6px; align-items: center; color: #ad6800; font-weight: 500; }
.td-progress-deadline-date { font-weight: 500; }
.td-progress-deadline-count {
  display: inline-flex;
  align-items: center;
  padding: 0 6px;
  border-radius: 4px;
  color: #ad6800;
  background: #fff7e6;
  font-size: 11px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: 18px;
}
.td-progress-deadline-count.is-overdue {
  color: #cf1322;
  background: #fff1f0;
}
.td-progress-action { color: var(--td-primary); font-weight: 500; }
.td-progress-foot .td-ic-calendar,
.td-progress-foot .td-ic-check { width: 13px; height: 13px; background: currentColor; opacity: .85; }
.td-progress-reject-badge { position: absolute; top: -5px; right: -8px; z-index: 2; min-width: 18px; height: 18px; padding: 0 4px; border: 1px solid #ffbb96; border-radius: 9px; color: #d4380d; background: #fff2e8; font-size: 10px; font-weight: 700; line-height: 16px; }
.td-progress-step.has-reject .td-progress-node { position: relative; }
.td-progress-step.has-reject.current .td-progress-node { border-color: #ff9c6e; box-shadow: 0 0 0 3px rgba(255, 153, 102, .18); }
.td-reject-notice { display: flex; gap: 10px; align-items: flex-start; margin-top: 8px; padding: 10px 12px; border: 1px solid #ffd591; border-radius: 6px; background: #fffbe6; font-size: 12px; line-height: 18px; }
.td-reject-notice.is-reviewer { border-color: #ffccc7; background: #fff7f0; }
.td-reject-notice.is-owner { border-color: #ffe7ba; background: #fffbe6; }
.td-reject-notice-badge { flex-shrink: 0; padding: 2px 8px; border-radius: 4px; color: #d4380d; background: #fff2e8; border: 1px solid #ffbb96; font-size: 11px; font-weight: 700; white-space: nowrap; }
.td-reject-notice-body { display: grid; gap: 2px; min-width: 0; }
.td-reject-notice-body b { color: #ad4e00; font-size: 12px; font-weight: 600; }
.td-reject-notice-body span { color: #8c6d1f; }
.td-reject-notice-reason { margin: 4px 0 0; color: #874d00; font-size: 11px; line-height: 16px; }
.td-person-warn { display: inline-flex; align-items: center; height: 20px; padding: 0 8px; margin-left: 4px; border-radius: 4px; color: #d4380d; background: #fff2e8; border: 1px solid #ffbb96; font-size: 11px; font-weight: 600; font-style: normal; white-space: nowrap; }
.td-person-warn.is-review { color: #ad4e00; background: #fffbe6; border-color: #ffe58f; }
.td-title-people { display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; margin-top: 0; }
.td-title-person { display: inline-flex; gap: 10px; align-items: center; color: var(--td-text); font-size: 13px; line-height: 20px; }
.td-title-person .td-person { gap: 8px; }
.td-title-person em { margin-left: 2px; padding-left: 10px; border-left: 1px solid #f0f0f0; color: var(--td-muted); font-size: 12px; font-style: normal; }
.td-title-cc { display: inline-flex; align-items: center; }
.td-progress-step.done::before,
.td-progress-step.current::before { background: var(--td-primary); }
.td-progress-step.done .td-progress-node { border-color: var(--td-primary); background: var(--td-primary); }
.td-progress-step.done .td-progress-ic { background: #fff; }
.td-progress-step.current .td-progress-node { border: 2px solid var(--td-primary); background: #fff; box-shadow: 0 0 0 3px rgba(22, 119, 255, .12); }
.td-progress-step.current .td-progress-ic { background: var(--td-primary); }
.td-progress-step.current b { color: var(--td-primary); font-weight: 500; }
.td-progress-node-badge {
  position: absolute;
  top: -6px;
  right: -10px;
  z-index: 2;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 9px;
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  white-space: nowrap;
  text-align: center;
}
.td-progress-node-badge.is-warn { border: 1px solid #ffbb96; color: #d4380d; background: #fff2e8; }
.td-progress-node-badge.is-danger { border: 1px solid #ffa39e; color: #cf1322; background: #fff1f0; }
.td-progress-v2 {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  overflow: visible;
}
#taskDrawer .td-sec:has(.td-progress-v2),
#feedbackDrawer .td-sec:has(.td-progress-v2) {
  overflow: visible;
}
.td-progress-v2-col {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  overflow: visible;
  cursor: default;
  border-radius: 8px;
  outline: none;
}
.td-progress-v2-rail {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 12px;
  overflow: visible;
}
.td-progress-v2-callout-slot {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  width: 100%;
  min-height: 24px;
  margin-bottom: 8px;
}
.td-progress-v2-callout-slot:empty {
  min-height: 24px;
  margin-bottom: 8px;
}
.td-progress-v2-callout {
  display: inline-flex;
  gap: 4px;
  align-items: center;
  max-width: 100%;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}
.td-progress-v2-callout span { overflow: hidden; text-overflow: ellipsis; }
.td-progress-v2-callout.is-danger { border: 1px solid #ffccc7; color: #ff4d4f; background: #fff2f0; }
.td-progress-v2-callout.is-warn { border: 1px solid #ffd591; color: #d46b08; background: #fff7e6; }
.td-progress-v2-callout-ic {
  display: block;
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  background: #ff4d4f;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.td-progress-v2-node {
  position: relative;
  z-index: 1;
  display: grid;
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: var(--td-primary);
  box-shadow: 0 0 0 4px rgba(22, 119, 255, .08);
}
.td-progress-v2-node .td-progress-ic { width: 16px; height: 16px; background: #fff; opacity: 1; }
.td-progress-v2-col.is-current .td-progress-v2-node { box-shadow: 0 0 0 4px rgba(22, 119, 255, .14); }
.td-progress-v2-col.is-pending .td-progress-v2-node { background: #d9d9d9; box-shadow: none; }
.td-progress-v2-col.is-pending .td-progress-v2-node .td-progress-ic { background: #fff; opacity: .95; }
.td-progress-v2-col.has-solid-link .td-progress-v2-rail::after,
.td-progress-v2-col.has-dashed-link .td-progress-v2-rail::after {
  position: absolute;
  top: calc(24px + 8px + 17px);
  left: calc(50% + 17px);
  z-index: 0;
  width: calc(100% - 34px + 8px);
  transform: translateY(-50%);
  content: "";
}
.td-progress-v2-col.has-solid-link .td-progress-v2-rail::after {
  height: 2px;
  background: var(--td-primary);
}
.td-progress-v2-col.has-dashed-link .td-progress-v2-rail::after {
  height: 2px;
  background: repeating-linear-gradient(to right, #d9d9d9 0 5px, transparent 5px 9px);
}
.td-progress-v2-card {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: 36px;
  padding: 8px 10px;
  border: 1px solid #f0f0f0;
  border-radius: 8px;
  background: #fff;
  text-align: center;
  overflow: visible;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.td-progress-v2-col.has-detail:hover .td-progress-v2-card,
.td-progress-v2-col.has-detail:focus-within .td-progress-v2-card,
.td-progress-v2-col.is-current .td-progress-v2-card {
  z-index: 4;
}
.td-progress-v2-card.is-current {
  border-color: #91caff;
  background: linear-gradient(180deg, #fafcff 0%, #f0f7ff 100%);
  box-shadow: 0 1px 4px rgba(22, 119, 255, .08);
}
.td-progress-v2-card.is-pending { background: #fcfcfc; }
.td-progress-v2-col.has-detail:hover .td-progress-v2-card,
.td-progress-v2-col.has-detail:focus-within .td-progress-v2-card {
  border-color: #91caff;
  box-shadow: 0 2px 8px rgba(22, 119, 255, .12);
}
.td-progress-v2-card-head {
  display: flex;
  gap: 6px;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 18px;
  margin-bottom: 0;
}
.td-progress-v2-card-head .td-progress-v2-check,
.td-progress-v2-card-head .td-progress-v2-dot {
  display: grid;
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  place-items: center;
}
.td-progress-v2-card-head b {
  overflow: hidden;
  color: var(--td-text);
  font-size: 12px;
  font-weight: 700;
  line-height: 18px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.td-progress-v2-card.is-current .td-progress-v2-card-head b { color: var(--td-primary); }
.td-progress-v2-card.is-pending .td-progress-v2-card-head b { color: #595959; }
.td-progress-v2-check {
  width: 14px;
  height: 14px;
  background: var(--td-primary);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9.2 16.2 4.8 11.8l1.4-1.4 3 3 7.6-7.6 1.4 1.4z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9.2 16.2 4.8 11.8l1.4-1.4 3 3 7.6-7.6 1.4 1.4z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.td-progress-v2-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
.td-progress-v2-dot.is-current { background: var(--td-primary); }
.td-progress-v2-dot.is-pending { background: #bfbfbf; }
.td-progress-v2-card-popover {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 40;
  display: none;
  min-width: 148px;
  padding: 8px 10px;
  border: 1px solid #91caff;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .14);
  pointer-events: none;
}
.td-progress-v2-col.has-detail:hover .td-progress-v2-card-popover,
.td-progress-v2-col.has-detail:focus-within .td-progress-v2-card-popover {
  display: block;
}
.td-progress-v2-card-rule {
  height: 0;
  margin-bottom: 8px;
  border-top: 1px dashed #e8e8e8;
}
.td-progress-v2-card-body {
  display: grid;
  gap: 5px;
  min-width: 0;
  text-align: center;
}
.td-progress-v2-row,
.td-progress-v2-note {
  display: flex;
  gap: 6px;
  align-items: center;
  justify-content: center;
  min-width: 0;
  margin: 0;
  color: #8c8c8c;
  font-size: 11px;
  line-height: 16px;
  text-align: center;
}
.td-progress-v2-row time { font-variant-numeric: tabular-nums; }
.td-progress-v2-note {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  word-break: break-word;
  text-align: center;
}
.td-progress-v2-card.is-pending .td-progress-v2-row,
.td-progress-v2-card.is-pending .td-progress-v2-note { color: #bfbfbf; }
.td-progress-clock,
.td-progress-user,
.td-progress-archive {
  display: block;
  flex-shrink: 0;
  width: 13px;
  height: 13px;
  margin-top: 1px;
  background: #bfbfbf;
}
.td-progress-clock {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 100 20 10 10 0 000-20zm0 2a8 8 0 110 16 8 8 0 010-16zm1 3h-2v6l4 2 .9-1.45-2.9-1.55z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 100 20 10 10 0 000-20zm0 2a8 8 0 110 16 8 8 0 010-16zm1 3h-2v6l4 2 .9-1.45-2.9-1.55z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.td-progress-user {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 12a4 4 0 100-8 4 4 0 000 8zm-7 9a7 7 0 0114 0z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 12a4 4 0 100-8 4 4 0 000 8zm-7 9a7 7 0 0114 0z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.td-progress-archive {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 4h16v4H4zm2 6h12l-1 10H7zm4 2v6h2v-6z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 4h16v4H4zm2 6h12l-1 10H7zm4 2v6h2v-6z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.td-info-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
.td-info-col { display: grid; gap: 0; align-content: start; }
.td-info-row { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 8px; align-items: center; padding: 10px 0; border-top: 1px solid #f5f5f5; }
.td-info-row:first-child { border-top: 0; padding-top: 0; }
.td-info-row:last-child { padding-bottom: 0; }
.td-info-k { display: inline-flex; gap: 4px; align-items: center; color: var(--td-muted); font-size: 12px; line-height: 20px; white-space: nowrap; }
.td-info-v { display: inline-flex; gap: 6px; align-items: center; min-width: 0; color: var(--td-text); font-size: 13px; line-height: 20px; }
.td-info-v.is-danger { color: var(--td-danger); }
.td-priority-tag { display: inline-grid; min-width: 22px; height: 18px; padding: 0 4px; place-items: center; border-radius: 3px; color: #fff; font-size: 11px; font-weight: 600; }
.td-priority-tag.p0 { background: #ff4d4f; }
.td-priority-tag.p1 { background: #fa8c16; }
.td-priority-tag.p2 { background: #1890ff; }
.td-priority-tag.p3 { background: #52c41a; }
.td-person { display: inline-flex; gap: 6px; align-items: center; min-width: 0; }
.td-person-av { display: grid; width: 22px; height: 22px; flex-shrink: 0; place-items: center; border-radius: 50%; color: #fff; background: #87d068; font-size: 11px; font-style: normal; font-weight: 500; }
.td-person em { overflow: hidden; color: var(--td-text); font-size: 13px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.td-cc-line { display: inline-flex; gap: 6px; align-items: center; min-width: 0; }
.td-cc-line em { overflow: hidden; color: var(--td-text); font-size: 13px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.td-cc-avatar { display: grid; width: 22px; height: 22px; margin-right: -6px; place-items: center; border: 1px solid #fff; border-radius: 50%; color: rgba(0,0,0,.65); background: #f0f0f0; font-size: 10px; font-style: normal; }
.td-desc { margin: 0; color: rgba(0,0,0,.65); font-size: 13px; line-height: 20px; }
.td-files { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 10px; padding-top: 10px; border-top: 1px solid #f5f5f5; }
.td-files-label { flex-shrink: 0; font-size: 13px; font-weight: 600; color: var(--td-text); }
.td-files-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.td-body-stack { display: flex; flex-direction: column; gap: var(--td-gap); }
.td-detail-workspace {
  display: flex;
  flex-direction: column;
  min-height: 0;
  gap: 10px;
}
.td-detail-tabs {
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px;
  border: 1px solid #dce5ef;
  border-radius: 10px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 6px 18px rgba(15, 35, 62, .06);
  backdrop-filter: blur(8px);
}
.td-detail-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 86px;
  height: 34px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 7px;
  color: #52657a;
  background: transparent;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.td-detail-tab:hover {
  color: var(--td-primary, #1890ff);
  background: #f4f8ff;
}
.td-detail-tab.is-active {
  color: #155eef;
  border-color: #b9d6ff;
  background: #eaf4ff;
  box-shadow: inset 0 0 0 1px rgba(21, 94, 239, .08);
}
.td-detail-tab span {
  display: inline-grid;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  place-items: center;
  border-radius: 999px;
  background: rgba(21, 94, 239, .1);
  color: inherit;
  font-size: 11px;
  font-weight: 800;
  line-height: 18px;
}
.td-detail-panels {
  min-height: 0;
}
.td-detail-panel {
  display: none;
  flex-direction: column;
  gap: var(--td-gap);
  min-height: 0;
}
.td-detail-panel.is-active {
  display: flex;
}
.td-detail-panel[hidden] {
  display: none !important;
}
.td-detail-panel .td-sec-desc .td-desc {
  max-height: min(28vh, 260px);
  overflow-y: auto;
  padding-right: 4px;
}
.td-detail-panel[data-task-detail-panel="collab"] .td-sec-comments {
  max-height: min(48vh, 430px);
  overflow: auto;
}
#taskDrawer .drawer-body:has([data-task-detail-panel="records"].is-active) {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#taskDrawer .drawer-body:has([data-task-detail-panel="records"].is-active) .td-shell,
#taskDrawer .drawer-body:has([data-task-detail-panel="records"].is-active) .td-detail-workspace,
#taskDrawer .drawer-body:has([data-task-detail-panel="records"].is-active) .td-detail-panels {
  flex: 1;
  min-height: 0;
}
#taskDrawer .drawer-body:has([data-task-detail-panel="records"].is-active) .td-shell {
  display: flex;
  flex-direction: column;
}
#taskDrawer .drawer-body:has([data-task-detail-panel="records"].is-active) .td-detail-panels {
  display: flex;
  flex-direction: column;
}
.td-detail-panel[data-task-detail-panel="records"].is-active {
  flex: 1;
  min-height: 0;
}
.td-detail-panel[data-task-detail-panel="records"] .td-sec-log {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  max-height: none;
  overflow: hidden;
}
.td-detail-panel[data-task-detail-panel="records"] .td-detail-log-list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}
.td-detail-log-list {
  padding-right: 2px;
}
.td-fold-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.td-fold-head .td-block-title {
  margin: 0;
  flex: 1;
  min-width: 0;
}
.td-fold-btn {
  display: inline-flex;
  flex-shrink: 0;
  gap: 6px;
  align-items: center;
  height: 28px;
  padding: 0 10px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  color: var(--td-primary);
  background: #fff;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  transition: border-color .2s, color .2s, background .2s;
}
.td-fold-btn:hover {
  border-color: var(--td-primary);
  background: #f0f7ff;
}
.td-fold-caret {
  display: grid;
  width: 10px;
  height: 10px;
  place-items: center;
}
.td-fold-caret::before {
  display: block;
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform .2s ease;
  content: "";
}
.td-fold.is-expanded .td-fold-caret::before {
  transform: rotate(-135deg);
  margin-top: 3px;
}
.td-fold-body {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #f0f4f8;
}
.td-fold-body[hidden] {
  display: none !important;
}
.td-sec-subtasks { flex-shrink: 0; }
.td-sec-subtasks-panel .td-block-title { margin: 0; }
.td-subtasks-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.td-sec-subtasks .td-block-title { margin-bottom: 8px; }
.td-subtasks-panel { display: flex; flex-direction: column; justify-content: flex-start; align-items: stretch; }
.td-sec-subtasks .td-subtasks { display: flex; flex-direction: column; gap: 0; }
.td-sec-subtasks .td-subtasks .td-muted { padding: 2px 0 0; }
.td-sec-subtasks .td-add-sub { margin-top: 8px; }
.td-logs-sheet { margin-top: 4px; }
#taskDrawer .td-btn-sm,
#taskSubtaskDrawer .td-btn-sm { height: 28px; padding: 0 10px; font-size: 13px; }
.td-sec-comments.dy-comments-sec {
  padding: 0;
  background: #fff;
}
.dy-comments-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 10px;
  border-bottom: 1px solid #f1f1f2;
}
.dy-comments-title {
  margin: 0;
  color: #161823;
  font-size: 15px;
  font-weight: var(--weight-strong);
  line-height: 1.2;
}
.dy-comments-title span {
  margin-left: 4px;
  color: #161823;
  font-weight: var(--weight-strong);
}
.dy-comments-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.dy-comments-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 4px 0 0;
}
.dy-comments-preview {
  padding: 0;
}
.td-sec-comments.is-comments-panel-open .dy-comments-preview {
  display: none !important;
}
.dy-comments-preview-empty {
  margin: 0;
  padding: 12px 16px 16px;
  color: #8a8b91;
  font-size: 13px;
}
.dy-comments-panel-link {
  flex-shrink: 0;
  padding: 0;
  border: 0;
  color: var(--td-primary, #1890ff);
  background: transparent;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
}
.dy-comments-panel-link:hover {
  color: #40a9ff;
}
.dy-compose-slot[hidden] { display: none !important; }
.td-sec-compose-panel {
  flex-shrink: 0;
  padding: 0 16px 12px 22px;
}
.td-sec-compose-panel .dy-compose-slot-default {
  display: block !important;
  width: 100%;
  padding: 0;
}
.td-sec-comments .dy-compose-slot-default {
  display: block !important;
  flex-shrink: 0;
  padding: 12px 16px 0 22px;
}
.td-comment-compose {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.td-comment-compose.is-collapsed .td-comment-compose-shell {
  border: 1px solid #e3eaf2;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 35, 62, .05);
}
.td-comment-compose.is-expanded {
  overflow: visible;
  border: 0;
  box-shadow: none;
}
.td-comment-compose-shell {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 4px 6px 4px 12px;
}
.td-comment-compose-trigger {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  height: 36px;
  padding: 0 12px;
  border: 0;
  border-radius: 8px;
  color: #b4b4b8;
  background: transparent;
  font-size: 14px;
  line-height: 1.4;
  text-align: left;
  cursor: text;
}
.td-comment-compose-trigger:hover {
  background: #f8fafc;
}
.td-comment-compose.is-expanded .td-comment-compose-trigger {
  display: none;
}
.td-comment-compose.is-expanded .td-comment-compose-shell {
  display: none;
}
.td-comment-compose-send--foot {
  display: none;
}
.td-comment-compose.is-expanded .td-comment-compose-send--inline {
  display: none;
}
.td-comment-compose.is-expanded .td-comment-compose-send--foot {
  display: inline-flex;
}
.td-comment-compose-placeholder {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.td-comment-compose-send {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  height: 32px;
  padding: 0 14px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  color: rgba(0, 0, 0, .45);
  background: #fafafa;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  transition: color .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.td-comment-compose-send.is-ready {
  border-color: #1677ff;
  color: #fff;
  background: #1677ff;
  box-shadow: 0 2px 6px rgba(22, 119, 255, .22);
}
.td-comment-compose-send.is-ready:hover {
  background: #4096ff;
  border-color: #4096ff;
}
.td-comment-compose-send:disabled {
  cursor: default;
}
.td-comment-compose-expand {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: max-height .28s cubic-bezier(.4, 0, .2, 1), opacity .22s ease;
}
.td-comment-compose.is-expanded .td-comment-compose-expand {
  max-height: min(72vh, 560px);
  opacity: 1;
  pointer-events: auto;
  padding-left: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.td-comment-compose.is-editor-enlarged.is-expanded .td-comment-compose-expand {
  max-height: none;
  overflow: visible;
}
.td-comment-compose.is-editor-enlarged.is-expanded .rich-editor-compose {
  overflow: visible;
}
.td-comment-compose.is-expanded .rich-editor-compose {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.td-comment-compose-expand .td-comment-snippet-host {
  padding: 0;
}
.rich-editor-compose {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}
.rich-editor-compose > .create-textarea-wrap.rich-editor-field,
.rich-editor-compose > .create-textarea-wrap.rich-editor-shell {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.rich-editor-compose > .rich-compose-footer {
  flex: 0 0 auto;
}
.rich-editor-compose .create-textarea-wrap.rich-editor-field {
  border: 0;
  border-radius: 0;
  overflow: hidden;
  background: transparent;
}
.rich-compose-footer {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0 8px;
  background: #fff;
  border: 0;
  flex: 0 0 auto;
}
.rich-compose-footer .wf-snippet-host--footer {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0;
  margin: 0;
}
.rich-compose-footer .wf-snippet-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.rich-compose-footer .wf-snippet-label {
  display: none !important;
}
.rich-compose-footer .wf-snippet-chips {
  display: flex;
  flex: 0 1 auto;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  min-width: 0;
}
.rich-compose-footer .wf-snippet-chip {
  padding: 3px 8px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
  font-size: 11px;
  line-height: 1.3;
}
.rich-compose-footer .wf-snippet-chip:hover {
  border-color: #93c5fd;
  background: #f8fbff;
}
.rich-compose-footer .wf-snippet-manage {
  flex-shrink: 0;
}
.wf-snippet-host--footer,
.wf-snippet-host--below {
  position: static;
  left: auto;
  bottom: auto;
  z-index: auto;
  max-width: none;
  padding: 0;
  pointer-events: auto;
  background: transparent;
  border: 0;
}
.wf-snippet-host--footer .wf-snippet-bar,
.wf-snippet-host--below .wf-snippet-bar {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  gap: 4px 6px;
}
.wf-snippet-host--footer .wf-snippet-label,
.wf-snippet-host--below .wf-snippet-label {
  display: none !important;
}
.sheet-inline-snippet-host:not(.wf-snippet-host--footer):not(.wf-snippet-host--below) {
  position: absolute;
  left: 10px;
  bottom: 10px;
  z-index: 6;
  max-width: calc(100% - 88px);
  pointer-events: auto;
}
.sheet-inline-snippet-host:not(.wf-snippet-host--footer):not(.wf-snippet-host--below) .wf-snippet-bar {
  margin: 0;
  padding: 3px 6px;
  border: 1px solid rgba(219, 231, 245, .85);
  border-radius: 8px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 2px 8px rgba(15, 35, 62, .08);
  gap: 4px 6px;
  backdrop-filter: blur(6px);
}
.sheet-mention-host.has-inline-snippets,
.create-textarea-wrap.has-inline-snippets,
.sheet-inline-textarea-host.has-inline-snippets {
  position: relative;
}
.sheet-mention-host.has-inline-snippets .EasyMDEContainer,
.create-textarea-wrap.has-inline-snippets .EasyMDEContainer {
  padding-bottom: 0;
}
.sheet-inline-textarea-host.has-inline-snippets textarea {
  padding-bottom: 0;
}
.sheet-inline-textarea-host {
  position: relative;
}
.sheet-inline-textarea-host textarea {
  width: 100%;
  box-sizing: border-box;
}
#taskActionDrawer .task-action-drawer-body .sheet-mention-host.has-inline-snippets .EasyMDEContainer .CodeMirror {
  padding-bottom: 0;
}
#taskActionDrawer .task-action-drawer-body .wf-snippet-host--footer,
#taskActionDrawer .task-action-drawer-body .rich-compose-footer {
  padding: 4px 0 8px;
}
#taskActionDrawer .task-action-drawer-body .rich-compose-footer.sheet-compose-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: nowrap;
  padding: 6px 0 8px;
}
#taskActionDrawer .task-action-drawer-body .rich-compose-footer .wf-snippet-host--footer {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0;
}
#taskActionDrawer .task-action-drawer-body .rich-compose-footer .rich-editor-char-counter {
  margin: 0;
  flex: 0 0 auto;
  white-space: nowrap;
}
#taskSubtaskDrawer .td-sec-comments .dy-compose-slot-default {
  padding: 12px 16px 0 22px;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell {
  position: relative;
  margin: 0;
  border: 0;
  border-radius: 0;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready {
  overflow: hidden;
  width: 100%;
  box-sizing: border-box;
  flex: 1 1 auto;
  min-height: 0;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .EasyMDEContainer {
  display: flex;
  flex-direction: column;
  border: 0;
  border-radius: 0;
  min-height: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  box-shadow: none !important;
  overflow: hidden;
  flex: 1 1 auto;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .EasyMDEContainer:focus-within {
  border: 0 !important;
  box-shadow: none !important;
  outline: none;
}
.td-comment-compose:focus-within.is-expanded {
  border: 0;
  box-shadow: none;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready {
  --xm-re-btn-size: 26px;
  --xm-re-icon-size: 16px;
  --xm-re-btn-radius: 6px;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .editor-toolbar {
  flex: 0 0 auto;
  min-height: 0;
  padding: 3px 0;
  gap: 0 1px;
  align-content: center;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .editor-toolbar button.xm-re-heading-trigger {
  min-width: 64px !important;
  padding: 0 6px !important;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .editor-toolbar button.xm-re-heading-trigger .xm-re-heading-label {
  font-size: 12px;
  font-weight: 600;
  color: #0d0d0d;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .editor-toolbar i.separator {
  height: 18px;
  margin: 0 2px;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror,
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror-scroll {
  width: 100% !important;
  max-width: 100%;
  box-sizing: border-box;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0 !important;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror-scroll {
  min-height: 120px;
  padding-bottom: 6px !important;
  overflow-y: auto !important;
}
.td-comment-compose-footer {
  padding: 2px 0 8px;
}
.td-comment-compose-footer .td-comment-compose-send--foot {
  position: static;
  right: auto;
  bottom: auto;
  z-index: auto;
  flex-shrink: 0;
}
.td-comment-compose.is-expanded .td-comment-compose-send--foot {
  position: static;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror-lines {
  padding: 8px 0 6px;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror-placeholder {
  left: 0 !important;
  right: 0 !important;
}
.td-comment-compose .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror-placeholder {
  color: #b4b4b8;
  font-size: 14px;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
}
.td-comment-compose-extras {
  padding: 6px 0 0;
}
.td-comment-snippet-host {
  margin-bottom: 0;
}
.dy-compose-slot .dy-compose-box {
  margin-top: 8px;
  padding: 10px 0 0;
  border-top: 1px solid #f1f1f2;
  border-bottom: 0;
  background: transparent;
}
.dy-compose-slot-default {
  display: block;
  width: 100%;
}
.dy-compose-slot-default .dy-compose-box {
  border-bottom: 1px solid #f1f1f2;
  background: #fff;
}
.dy-comments-empty {
  margin: 0;
  padding: 28px 16px 12px;
  color: #8a8b91;
  font-size: 13px;
  text-align: center;
}
.dy-comment-thread + .dy-comment-thread {
  border-top: 1px solid #ebebeb;
}
.dy-comment-thread {
  padding: 14px 16px 12px;
}
.dy-comment-thread--record {
  padding: 12px 16px;
  background: #fafbfc;
}
.dy-comment-thread--handoff-result {
  border-left: 3px solid #1677ff;
  background: linear-gradient(90deg, #f0f7ff 0%, #fafbfc 48px);
}
.dy-comment-thread--review-reject {
  border-left: 3px solid #fa8c16;
  background: linear-gradient(90deg, #fff7e6 0%, #fafbfc 48px);
}
.dy-comment-thread--delay-request {
  border-left: 3px solid #faad14;
  background: linear-gradient(90deg, #fffbe6 0%, #fafbfc 48px);
}
.dy-comment-layout-record {
  grid-template-columns: 36px minmax(0, 1fr);
}
.dy-comment-av-record {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 8px;
  color: #1677ff;
  background: #e6f4ff;
}
.dy-comment-av-record--review-reject {
  color: #d46b08;
  background: #fff7e6;
}
.dy-comment-av-record--delay-request {
  color: #d48806;
  background: #fffbe6;
}
.dy-ic-record-handoff,
.dy-ic-record-reject,
.dy-ic-record-delay {
  display: inline-block;
  width: 18px;
  height: 18px;
  background: currentColor;
}
.dy-ic-record-handoff {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 12L21 4l-3.5 16-4.5-6.5L3 12zm8.2 0L17 8.5 8.7 11.2 11.2 12.8z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 12L21 4l-3.5 16-4.5-6.5L3 12zm8.2 0L17 8.5 8.7 11.2 11.2 12.8z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.dy-ic-record-reject {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.dy-ic-record-delay {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 100 20 10 10 0 000-20zm1 5h-2v6l5 3 .9-1.45-3.9-2.3z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 100 20 10 10 0 000-20zm1 5h-2v6l5 3 .9-1.45-3.9-2.3z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.dy-comment-user-record {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.dy-comment-kind-badge {
  display: inline-flex;
  align-items: center;
  height: 18px;
  padding: 0 6px;
  border-radius: 3px;
  color: #1677ff;
  background: #e6f4ff;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
}
.dy-comment-thread--review-reject .dy-comment-kind-badge {
  color: #d46b08;
  background: #fff7e6;
}
.dy-comment-thread--delay-request .dy-comment-kind-badge {
  color: #d48806;
  background: #fffbe6;
}
.dy-comment-content-record {
  color: rgba(0, 0, 0, .78);
  font-size: 14px;
  line-height: 1.5;
  min-width: 0;
  max-width: 100%;
}
/* 任务抽屉评论区/描述：富文本表格自适应侧栏宽度，不撑破弹窗 */
#taskDrawer .dy-comment-thread--record,
#taskSubtaskDrawer .dy-comment-thread--record,
#taskActionDrawer .dy-comment-thread--record {
  min-width: 0;
  max-width: 100%;
}
#taskDrawer .dy-comment-content.rich-content,
#taskSubtaskDrawer .dy-comment-content.rich-content,
#taskActionDrawer .dy-comment-content.rich-content,
#taskDrawer .td-desc.rich-content,
#taskSubtaskDrawer .td-desc.rich-content {
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
#taskDrawer .dy-comment-content.rich-content table.xm-md-table,
#taskSubtaskDrawer .dy-comment-content.rich-content table.xm-md-table,
#taskActionDrawer .dy-comment-content.rich-content table.xm-md-table,
#taskDrawer .td-desc.rich-content table.xm-md-table,
#taskSubtaskDrawer .td-desc.rich-content table.xm-md-table {
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
}
#taskDrawer .dy-comment-content.rich-content table.xm-md-table col,
#taskSubtaskDrawer .dy-comment-content.rich-content table.xm-md-table col,
#taskActionDrawer .dy-comment-content.rich-content table.xm-md-table col,
#taskDrawer .td-desc.rich-content table.xm-md-table col,
#taskSubtaskDrawer .td-desc.rich-content table.xm-md-table col {
  width: auto !important;
}
#taskDrawer .dy-comment-content.rich-content table.xm-md-table th,
#taskDrawer .dy-comment-content.rich-content table.xm-md-table td,
#taskSubtaskDrawer .dy-comment-content.rich-content table.xm-md-table th,
#taskSubtaskDrawer .dy-comment-content.rich-content table.xm-md-table td,
#taskActionDrawer .dy-comment-content.rich-content table.xm-md-table th,
#taskActionDrawer .dy-comment-content.rich-content table.xm-md-table td,
#taskDrawer .td-desc.rich-content table.xm-md-table th,
#taskDrawer .td-desc.rich-content table.xm-md-table td,
#taskSubtaskDrawer .td-desc.rich-content table.xm-md-table th,
#taskSubtaskDrawer .td-desc.rich-content table.xm-md-table td {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: normal;
}
.dy-comment-foot-record {
  margin-top: 6px;
}
.dy-comment-layout {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
}
.dy-comment-av-wrap { flex-shrink: 0; }
.dy-comment-av {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #87d068;
  font-size: 14px;
  font-weight: 600;
}
.dy-comment-av-sm {
  width: 28px;
  height: 28px;
  font-size: 12px;
}
.dy-comment-main { min-width: 0; }
.dy-comment-user {
  margin-bottom: 4px;
  color: #8a8b91;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
}
.dy-comment-user-target {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}
.dy-reply-arrow {
  display: inline-block;
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 6px solid #b4b4b8;
}
.dy-comment-content {
  color: #161823;
  font-size: 15px;
  line-height: 1.55;
  word-break: break-word;
}
.dy-comment-content.rich-content {
  font-size: 15px;
  color: #161823;
}
.dy-comment-content.rich-content p,
.dy-comment-content.rich-content li,
.dy-comment-content.rich-content blockquote,
.dy-comment-content.rich-content h1,
.dy-comment-content.rich-content h2,
.dy-comment-content.rich-content h3,
.dy-comment-content.rich-content h4,
.dy-comment-content.rich-content h5,
.dy-comment-content.rich-content h6 {
  margin: 0;
  color: inherit;
}
.dy-comment-content.is-clamped:not(.is-expanded) {
  position: relative;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  word-break: break-word;
  cursor: pointer;
  padding: 8px 10px;
  border-radius: 6px;
  background: #f5f8fc;
  border: 1px solid #e8eef5;
}
.dy-comment-content.is-clamped:not(.is-expanded) .dy-comment-empty-lead {
  display: none !important;
}
.dy-comment-content.is-clamped:not(.is-expanded)::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1.4em;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(245, 248, 252, 0) 0%, #f5f8fc 85%);
}
.dy-comment-content.is-collapsible.is-clamped:not(.is-expanded):hover {
  border-color: #91caff;
  background: #eef6ff;
}
.dy-comment-content.is-collapsible.is-expanded {
  padding: 2px 0;
}
.dy-comment-expand-hint {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 6px 0 0;
  padding: 0;
  border: 0;
  color: var(--td-primary, #1890ff);
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
  cursor: pointer;
}
.dy-comment-expand-hint::after {
  content: "▼";
  font-size: 10px;
  opacity: .85;
  transform: scale(.92);
}
.dy-comment-expand-hint.is-expanded::after {
  content: "▲";
}
.dy-comment-expand-hint:hover {
  color: #40a9ff;
  text-decoration: underline;
}
.dy-comment-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
  color: #8a8b91;
  font-size: 12px;
  line-height: 1.2;
}
.dy-comment-foot time,
.dy-comment-loc {
  color: #8a8b91;
}
.dy-comment-sep { color: #c7c8cc; }
.dy-comment-reply-btn {
  padding: 0;
  border: 0;
  color: var(--td-primary, #1890ff);
  background: transparent;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}
.dy-comment-reply-btn:hover { color: #40a9ff; }
.dy-comment-actions {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  padding-top: 4px;
}
.dy-comment-like-btn,
.dy-comment-dislike-btn {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 3px;
  padding: 0;
  border: 0;
  color: #8a8b91;
  background: transparent;
  cursor: pointer;
}
.dy-comment-like-btn span {
  min-width: 10px;
  min-height: 14px;
  font-size: 11px;
  line-height: 1;
}
.dy-comment-like-btn.is-active,
.dy-comment-like-btn.is-active .dy-ic-like {
  color: #fe2c55;
}
.dy-comment-dislike-btn.is-active,
.dy-comment-dislike-btn.is-active .dy-ic-dislike {
  color: #161823;
}
.dy-ic-like,
.dy-ic-dislike {
  display: block;
  width: 18px;
  height: 18px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 18px 18px;
}
.dy-ic-like {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a8b91' stroke-width='1.8'%3E%3Cpath d='M12 21s-7.2-4.35-9.6-8.1C.75 9.9 2.1 6.6 5.4 5.4c2.1-.75 4.2.15 5.4 1.8 1.2-1.65 3.3-2.55 5.4-1.8 3.3 1.2 4.65 4.5 3 7.5C19.2 16.65 12 21 12 21z'/%3E%3C/svg%3E");
}
.dy-comment-like-btn.is-active .dy-ic-like {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fe2c55' stroke='%23fe2c55' stroke-width='1.2'%3E%3Cpath d='M12 21s-7.2-4.35-9.6-8.1C.75 9.9 2.1 6.6 5.4 5.4c2.1-.75 4.2.15 5.4 1.8 1.2-1.65 3.3-2.55 5.4-1.8 3.3 1.2 4.65 4.5 3 7.5C19.2 16.65 12 21 12 21z'/%3E%3C/svg%3E");
}
.dy-ic-dislike {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a8b91' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7.2-4.35-9.6-8.1C.75 9.9 2.1 6.6 5.4 5.4c2.1-.75 4.2.15 5.4 1.8 1.2-1.65 3.3-2.55 5.4-1.8 3.3 1.2 4.65 4.5 3 7.5C19.2 16.65 12 21 12 21z'/%3E%3Cpath d='M12 10.2 L11.15 12.6 L12.65 14.3 L11.4 17' stroke-linecap='round'/%3E%3C/svg%3E");
}
.dy-comment-dislike-btn.is-active .dy-ic-dislike {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23161823' stroke='%23161823' stroke-width='1.2' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7.2-4.35-9.6-8.1C.75 9.9 2.1 6.6 5.4 5.4c2.1-.75 4.2.15 5.4 1.8 1.2-1.65 3.3-2.55 5.4-1.8 3.3 1.2 4.65 4.5 3 7.5C19.2 16.65 12 21 12 21z'/%3E%3Cpath d='M12 10.2 L11.15 12.6 L12.65 14.3 L11.4 17' stroke='%23fff' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E");
}
.dy-replies {
  margin: 6px 0 0 46px;
}
.dy-replies-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 2px 0 4px;
}
.dy-comment-reply .dy-comment-layout {
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 8px;
}
.dy-comment-user-name,
.dy-comment-user-target-name {
  color: #8a8b91;
  font-weight: 500;
}
.dy-comment-user-target .dy-comment-user-target-name {
  color: #6f7075;
}
.dy-comment-content-reply {
  color: #161823;
  font-size: 14px;
  line-height: 1.5;
}
.dy-replies-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 0;
  border: 0;
  color: #8a8b91;
  background: transparent;
  font-size: 13px;
  cursor: pointer;
}
.dy-replies-toggle-line {
  display: inline-block;
  width: 24px;
  height: 1px;
  background: #d9d9dd;
}
.dy-ic-chevron-down,
.dy-ic-chevron-up {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
}
.dy-ic-chevron-down {
  border-top: 5px solid #8a8b91;
}
.dy-ic-chevron-up {
  border-bottom: 5px solid #8a8b91;
}
.dy-compose-box {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  padding: 12px 16px 10px;
  border-bottom: 1px solid #f1f1f2;
  background: #fff;
  align-items: stretch;
  margin-bottom: 0;
}
.dy-compose-box.is-collapsed {
  gap: 0;
  padding: 8px 16px;
}
.dy-compose-box.is-collapsed .wf-snippet-host,
.dy-compose-box.is-collapsed .dy-compose-extras {
  display: none;
}
.dy-compose-box.td-compose {
  flex-direction: column;
  align-items: stretch;
  margin-bottom: 0;
}
.dy-compose-shell {
  position: relative;
  width: 100%;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  background: #fff;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.dy-compose-box.is-collapsed .dy-compose-shell:hover {
  border-color: #bfbfbf;
}
.dy-compose-box.is-replying .dy-compose-shell {
  border-color: #91caff;
}
.dy-compose-box.is-expanded .dy-compose-shell {
  border-color: #91caff;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, .1);
}
.dy-compose-collapsed-trigger {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 40px;
  padding: 0 96px 0 12px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  cursor: text;
  text-align: left;
}
.dy-compose-box.is-expanded .dy-compose-collapsed-trigger {
  display: none;
}
.dy-compose-collapsed-placeholder {
  flex: 1;
  min-width: 0;
  color: #b4b4b8;
  font-size: 14px;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dy-compose-reply-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 10px;
  border-bottom: 1px solid #ebebeb;
  background: #f0f7ff;
  font-size: 13px;
  color: #4e5969;
}
.dy-compose-reply-bar-label b {
  color: #1677ff;
  font-weight: 600;
}
.dy-compose-reply-cancel {
  flex: 0 0 auto;
  padding: 2px 8px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #8a8b91;
  font-size: 12px;
  cursor: pointer;
}
.dy-compose-reply-cancel:hover {
  color: #1677ff;
  background: rgba(22, 119, 255, .08);
}
.dy-compose-expanded-body {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: max-height .24s ease, opacity .18s ease;
}
.dy-compose-box.is-expanded .dy-compose-expanded-body {
  max-height: 520px;
  opacity: 1;
  pointer-events: auto;
}
.dy-compose-editor-card {
  position: relative;
  width: 100%;
  flex: 1 1 auto;
  min-height: 188px;
  border: 0;
  border-radius: 0;
  background: #fff;
  overflow: hidden;
}
.dy-compose-editor-host {
  width: 100%;
  min-width: 0;
}
.dy-compose-editor-card .rich-editor-shell,
.dy-compose-editor-card .EasyMDEContainer,
.dy-compose-editor-card .rich-editor-shell .EasyMDEContainer {
  width: 100% !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.dy-compose-editor-card .editor-toolbar {
  width: 100%;
  box-sizing: border-box;
}
.dy-compose-editor-card .editor-toolbar {
  border: 0 !important;
  border-bottom: 1px solid #ebebeb !important;
  border-radius: 0 !important;
  padding: 4px 10px !important;
  background: #fff !important;
  opacity: 1 !important;
}
.dy-compose-editor-card .editor-toolbar button.xm-i-preview,
.dy-compose-editor-card .editor-toolbar button.xm-i-help,
.dy-compose-editor-card .editor-toolbar button.guide,
.dy-compose-editor-card .editor-toolbar button.preview {
  display: none !important;
}
.dy-compose-editor-card .CodeMirror {
  width: 100% !important;
  border: 0 !important;
  background: #fff !important;
}
.dy-compose-editor-card .CodeMirror-scroll {
  width: 100% !important;
  min-height: 160px !important;
  max-height: 320px;
  padding-bottom: 44px !important;
  background: #fff;
  resize: none !important;
  overflow-y: auto !important;
  scrollbar-width: thin;
}

.dy-compose-editor-card .CodeMirror-scroll::-webkit-scrollbar {
  width: 6px;
}

.dy-compose-editor-card .CodeMirror-scroll::-webkit-scrollbar-button {
  display: none;
  height: 0;
  width: 0;
}
.dy-compose-editor-card .CodeMirror-lines {
  padding: 8px 10px 4px !important;
}
.dy-compose-editor-card .CodeMirror pre.CodeMirror-line {
  color: #161823;
  font-size: 14px;
  line-height: 1.55;
}
.dy-compose-editor-card .CodeMirror-placeholder {
  color: #b4b4b8 !important;
  font-size: 14px !important;
}
.dy-compose-editor-card .editor-toolbar .xm-re-toolbar-spacer {
  display: none !important;
}
.dy-compose-editor-card .editor-toolbar .xm-re-fullscreen-btn {
  margin-left: 2px !important;
}
.dy-compose-send {
  position: absolute;
  right: 8px;
  top: 50%;
  bottom: auto;
  z-index: 3;
  padding: 5px 12px;
  border: 1px solid #e5e6eb;
  border-radius: 6px;
  color: #b4b4b8;
  background: #f7f8fa;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transform: translateY(-50%);
  transition: background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease, top .18s ease, transform .18s ease;
}
.dy-compose-box.is-expanded .dy-compose-send {
  top: auto;
  bottom: 10px;
  transform: none;
  padding: 6px 16px;
  font-size: 14px;
}
.dy-compose-send.is-ready {
  color: #fff;
  border-color: #1677ff;
  background: #1677ff;
  box-shadow: 0 2px 8px rgba(22, 119, 255, .28);
}
.dy-compose-send:disabled {
  cursor: default;
}
.dy-compose-send.is-ready:hover {
  background: #4096ff;
  border-color: #4096ff;
}
.dy-compose-extras {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-height: 0;
}
.dy-compose-upload-host [data-drop-upload="drawerCommentAttachment"] .compact-upload-btn {
  display: none;
}
.dy-compose-upload-host .compact-upload-files {
  font-size: 12px;
  color: #8a8b91;
}
.td-sec-comments .dy-compose-editor-card .rich-editor-shell .CodeMirror,
.td-sec-comments .dy-compose-editor-card .rich-editor-shell .CodeMirror-scroll {
  min-height: 160px;
}
.td-sec-comments.is-expanded .dy-comments-body {
  display: flex;
}
.td-compose { display: flex; gap: 8px; align-items: flex-start; flex-shrink: 0; margin-bottom: 10px; }
.td-compose-av { flex-shrink: 0; margin-top: 2px; }
.td-compose-field { position: relative; flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.td-compose-textarea { width: 100%; min-height: 72px; padding: 8px 10px; border: 1px solid #d9d9d9; border-radius: 4px; color: var(--td-text); background: #fff; font-size: 13px; line-height: 1.5; resize: vertical; box-sizing: border-box; }
.td-compose-editor { width: 100%; min-height: 72px; max-height: 140px; overflow-y: auto; padding: 8px 10px; border: 1px solid #d9d9d9; border-radius: 4px; color: var(--td-text); background: #fff; font-size: 13px; line-height: 1.5; box-sizing: border-box; outline: none; white-space: pre-wrap; word-break: break-word; }
.td-compose-editor:empty::before { content: attr(data-placeholder); color: rgba(0,0,0,.25); pointer-events: none; }
.td-compose-editor:focus { border-color: var(--td-primary); box-shadow: 0 0 0 2px rgba(24,144,255,.12); }
.mention-token, .mention-token-inline, .mention-token-readonly { color: #1677ff; font-weight: var(--weight-strong); }
.mention-token { display: inline; padding: 0 2px; border-radius: 3px; background: #e6f4ff; }
.mention-token-readonly { display: inline; padding: 0 2px; border-radius: 3px; background: #e6f4ff; pointer-events: none; }
.td-compose-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 2px; }
.td-compose-toolbar .compact-upload { width: auto; flex: 1 1 auto; min-width: 0; }
.td-compose-toolbar .td-compose-actions { display: flex; justify-content: flex-end; margin: 0; flex: 0 0 auto; }
.td-compose-textarea:focus { border-color: var(--td-primary); outline: none; box-shadow: 0 0 0 2px rgba(24,144,255,.12); }
.td-compose-actions { display: flex; justify-content: flex-end; gap: 8px; }
.td-drawer-mention-picker { margin-top: 4px; padding: 8px; border: 1px solid #dbe7f6; border-radius: 8px; background: #f8fbff; }
.td-drawer-mention-picker .create-search-wrap { position: relative; }
.task-member-frequent { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.task-member-frequent em { flex: 0 0 auto; color: #8b98a8; font-size: 11px; font-style: normal; font-weight: 600; }
.task-member-frequent .create-pill { height: 26px; padding: 0 10px; font-size: 12px; }
.task-member-picker { display: flex; flex-direction: column; gap: 6px; }
.task-member-picker .xm-person-picker-host { width: fit-content; max-width: 100%; }
.xm-person-field-label { color: #526173; font-size: 12px; font-weight: 600; }
.task-sheet-form { display: grid; gap: 12px; }
.task-sheet-form .create-row { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 10px 12px; align-items: start; }
.task-sheet-form .create-row-label { padding-top: 7px; color: rgba(0,0,0,.65); font-size: 13px; font-weight: 500; }
.task-sheet-form .create-row-control input,
.task-sheet-form .create-row-control textarea,
.task-sheet-form .create-row-control select { width: 100%; padding: 7px 10px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 13px; box-sizing: border-box; }
.task-sheet-form .create-row-control textarea { min-height: 88px; resize: vertical; }
.task-drawer-sheet-body .task-member-picker.wide,
.task-drawer-sheet-body .task-sheet-form .create-row { grid-column: 1 / -1; }
.task-drawer-sheet-body .task-sheet-form .create-row { grid-template-columns: 96px minmax(0, 1fr); }
.td-compose-input { width: 100%; height: 32px; padding: 0 40px 0 12px; border: 1px solid #d9d9d9; border-radius: 4px; color: rgba(0,0,0,.25); background: #fff; font-size: 13px; text-align: left; box-sizing: border-box; cursor: pointer; }
.td-compose-input:hover { border-color: var(--td-primary); }
.td-compose-send { position: absolute; top: 2px; right: 2px; display: grid; width: 28px; height: 28px; place-items: center; padding: 0; border: 0; border-radius: 4px; background: var(--td-primary); cursor: pointer; }
.td-subtask-actions { display: inline-flex; gap: 6px; align-items: center; justify-self: end; }
.td-comments { display: flex; flex-direction: column; gap: 14px; }
.td-comment-thread + .td-comment-thread { margin-top: 0; }
.td-comment-thread {
  padding-bottom: 14px;
  border-bottom: 1px solid #f0f4f8;
}
.td-comment-thread:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}
.td-comment { flex-shrink: 0; }
.td-comment-root { padding-bottom: 0; }
.td-comment-hd { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.td-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.td-dot.blue { background: var(--td-primary); }
.td-dot.green { background: #52c41a; }
.td-dot.orange { background: #fa8c16; }
.td-comment-hd b { color: var(--td-text); font-size: 13px; font-weight: 600; }
.td-comment-hd small { color: var(--td-muted); font-size: 11px; }
.td-comment-ops { display: inline-flex; gap: 4px; align-items: center; margin-left: auto; }
.td-link { padding: 0; border: 0; color: var(--td-primary); background: transparent; font-size: 12px; cursor: pointer; }
.td-icon-btn { width: 22px; height: 22px; padding: 0; border: 0; border-radius: 4px; color: var(--td-muted); background: transparent; font-size: 14px; cursor: pointer; }
.td-comment-txt { margin: 0; padding-left: 34px; color: rgba(0,0,0,.65); font-size: 13px; line-height: 1.6; }
.td-comment-replies-box {
  margin: 10px 0 0 34px;
  padding: 10px 12px;
  border: 1px solid #edf2f7;
  border-radius: 8px;
  background: #f7f9fc;
}
.td-comment-reply + .td-comment-reply {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed #e6edf5;
}
.td-comment-reply-line {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.td-comment-reply-av {
  width: 22px !important;
  height: 22px !important;
  font-size: 11px !important;
  flex-shrink: 0;
}
.td-comment-reply-main { flex: 1; min-width: 0; }
.td-comment-reply-hd {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  align-items: center;
  margin-bottom: 4px;
}
.td-comment-reply-hd b {
  color: var(--td-text);
  font-size: 12px;
  font-weight: 600;
}
.td-comment-reply-meta {
  color: var(--td-muted);
  font-size: 12px;
}
.td-comment-reply-meta em {
  color: var(--td-primary);
  font-style: normal;
  font-weight: 600;
}
.td-comment-reply-hd small {
  color: var(--td-muted);
  font-size: 11px;
}
.td-comment-reply-hd .td-comment-ops { margin-left: auto; }
.td-comment-reply-txt {
  margin: 0;
  color: rgba(0,0,0,.68);
  font-size: 12px;
  line-height: 1.6;
  word-break: break-word;
}
.td-replying-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
  padding: 8px 10px;
  border: 1px solid #dbe7f4;
  border-radius: 6px;
  background: #f0f7ff;
  font-size: 12px;
  color: rgba(0,0,0,.65);
}
.td-replying-bar b,
.td-replying-bar [data-drawer-reply-name] {
  color: var(--td-primary);
  font-weight: 600;
}
.td-replying-cancel { flex-shrink: 0; }
.td-logs { display: flex; flex-direction: column; gap: 0; align-items: stretch; }
.td-oplog-timeline {
  position: relative;
  padding: 4px 2px 10px;
}
.td-oplog-timeline::before {
  content: "";
  position: absolute;
  left: calc(2px + 56px + 8px);
  top: 14px;
  bottom: 10px;
  width: 1px;
  background: linear-gradient(180deg, #dce6f2 0%, #e8eef5 100%);
}
.td-oplog-item {
  display: grid;
  grid-template-columns: 56px 16px minmax(0, 1fr);
  gap: 0 10px;
  align-items: start;
  padding: 10px 6px 10px 0;
  border-radius: 8px;
  transition: background .15s ease;
}
.td-oplog-item:hover { background: #f7faff; }
.td-oplog-dot {
  display: block;
  width: 8px;
  height: 8px;
  margin-top: 8px;
  justify-self: center;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #1677ff;
  box-shadow: 0 0 0 3px #e8f2ff;
  position: relative;
  z-index: 1;
}
.td-oplog-item.tone-system .td-oplog-dot {
  background: #8c8c8c;
  box-shadow: 0 0 0 3px #f0f0f0;
}
.td-oplog-time {
  display: grid;
  gap: 2px;
  justify-items: end;
  padding-right: 2px;
  line-height: 1.3;
  text-align: right;
}
.td-oplog-date,
.td-oplog-clock {
  color: #5f6f84;
  font-weight: 600;
  white-space: nowrap;
}
.td-oplog-date { font-size: 11px; }
.td-oplog-clock {
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
.td-oplog-body b {
  display: block;
  color: #12233c;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}
.td-oplog-body small {
  display: block;
  margin-top: 3px;
  color: #5f6f84;
  font-size: 12px;
  line-height: 1.5;
  word-break: break-word;
}
.td-oplog-body small .mention-token-readonly {
  font-weight: 600;
}
.td-oplog-empty {
  margin: 0;
  padding: 8px 2px 4px;
  color: #8a8b91;
  font-size: 12px;
}
.td-sec-log .td-fold-body,
.td-sec-subtasks .td-fold-body {
  margin-top: 0;
  padding-top: 12px;
}
.td-subtasks { display: grid; gap: 0; }
.td-subtask { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto auto auto; gap: 6px 8px; align-items: center; padding: 6px 0; border-top: 1px solid #f5f5f5; }
.td-subtask:first-child { border-top: 0; }
.td-chk { display: grid; width: 16px; height: 16px; }
.td-chk input { position: absolute; opacity: 0; }
.td-chk i { display: block; width: 16px; height: 16px; border: 1px solid #d9d9d9; border-radius: 2px; background: #fff; }
.td-subtask.is-done .td-chk i { position: relative; border-color: var(--td-primary); background: var(--td-primary); }
.td-subtask.is-done .td-chk i::after { position: absolute; inset: 0; display: block; }
.td-subtask-name { overflow: hidden; font-size: 13px; line-height: 20px; color: var(--td-text); text-overflow: ellipsis; white-space: nowrap; }
.td-subtask.is-done .td-subtask-name { color: var(--td-muted); text-decoration: line-through; }
.td-subtask-user { display: inline-flex; gap: 4px; align-items: center; font-size: 11px; color: var(--td-muted); white-space: nowrap; }
.td-subtask-user i { display: grid; width: 18px; height: 18px; place-items: center; border-radius: 50%; color: #fff; background: #87d068; font-size: 10px; font-style: normal; }
.td-subtask-time { font-size: 11px; color: var(--td-muted); font-style: normal; white-space: nowrap; }
.td-add-sub { flex-shrink: 0; width: 100%; margin-top: 6px; padding: 4px 0; border: 0; color: var(--td-primary); background: transparent; font-size: 13px; text-align: center; cursor: pointer; }
.task-drawer-back { display: inline-flex; gap: 4px; align-items: center; }
.detail-status { display: flex; gap: 8px; margin-bottom: 18px; }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; padding: 15px; border-radius: 8px; background: #f8fafc; }
.detail-grid span { display: block; color: var(--muted); font-size: 11px; }.detail-grid b { font-size: 13px; }
.detail-section { margin-top: 21px; }.detail-section h4 { margin: 0 0 7px; }.detail-section p { margin: 0; color: #667486; font-size: 13px; }
.priority-inline { display: inline-flex; margin-left: 8px; padding: 3px 8px; border-radius: 999px; color: #fff; font-size: 11px; font-weight: 900; vertical-align: 1px; }
.priority-inline.p0 { background: #ff3b30; }.priority-inline.p1 { background: #ff9800; }.priority-inline.p3 { background: #22b66f; }
/* 任务详情 — 按钮（对齐 Ant Design 原型尺寸） */
#taskDrawer .td-btn,
#taskSubtaskDrawer .td-btn,
#kpiScopeConfigDrawer .td-btn,
#feedbackDrawer .td-btn,
#approvalFlowConfigDrawer .td-btn { display: inline-flex; align-items: center; justify-content: center; height: 32px; padding: 0 12px; border: 1px solid transparent; border-radius: 4px; font-size: 14px; font-weight: 400; line-height: 1; white-space: nowrap; cursor: pointer; box-shadow: none; transition: all .2s cubic-bezier(.645, .045, .355, 1); }
#taskDrawer .td-btn-primary,
#taskSubtaskDrawer .td-btn-primary,
#kpiScopeConfigDrawer .td-btn-primary,
#feedbackDrawer .td-btn-primary,
#approvalFlowConfigDrawer .td-btn-primary { min-width: 108px; padding: 0 16px; border-color: var(--td-primary); color: #fff; background: var(--td-primary); }
#taskDrawer .td-btn-primary:hover,
#taskSubtaskDrawer .td-btn-primary:hover,
#kpiScopeConfigDrawer .td-btn-primary:hover,
#feedbackDrawer .td-btn-primary:hover,
#approvalFlowConfigDrawer .td-btn-primary:hover { border-color: #40a9ff; background: #40a9ff; }
#taskDrawer .td-btn-default,
#taskSubtaskDrawer .td-btn-default,
#kpiScopeConfigDrawer .td-btn-default,
#feedbackDrawer .td-btn-default,
#approvalFlowConfigDrawer .td-btn-default { min-width: 80px; border-color: #d9d9d9; color: var(--td-text); background: #fff; }
#taskDrawer .td-btn-default:hover,
#taskSubtaskDrawer .td-btn-default:hover,
#kpiScopeConfigDrawer .td-btn-default:hover,
#feedbackDrawer .td-btn-default:hover,
#approvalFlowConfigDrawer .td-btn-default:hover { border-color: var(--td-primary); color: var(--td-primary); }
#taskDrawer .td-btn-danger,
#taskSubtaskDrawer .td-btn-danger,
#kpiScopeConfigDrawer .td-btn-danger,
#feedbackDrawer .td-btn-danger { min-width: 88px; border-color: #ffccc7; color: var(--td-danger); background: #fff2f0; }
#taskDrawer .td-btn-danger:hover,
#taskSubtaskDrawer .td-btn-danger:hover,
#kpiScopeConfigDrawer .td-btn-danger:hover,
#feedbackDrawer .td-btn-danger:hover { border-color: #ffa39e; color: #ff7875; background: #fff1f0; }
#kpiScopeConfigDrawer .td-btn-sm { height: 28px; min-width: 0; padding: 0 10px; font-size: 13px; }
#kpiScopeConfigDrawer .task-subtask-drawer-footer-bar .td-btn-danger { margin-right: auto; }
#taskDrawer .td-btn-reject { min-width: 92px; height: 36px; padding: 0 14px; border: 1px solid #ffbb96; border-radius: 6px; color: #d4380d; background: linear-gradient(180deg, #fff7e6 0%, #fff2e8 100%); font-size: 13px; font-weight: 600; box-shadow: 0 1px 2px rgba(212, 56, 13, .08); }
#taskDrawer .td-btn-reject:hover { border-color: #ff9c6e; color: #cf1322; background: linear-gradient(180deg, #fff2e8 0%, #ffd8bf 100%); }
#taskDrawer .td-btn-reject::before { content: ""; display: inline-block; width: 14px; height: 14px; margin-right: 4px; background: currentColor; opacity: .9; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E") center/contain no-repeat; vertical-align: -2px; }
/* 任务详情 — 线性图标 */
.td-ic-star, .td-ic-project, .td-ic-clock, .td-ic-calendar, .td-ic-caret, .td-ic-user, .td-ic-flag, .td-ic-check, .td-ic-users, .td-ic-send, .td-ic-version { display: inline-block; width: 14px; height: 14px; flex-shrink: 0; background: currentColor; opacity: .85; }
.td-ic-version { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2 2 7l10 5 10-5-10-5zm0 7L2 4v13l10 5 10-5V4l-10 5zm0 2.2 7.5-3.75V15L12 18.75 4.5 15v-7.55L12 11.2z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2 2 7l10 5 10-5-10-5zm0 7L2 4v13l10 5 10-5V4l-10 5zm0 2.2 7.5-3.75V15L12 18.75 4.5 15v-7.55L12 11.2z'/%3E%3C/svg%3E") center/contain no-repeat; background: currentColor; }
.td-tag-purple .td-ic-version { color: #722ed1; background: #722ed1; }
.td-tag-gray .td-ic-version { color: #8c8c8c; background: #8c8c8c; }
.td-tag-orange .td-ic-version { color: #d46b08; background: #d46b08; }
.task-drawer-follow-btn .td-ic-star { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2l2.9 6.26L22 9.27l-5 4.87L18.18 22 12 18.27 5.82 22 7 14.14l-5-4.87 7.1-1.01z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2l2.9 6.26L22 9.27l-5 4.87L18.18 22 12 18.27 5.82 22 7 14.14l-5-4.87 7.1-1.01z'/%3E%3C/svg%3E") center/contain no-repeat; background: currentColor; }
.td-ic-project { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 4h7v7H4zm9 0h7v7h-7zM4 13h7v7H4zm9 0h7v7h-7z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 4h7v7H4zm9 0h7v7h-7zM4 13h7v7H4zm9 0h7v7h-7z'/%3E%3C/svg%3E") center/contain no-repeat; background: currentColor; }
.td-ic-clock { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 100 20 10 10 0 000-20zm1 5h-2v6l5 3 .9-1.45-3.9-2.3z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 100 20 10 10 0 000-20zm1 5h-2v6l5 3 .9-1.45-3.9-2.3z'/%3E%3C/svg%3E") center/contain no-repeat; background: currentColor; }
.td-ic-calendar { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 2v2H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V6a2 2 0 00-2-2h-2V2h-2v2H9V2zm12 8H5v10h14z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 2v2H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V6a2 2 0 00-2-2h-2V2h-2v2H9V2zm12 8H5v10h14z'/%3E%3C/svg%3E") center/contain no-repeat; background: currentColor; }
.td-ic-caret { width: 10px; height: 10px; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") center/contain no-repeat; background: currentColor; }
.td-ic-user { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 12a5 5 0 100-10 5 5 0 000 10zm-7 9a7 7 0 0114 0z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 12a5 5 0 100-10 5 5 0 000 10zm-7 9a7 7 0 0114 0z'/%3E%3C/svg%3E") center/contain no-repeat; background: currentColor; }
.td-ic-flag { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M5 3v18H3V3zm3 0 10 4-10 4z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M5 3v18H3V3zm3 0 10 4-10 4z'/%3E%3C/svg%3E") center/contain no-repeat; background: currentColor; }
.td-ic-check { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat; background: currentColor; }
.td-ic-users { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M16 11a4 4 0 100-8 4 4 0 000 8zM8 13a3 3 0 100-6 3 3 0 000 6zm8 2c2.8 0 5 1.2 5 2.5V20H14v-2.5c0-1.3 2.2-2.5 5-2.5zM3 18.5C3 17.1 5.7 16 9 16c.7 0 1.4.1 2 .2V20H3z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M16 11a4 4 0 100-8 4 4 0 000 8zM8 13a3 3 0 100-6 3 3 0 000 6zm8 2c2.8 0 5 1.2 5 2.5V20H14v-2.5c0-1.3 2.2-2.5 5-2.5zM3 18.5C3 17.1 5.7 16 9 16c.7 0 1.4.1 2 .2V20H3z'/%3E%3C/svg%3E") center/contain no-repeat; background: currentColor; }
.td-ic-send { width: 12px; height: 12px; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 12L21 4l-3.5 16-4.5-6.5L3 12zm8.2 0L17 8.5 8.7 11.2 11.2 12.8z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 12L21 4l-3.5 16-4.5-6.5L3 12zm8.2 0L17 8.5 8.7 11.2 11.2 12.8z'/%3E%3C/svg%3E") center/contain no-repeat; background: #fff; opacity: 1; }
.td-tag.project .td-ic-project { color: var(--td-primary); background: var(--td-primary); }
.td-deadline-countdown .td-ic-clock { color: inherit; background: currentColor; }
.td-owner-box b .td-ic-calendar { color: var(--td-text-secondary); background: var(--td-text-secondary); }
.td-info-k i, .td-tag-blue i, .td-tag-gray i, .td-tag-orange i, .td-tag-purple i, .td-countdown i, .td-sidebox-row b i, .task-drawer-back .td-ic-back { color: var(--td-muted); background: var(--td-muted); }
.td-ic-back { width: 12px; height: 12px; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M15 6l-6 6 6 6'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M15 6l-6 6 6 6'/%3E%3C/svg%3E") center/contain no-repeat; background: currentColor; }
.detail-file-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
.detail-file-card { display: grid; grid-template-columns: 40px 1fr auto; gap: 10px; align-items: center; padding: 12px; border: 1px solid #edf2f8; border-radius: 10px; background: #fbfdff; }
.detail-file-card i { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 9px; color: #fff; background: #1677ff; font-size: 11px; font-style: normal; font-weight: 900; }
.detail-file-card i.pdf { background: #ff5151; }.detail-file-card i.doc { background: #5b8def; }.detail-file-card i.img { background: #ff9800; }
.detail-file-card b, .detail-file-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.detail-file-card b { color: #14243a; font-size: 12px; }.detail-file-card small { color: #8a97aa; font-size: 11px; }
.related-task-list { display: grid; gap: 8px; }
.related-task-list article { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; padding: 12px; border: 1px solid #edf2f8; border-radius: 10px; background: #fbfdff; cursor: pointer; }
.related-task-list b, .related-task-list small { display: block; }.related-task-list small { color: #7b8798; font-size: 11px; }
.side-card { padding: 14px; }
.member-avatar-row { display: flex; align-items: center; gap: 0; }
.member-avatar-row .avatar { margin-right: -7px; border: 2px solid #fff; box-shadow: 0 4px 12px rgba(11,36,70,.08); }
.round-add { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: #1677ff; background: #eef6ff; font-weight: 900; }
.closure-mini { display: grid; gap: 7px; }
.closure-mini p { display: flex; justify-content: flex-start; gap: 8px; padding: 7px 9px; border: 0; border-radius: 999px; color: #64748b; background: #f6f8fb; }
.closure-mini i { display: grid; width: 17px; height: 17px; place-items: center; border-radius: 50%; color: #fff; background: #b7c1ce; font-size: 10px; font-style: normal; }
.closure-mini .done i { background: #22b66f; }.closure-mini .missing { color: #c46a00; background: #fff8ed; }
.detail-flow { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; }
.detail-flow span { position: relative; display: grid; justify-items: center; gap: 6px; color: #8a97aa; font-size: 11px; }
.detail-flow i { display: grid; width: 25px; height: 25px; place-items: center; border: 2px solid #cfd9e6; border-radius: 50%; color: #8a97aa; background: #fff; font-style: normal; font-weight: 900; }
.detail-flow .done i { border-color: #22b66f; color: #fff; background: #22b66f; }
.detail-flow .current i { border-color: #1677ff; color: #1677ff; background: #fff; box-shadow: 0 0 0 4px #eef6ff; }
.detail-flow b { font-size: 11px; white-space: nowrap; }
.detail-quick-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.detail-quick-grid button { height: 36px; border: 1px solid #dfe8f4; border-radius: 8px; color: #526173; background: #fff; font-size: 12px; font-weight: var(--weight-display); }
.detail-quick-grid button:hover { border-color: #bad8ff; color: #1677ff; background: #f7fbff; }
.closure-check { padding: 10px 12px; border: 1px solid #dfeaf7; border-radius: 8px; background: #f8fbff; }.closure-check header { display: flex; justify-content: space-between; padding: 0 0 8px; border: 0; }.closure-check-grid { display: flex; gap: 7px; flex-wrap: wrap; }.closure-check p { display: flex; gap: 6px; align-items: center; margin: 0; padding: 5px 8px; border-radius: 999px; color: #5d6c7e; background: #fff; font-size: 11px; }.closure-check i { display: grid; width: 16px; height: 16px; place-items: center; border-radius: 50%; color: #fff; background: #b7c1ce; font-size: 10px; font-style: normal; }.closure-check .done i { background: var(--green); }.closure-check .missing { color: #d26a00; background: #fff8ed; }
.subtask-list { border: 1px solid var(--line); border-radius: 8px; }.subtask-row { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; padding: 10px 12px; border-top: 1px solid #eef1f5; }.subtask-row:first-child { border-top: 0; }.subtask-row b, .subtask-row small { display: block; }.subtask-row small { color: var(--muted); font-size: 11px; }
.drawer .task-title-cell { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }.subtask-pill { padding: 3px 7px; border-radius: 999px; color: #1677ff; background: #eef6ff; font-size: 11px; }
.subtask-expand-row td { padding: 0 12px 12px; background: #fbfdff; }.subtask-expand-panel { display: grid; gap: 8px; padding: 10px; border: 1px solid #dfeaf7; border-radius: 10px; background: #fff; }.subtask-expand-panel article { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 8px; background: #f8fbff; }.subtask-expand-panel b, .subtask-expand-panel small { display: block; }.subtask-expand-panel small { color: var(--muted); font-size: 11px; }
.block-alert { margin: 0 0 13px; padding: 11px 13px; border: 1px solid #ffd4d4; border-radius: 8px; color: #b84040; background: #fff7f7; font-size: 12px; }.block-alert b { display: block; margin-bottom: 2px; }
.danger-button { margin-top: 10px; padding: 9px 14px; border-radius: 8px; color: #d94242; background: #fff1f1; border: 1px solid #ffd1d1; font-weight: var(--weight-strong); }
.danger-button:hover { background: #ffe8e8; }
.logged-out .app-shell, .logged-out .drawer, .logged-out .modal:not(.legal-doc-modal), .logged-out .overlay, .logged-out .create-edge-tab, .logged-out .ai-advisor-float, .logged-out .ai-advisor-task-panel, .logged-out .create-task-drawer { display: none !important; }
body.legal-doc-open { overflow: hidden; }
.logged-out { overflow: hidden; }
.login-screen { position: fixed; inset: 0; z-index: 80; display: flex; flex-direction: column; width: 100%; min-height: 100vh; min-height: 100dvh; overflow: auto; background: #eef3f9; }
.login-screen::before { content: ""; position: fixed; inset: 0; pointer-events: none; background: radial-gradient(ellipse 80% 60% at 15% 20%, rgba(22,119,255,.12), transparent 55%), radial-gradient(ellipse 50% 40% at 85% 80%, rgba(32,181,107,.08), transparent 50%), linear-gradient(160deg, #f0f6fc 0%, #e8f0fa 40%, #f5f8fc 100%); }
.login-layout { position: relative; z-index: 1; flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) clamp(380px, 42vw, 520px); gap: 0; align-items: stretch; width: 100%; min-height: 100vh; min-height: 100dvh; max-width: none; margin: 0; }
.login-hero { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 100%; padding: clamp(28px, 4vh, 56px) clamp(24px, 4vw, 72px); color: #e8f0f8; background: #050f1c; overflow: hidden; }
.login-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(155deg, #050f1c 0%, #0a1f38 38%, #0c2a4a 68%, #07192b 100%); }
.login-hero-art { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.login-orb { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .75; animation: login-orb-drift 14s ease-in-out infinite; }
.login-orb--gold { top: -8%; left: -6%; width: min(52vw, 420px); height: min(52vw, 420px); background: radial-gradient(circle, rgba(255,189,35,.55) 0%, transparent 68%); }
.login-orb--blue { right: -10%; top: 22%; width: min(48vw, 380px); height: min(48vw, 380px); background: radial-gradient(circle, rgba(22,119,255,.45) 0%, transparent 70%); animation-delay: -4s; }
.login-orb--mint { left: 18%; bottom: -12%; width: min(40vw, 320px); height: min(40vw, 320px); background: radial-gradient(circle, rgba(48,209,122,.35) 0%, transparent 72%); animation-delay: -7s; }
.login-ring { position: absolute; top: 12%; right: 8%; width: min(280px, 36vw); height: min(280px, 36vw); border: 1px solid rgba(255,255,255,.08); border-radius: 50%; animation: login-ring-spin 28s linear infinite; }
.login-ring::after { content: ""; position: absolute; inset: 18%; border: 1px dashed rgba(255,255,255,.06); border-radius: 50%; }
.login-ring--slow { top: auto; bottom: 10%; right: auto; left: 6%; width: min(200px, 28vw); height: min(200px, 28vw); animation-duration: 40s; animation-direction: reverse; opacity: .6; }
.login-hero-floats { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.login-float-card { position: absolute; margin: 0; padding: 14px 18px; border-radius: 16px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.07); backdrop-filter: blur(14px); box-shadow: 0 20px 50px rgba(0,0,0,.22); animation: login-float 7s ease-in-out infinite; }
.login-float-card em { display: block; margin-bottom: 6px; color: rgba(255,211,77,.95); font-size: 10px; font-weight: var(--weight-display); font-style: normal; letter-spacing: 2px; text-transform: uppercase; }
.login-float-card p { margin: 0; color: rgba(255,255,255,.88); font-size: 13px; line-height: 1.55; font-weight: 500; }
.login-float-card--a { top: 14%; right: 6%; max-width: 200px; transform: rotate(4deg); animation-delay: 0s; }
.login-float-card--b { bottom: 22%; right: 12%; max-width: 188px; transform: rotate(-3deg); animation-delay: 1.2s; }
.login-float-card--c { bottom: 12%; left: 4%; max-width: 210px; transform: rotate(2deg); animation-delay: 2.4s; }
.login-hero-inner { position: relative; z-index: 2; display: flex; flex-direction: column; gap: clamp(14px, 2vh, 24px); width: 100%; max-width: 640px; }
.login-hero-brand-row { display: flex; align-items: center; gap: 14px; }
.login-hero-mark { flex-shrink: 0; width: clamp(44px, 5vw, 52px); height: clamp(44px, 5vw, 52px); font-size: clamp(18px, 2vw, 22px); transform: rotate(-6deg); }
.login-hero-name { color: #fff; font-size: clamp(18px, 2vw, 22px); font-weight: var(--weight-display); letter-spacing: 1px; }
.login-hero-eyebrow { margin: 0; color: rgba(255,211,77,.75); font-size: 11px; font-weight: var(--weight-display); letter-spacing: 3.5px; }
.login-hero-headline { margin: 0; font-size: clamp(32px, 4.8vw, 56px); font-weight: var(--weight-display); line-height: 1.12; letter-spacing: -.03em; }
.login-hero-line { display: block; color: #fff; }
.login-hero-line--accent { background: linear-gradient(105deg, #fff 0%, #ffd34d 42%, #7ec8ff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.login-hero-quote { position: relative; margin: 0; padding: 0 0 0 clamp(28px, 4vw, 44px); border: 0; }
.login-quote-mark { position: absolute; left: 0; top: -8px; color: rgba(255,211,77,.35); font-size: clamp(48px, 8vw, 72px); font-weight: var(--weight-display); line-height: 1; font-family: Georgia, "Times New Roman", serif; }
.login-hero-quote p { margin: 0; min-height: 2.8em; color: rgba(232,240,248,.92); font-size: clamp(15px, 1.6vw, 18px); line-height: 1.75; font-weight: 500; transition: opacity .32s ease, transform .32s ease; }
.login-hero-quote p.is-changing { opacity: 0; transform: translateY(6px); }
.login-hero-quote footer { display: block; margin-top: 12px; color: rgba(158,180,204,.75); font-size: 12px; font-style: normal; letter-spacing: .5px; }
.login-hero-pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.login-hero-pills span { padding: 8px 16px; border-radius: 999px; color: rgba(255,255,255,.9); font-size: 12px; font-weight: 600; letter-spacing: .3px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); backdrop-filter: blur(8px); }
.login-hero-pills span:nth-child(1) { border-color: rgba(255,211,77,.35); background: rgba(255,211,77,.1); }
.login-hero-pills span:nth-child(2) { border-color: rgba(126,200,255,.35); background: rgba(22,119,255,.12); }
.login-hero-pills span:nth-child(3) { border-color: rgba(126,255,196,.3); background: rgba(48,209,122,.1); }
.login-hero-pills span:nth-child(4) { border-color: rgba(255,255,255,.2); }
@keyframes login-float { 0%, 100% { transform: translateY(0) rotate(var(--login-rot, 0deg)); } 50% { transform: translateY(-10px) rotate(var(--login-rot, 0deg)); } }
.login-float-card--a { --login-rot: 4deg; }
.login-float-card--b { --login-rot: -3deg; }
.login-float-card--c { --login-rot: 2deg; }
@keyframes login-orb-drift { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(12px, -16px) scale(1.06); } }
@keyframes login-ring-spin { to { transform: rotate(360deg); } }
.login-card-wrap { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 16px; min-height: 100%; padding: clamp(24px, 4vh, 48px) clamp(20px, 3vw, 56px); background: rgba(255,255,255,.72); backdrop-filter: blur(14px); border-left: 1px solid rgba(220,231,243,.85); }
.login-card { width: 100%; max-width: 440px; padding: 0; border: 1px solid rgba(220,231,243,.9); border-radius: 20px; background: #fff; box-shadow: 0 24px 80px rgba(7,35,67,.12), 0 4px 16px rgba(7,35,67,.06); overflow: hidden; text-align: left; }
.login-tabs { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid #e8eef5; background: #f8fafc; }
.login-tab { height: 50px; border: 0; background: transparent; color: #6d8096; font-size: 14px; font-weight: var(--weight-strong); cursor: pointer; transition: color .15s, background .15s; }
.login-tab:hover { color: #1677ff; }
.login-tab.active { color: #1677ff; background: #fff; box-shadow: inset 0 -3px 0 #1677ff; }
.login-panel { display: none; padding: 28px 28px 12px; }
.login-panel.active { display: block; }
.login-panel h2 { margin: 0 0 8px; font-size: 24px; font-weight: var(--weight-display); color: #102033; letter-spacing: -.2px; }
.login-panel-desc { margin: 0 0 20px; color: #657487; font-size: 13px; line-height: 1.7; }
.login-method-tabs { display: flex; gap: 8px; margin: 4px 0 12px; }
.login-method-tab {
  flex: 1; height: 36px; border: 1px solid #dfe7f2; border-radius: 10px; background: #f5f8fc;
  color: #607086; font-size: 12px; font-weight: var(--weight-strong); cursor: pointer;
}
.login-method-tab.active { border-color: #1677ff; color: #1677ff; background: #eef6ff; }
.login-form { display: grid; gap: 14px; }
.login-form[hidden] { display: none !important; }
.login-hint { margin: 0; color: #8b98a8; font-size: 11px; line-height: 1.5; }
.login-hint b { color: #526173; }
.td-alert-transfer { border-color: #ffe7ba; background: #fffbe6; }
.td-alert-warn { border-color: #ffd591; background: #fff7e6; color: #ad6800; }
.td-alert-warn p { margin: 4px 0 0; font-size: 13px; color: #874d00; }
.td-alert-warn small { display: block; margin-top: 6px; color: #9a6b28; font-size: 12px; }
.td-transfer-actions { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.td-transfer-wait { margin: 8px 0 0; color: #7a8798; font-size: 12px; }
.login-form label { display: grid; gap: 7px; font-size: 12px; color: #526173; font-weight: 600; }
.login-form label.wide { grid-column: 1 / -1; }
.login-form label.login-legal-consent.wide { grid-column: 1 / -1; }
.login-form label.login-legal-consent {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 2px 0 0;
  font-weight: 400;
  cursor: pointer;
}
.login-form label.login-legal-consent input[type="checkbox"] {
  width: 16px;
  min-width: 16px;
  height: 16px;
  min-height: 16px;
  margin: 2px 0 0;
  padding: 0;
  flex-shrink: 0;
  border-radius: 4px;
}
.login-form label.login-legal-consent .login-legal-consent-text {
  flex: 1;
  min-width: 0;
  font-size: 12px;
  line-height: 1.65;
  color: #526173;
}
.login-form label.login-legal-consent .link-button {
  display: inline;
  padding: 0;
  border: 0;
  margin: 0;
  font-size: inherit;
  line-height: inherit;
  font-weight: 600;
  vertical-align: baseline;
  color: #1677ff;
}
.login-form input, .login-form select, .login-form textarea { width: 100%; min-height: 44px; padding: 0 14px; border: 1px solid #dfe7f2; border-radius: 11px; font-size: 14px; color: #2f4057; background: #fafbfd; transition: border-color .15s, box-shadow .15s, background .15s; }
.login-form input:focus, .login-form textarea:focus { border-color: #91c4ff; background: #fff; box-shadow: 0 0 0 3px rgba(22,119,255,.12); outline: 0; }
.login-form textarea { min-height: 96px; padding: 12px 14px; resize: vertical; line-height: 1.6; }
.login-form .primary-button { width: 100%; height: 44px; margin-top: 6px; border-radius: 11px; font-size: 15px; font-weight: var(--weight-strong); }
.login-code-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.login-code-row .secondary-button.is-cooldown,
.login-code-row .secondary-button:disabled {
  min-width: 108px;
  color: #8a9aab;
  border-color: #e3eaf2;
  background: #f3f6fa;
  cursor: not-allowed;
}
.login-code-row .secondary-button { height: 44px; white-space: nowrap; padding: 0 14px; font-size: 12px; border-radius: 11px; }
.login-panel-foot { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid #f0f2f5; color: #8b98a8; font-size: 12px; text-align: center; }
.login-panel-foot .link-button { padding: 0; border: 0; font-size: 12px; font-weight: var(--weight-strong); }
.login-copyright { margin: 0; color: #a4aebe; font-size: 11px; }
.login-debug { padding: 12px 28px 22px; border-top: 1px solid #f0f2f5; }
.login-debug summary { cursor: pointer; color: #8b98a8; font-size: 12px; font-weight: var(--weight-strong); }
.login-debug p { margin: 8px 0 10px; color: #8b98a8; font-size: 12px; line-height: 1.6; }
.login-debug .secondary-button, .login-debug .text-button { width: 100%; margin-top: 6px; }
.org-join-banner { margin-bottom: 12px; }
.org-join-banner-compact { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 16px; border: 1px solid #ffe7ba; border-radius: 12px; background: linear-gradient(180deg, #fffbe6 0%, #fff 100%); }
.org-join-banner-compact-text b { display: block; font-size: 14px; color: #874d00; }
.org-join-banner-compact-text p { margin: 4px 0 0; color: #ad6800; font-size: 12px; line-height: 1.5; }
.org-join-banner-compact .primary-button { flex-shrink: 0; height: 34px; padding: 0 16px; font-size: 12px; }
.org-join-banner-inner { padding: 16px 18px; border: 1px solid #ffe7ba; border-radius: 12px; background: linear-gradient(180deg, #fffbe6 0%, #fff 100%); }
.org-join-banner-head { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.org-join-banner-icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 10px; background: #fff1b8; color: #d48806; font-weight: var(--weight-display); flex-shrink: 0; }
.org-join-banner-head b { display: block; font-size: 15px; color: #874d00; }
.org-join-banner-head p { margin: 4px 0 0; color: #ad6800; font-size: 12px; line-height: 1.5; }
.org-join-list { display: grid; gap: 10px; }
.org-join-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 12px 14px; border: 1px solid #ffe58f; border-radius: 10px; background: #fff; }
.org-join-card-main b { display: block; font-size: 14px; color: #2f4057; }
.org-join-card-main small { display: block; margin-top: 4px; color: #8b98a8; font-size: 12px; line-height: 1.5; }
.org-join-card-main small em { font-style: normal; color: #1677ff; font-weight: 600; }
.org-join-card-main time { display: block; margin-top: 4px; color: #b7c3d0; font-size: 11px; }
.org-join-card-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
.org-join-card-form label { display: grid; gap: 4px; font-size: 11px; color: #8b98a8; font-weight: 600; }
.org-join-card-form select { min-width: 108px; height: 34px; padding: 0 8px; border: 1px solid #dfe7f2; border-radius: 8px; font-size: 12px; }
.org-join-card-actions { display: flex; gap: 6px; align-items: center; }
.org-join-card-actions .primary-button { height: 34px; padding: 0 14px; font-size: 12px; }
@media (min-width: 1200px) {
  .login-hero-inner { max-width: 680px; }
}
@media (max-width: 900px) {
  .login-screen { position: fixed; overflow-y: auto; }
  .login-layout { grid-template-columns: 1fr; min-height: auto; }
  .login-hero { min-height: auto; padding: 36px 24px 32px; }
  .login-hero-inner { max-width: none; }
  .login-hero-floats { display: none; }
  .login-card-wrap { min-height: auto; border-left: 0; padding: 28px 24px 36px; }
  .login-card { max-width: 480px; }
  .org-join-card { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .login-hero { padding: 28px 18px 24px; }
  .login-hero-pills span { padding: 6px 12px; font-size: 11px; }
  .login-card-wrap { padding: 20px 16px 28px; }
  .login-panel { padding: 22px 18px 10px; }
  .login-panel h2 { font-size: 20px; }
}
@media (max-height: 720px) and (min-width: 901px) {
  .login-float-card--b { display: none; }
  .login-hero-headline { font-size: clamp(28px, 4vw, 42px); }
}
.att-thumb-grid { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }
.att-thumb-grid.is-compact { gap: 6px; }
.att-thumb { display: block; padding: 0; border: 1px solid #e3ebf5; border-radius: 8px; background: #f8fafc; cursor: pointer; overflow: hidden; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.att-thumb:hover { border-color: #91caff; box-shadow: 0 4px 14px rgba(22,119,255,.14); transform: translateY(-1px); }
.att-thumb--image { width: 80px; height: 80px; }
.att-thumb--image.is-compact { width: 56px; height: 56px; border-radius: 6px; }
.att-thumb-img { display: block; width: 100%; height: 100%; object-fit: cover; background: #eef2f7; }
.att-thumb--file { display: grid; width: 56px; height: 56px; place-items: center; }
.att-thumb--file.is-compact { width: 48px; height: 48px; border-radius: 6px; }
.att-thumb--file i { display: grid; width: 100%; height: 100%; place-items: center; border-radius: inherit; color: #fff; background: #1677ff; font-size: 11px; font-style: normal; font-weight: var(--weight-display); letter-spacing: .2px; }
.att-thumb--file.kind-pdf i { background: #ff5151; }
.att-thumb--file.kind-xls i { background: #52c41a; }
.att-thumb--file.kind-doc i { background: #5b8def; }
.att-thumb--file.kind-txt i { background: #8b9cb0; }
.att-thumb.is-broken { border-style: dashed; border-color: #f0c2c2; background: #fff8f8; }
.att-thumb.is-broken:hover { border-color: #ff9f9f; box-shadow: 0 4px 14px rgba(255,77,79,.12); }
.attachment-inline-fallback { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 12px; border: 1px dashed #f0c2c2; border-radius: 8px; background: #fff8f8; color: #cf5b5b; font-size: 13px; }
.attachment-list { display: grid; gap: 7px; }.attachment-item { display: flex; gap: 9px; align-items: center; padding: 9px 11px; border: 1px solid var(--line); border-radius: 7px; background: #fbfcfe; }.attachment-item b { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }.attachment-item small { color: var(--muted); font-size: 11px; }.attachment-item a, .link-button { color: var(--blue); font-size: 12px; text-decoration: none; background: transparent; }
.attachment-preview-meta { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; color: #64748b; font-size: 12px; }.attachment-preview-meta span, .attachment-preview-meta a { padding: 5px 9px; border-radius: 999px; background: #f1f5f9; color: #526173; text-decoration: none; }
.attachment-preview-shell { display: flex; flex-direction: column; gap: 10px; min-height: 360px; }
.attachment-preview-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.attachment-preview-toolbar .secondary-button.is-active { border-color: #1677ff; color: #1677ff; background: #eef6ff; }
.attachment-preview-zoom-label { margin-left: auto; color: #64748b; font-size: 12px; }
.attachment-preview-viewport { position: relative; flex: 1; min-height: 320px; max-height: 68vh; overflow: auto; border: 1px solid #dfe7f1; border-radius: 10px; background: #f8fafc; }
.attachment-preview-viewport.is-annotate-mode { cursor: crosshair; }
.attachment-preview-canvas { transform-origin: top center; transition: transform .15s ease; width: 100%; min-height: 100%; display: flex; justify-content: center; align-items: flex-start; padding: 12px; box-sizing: border-box; }
.attachment-preview-notes { position: absolute; inset: 0; pointer-events: none; }
.attachment-preview-note { position: absolute; z-index: 2; pointer-events: auto; max-width: min(280px, 80%); padding: 6px 10px; border-radius: 8px; background: rgba(255,251,235,.96); border: 1px solid #f59e0b; color: #92400e; font-size: 13px; line-height: 1.5; box-shadow: 0 4px 12px rgba(15,23,42,.12); outline: none; }
.attachment-preview-image { display: block; max-width: 100%; height: auto; border-radius: 10px; box-shadow: 0 10px 28px rgba(15,23,42,.12); }
.attachment-preview-video { display: block; width: 100%; max-width: 100%; max-height: 70vh; border-radius: 10px; background: #0f172a; box-shadow: 0 10px 28px rgba(15,23,42,.12); }
.attachment-preview-text { margin: 0; width: 100%; max-width: 920px; white-space: pre-wrap; word-break: break-word; font-size: 14px; line-height: 1.7; font-family: inherit; color: #1e293b; background: #fff; border-radius: 8px; padding: 16px; box-shadow: 0 1px 0 rgba(15,23,42,.04); }
.attachment-preview-frame { width: 100%; min-height: 60vh; height: 60vh; border: 0; border-radius: 10px; background: #fff; }
.attachment-preview-docx {
  width: 100%;
  max-width: 920px;
  padding: 24px 28px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .08);
  color: #1e293b;
  font-size: 14px;
  line-height: 1.75;
  word-break: break-word;
}
.attachment-preview-docx p { margin: 0 0 12px; }
.attachment-preview-docx h1,
.attachment-preview-docx h2,
.attachment-preview-docx h3 { margin: 18px 0 10px; line-height: 1.35; }
.attachment-preview-docx ul,
.attachment-preview-docx ol { margin: 0 0 12px; padding-left: 1.4em; }
.attachment-preview-docx table { width: 100%; border-collapse: collapse; margin: 12px 0; }
.attachment-preview-docx th,
.attachment-preview-docx td { border: 1px solid #dbe3ef; padding: 6px 8px; }
.attachment-preview-sheet-root { width: 100%; max-width: 100%; }
.attachment-preview-sheet-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.attachment-preview-sheet-tab {
  border: 1px solid #dbe3ef;
  background: #fff;
  color: #475569;
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 12px;
  cursor: pointer;
}
.attachment-preview-sheet-tab.is-active {
  border-color: #1677ff;
  background: #eef6ff;
  color: #1677ff;
}
.attachment-preview-sheet-wrap {
  width: 100%;
  overflow: auto;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .08);
}
.attachment-preview-sheet-table {
  width: max-content;
  min-width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.attachment-preview-sheet-table td,
.attachment-preview-sheet-table th {
  border: 1px solid #dbe3ef;
  padding: 6px 10px;
  white-space: nowrap;
  background: #fff;
}
.attachment-preview-sheet-table tr:nth-child(even) td { background: #f8fafc; }
.attachment-preview-empty { padding: 28px; border: 1px dashed #ccd9e8; border-radius: 12px; background: #f8fbff; text-align: center; }.attachment-preview-empty p { color: #64748b; line-height: 1.8; }
.management-modal.management-modal--preview { width: min(920px, 94vw); }
#managementModal.management-modal--preview.is-attachment-fullscreen {
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  max-width: 100vw;
  max-height: 100vh;
  transform: none;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  z-index: 120;
}
#managementModal.management-modal--preview.is-attachment-fullscreen header,
#managementModal.management-modal--preview.is-attachment-fullscreen footer {
  flex-shrink: 0;
}
#managementModal.management-modal--preview.is-attachment-fullscreen .management-body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
#managementModal.management-modal--preview.is-attachment-fullscreen .attachment-preview-meta {
  flex-shrink: 0;
  margin-bottom: 8px;
}
#managementModal.management-modal--preview.is-attachment-fullscreen .attachment-preview-shell {
  flex: 1 1 auto;
  min-height: 0;
}
#managementModal.management-modal--preview.is-attachment-fullscreen .attachment-preview-viewport {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
}
#managementModal.management-modal--preview.is-attachment-fullscreen .attachment-preview-frame {
  min-height: calc(100vh - 220px);
  height: calc(100vh - 220px);
}
#managementModal.management-modal--preview.is-attachment-fullscreen .attachment-preview-video {
  max-height: calc(100vh - 220px);
  width: auto;
  max-width: 100%;
}
#managementModal.management-modal--preview.is-attachment-fullscreen .attachment-preview-image {
  max-height: calc(100vh - 220px);
  width: auto;
  max-width: 100%;
}
#managementModal.management-modal--preview.is-attachment-fullscreen .attachment-preview-docx,
#managementModal.management-modal--preview.is-attachment-fullscreen .attachment-preview-sheet-root {
  max-width: min(1200px, 100%);
}
body.attachment-preview-fullscreen-open #overlay {
  z-index: 119;
}
.management-modal.management-modal--close-only footer [data-close] { display: none !important; }
.drop-upload { position: relative; display: grid; gap: 5px; place-items: center; min-height: 92px; padding: 16px; border: 1px dashed #bfd3ea; border-radius: 12px; color: #526173; background: #f8fbff; text-align: center; cursor: pointer; transition: border-color .18s ease, background .18s ease; }
.drop-upload.dragging { border-color: #1677ff; background: #eef6ff; }.drop-upload input { position: absolute; inset: 0; opacity: 0; pointer-events: none; }.drop-upload b { color: #1e3a5f; font-size: 13px; }.drop-upload small, .drop-upload em { color: #7b8898; font-size: 11px; font-style: normal; }
.timeline { border-left: 2px solid #e8edf3; margin-left: 5px; padding-left: 16px; }
.timeline p { position: relative; margin: 12px 0; }
.timeline p::before { position: absolute; top: 6px; left: -21px; width: 8px; height: 8px; border-radius: 50%; background: var(--blue); content: ""; }
.timeline small { display: block; color: var(--muted); }
.drawer footer, .modal footer { display: flex; flex-wrap: wrap; justify-content: end; gap: 10px; padding: 12px 18px; border-top: 1px solid var(--line); }
#taskDrawer .task-drawer-footer,
#feedbackDrawer .task-drawer-footer,
#approvalFlowConfigDrawer .task-drawer-footer { flex-shrink: 0; position: relative; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 12px; height: var(--td-footer-h); padding: 0 var(--td-pad); border-top: 1px solid var(--td-border); background: #fff; box-shadow: none; }
.task-drawer-footer-main { display: flex; flex-wrap: nowrap; gap: 8px; align-items: center; }
#taskDrawer .td-btn-danger { flex-shrink: 0; margin-left: auto; }
#taskDrawer .task-drawer-footer,
#feedbackDrawer .task-drawer-footer,
#approvalFlowConfigDrawer .task-drawer-footer,
#taskSubtaskDrawer .task-subtask-drawer-footer,
#taskActionDrawer .task-action-drawer-footer {
  border-top-color: #dce5ef;
  box-shadow: 0 -8px 22px rgba(15, 35, 62, .045);
}
.modal { position: fixed; top: 50%; left: 50%; z-index: 41; display: none; width: var(--panel-width); max-width: min(var(--panel-width), 94vw); transform: translate(-50%, -50%); border-radius: 10px; background: #fff; box-shadow: 0 20px 60px rgba(4,29,58,.22); }
.modal.show { display: block; }
.modal:not(.create-task-modal) form:not(.member-edit-form):not(.create-task-form):not(.profile-form) { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; padding: 20px 24px 0; }
.modal form.profile-form {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  padding: 0;
  max-height: none;
  overflow: visible;
}
.modal:not(.create-task-modal) form:not(.member-edit-form):not(.create-task-form) .wide,
.modal:not(.create-task-modal) footer { grid-column: 1 / -1; }
.create-edge-tab {
  position: fixed;
  right: 0;
  top: var(--edge-tab-top, 50%);
  z-index: 30;
  display: grid;
  place-items: center;
  width: 18px;
  height: 52px;
  padding: 0;
  border: 1px solid #e8eef5;
  border-right: none;
  border-radius: 10px 0 0 10px;
  background: #fff;
  box-shadow: -4px 0 14px rgba(11, 36, 70, .08);
  cursor: pointer;
  transform: translateY(-50%);
  transition: width .18s ease, background .18s ease, box-shadow .18s ease;
}
.create-edge-tab:hover {
  width: 24px;
  background: #f9fbfd;
  box-shadow: -6px 0 18px rgba(11, 36, 70, .12);
}
.create-edge-tab-chevron {
  display: block;
  width: 8px;
  height: 8px;
  border-top: 2px solid #8ba0b6;
  border-left: 2px solid #8ba0b6;
  transform: rotate(-45deg);
  transition: border-color .18s ease, transform .18s ease;
}
.create-edge-tab:hover .create-edge-tab-chevron { border-color: #1677ff; transform: rotate(-45deg) translateX(-1px); }
body.create-drawer-open .create-edge-tab { display: none !important; }
.edge-tab-draggable.is-dragging {
  cursor: grabbing;
  transition: none;
  user-select: none;
}
.create-edge-tab.edge-tab-draggable { cursor: grab; }
.create-task-drawer {
  position: fixed;
  top: 0;
  right: calc(-1 * var(--panel-width));
  z-index: 64;
  display: flex;
  isolation: isolate;
  width: var(--panel-width);
  max-width: var(--panel-width);
  height: 100vh;
  max-height: 100vh;
  flex-direction: column;
  overflow: hidden;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  visibility: hidden;
  pointer-events: none;
  transition:
    right .28s cubic-bezier(.4, 0, .2, 1),
    box-shadow .28s ease,
    visibility 0s linear .28s;
}
.create-task-drawer.show {
  right: 0;
  visibility: visible;
  pointer-events: auto;
  box-shadow: -12px 0 32px rgba(5, 28, 54, .12);
  transition:
    right .28s cubic-bezier(.4, 0, .2, 1),
    box-shadow .28s ease,
    visibility 0s;
}
.product-feedback-owner-locked .xm-person-add,
.product-feedback-owner-locked .xm-person-remove { display: none !important; }
.product-feedback-owner-locked .xm-person-row { pointer-events: none; }
.product-feedback-drawer .create-desc-section textarea {
  width: 100%;
  min-height: 120px;
  padding: 12px 14px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  font: inherit;
  line-height: 1.55;
  resize: vertical;
}
body.has-notification-drawer #createModal.show { right: var(--panel-width); z-index: 63; }
.create-drawer-edge-handle {
  position: absolute;
  left: -14px;
  top: 50%;
  z-index: 2;
  display: grid;
  width: 14px;
  height: 48px;
  place-items: center;
  padding: 0;
  border: 1px solid #e8eef5;
  border-right: none;
  border-radius: 8px 0 0 8px;
  background: #fff;
  opacity: 0;
  cursor: pointer;
  transform: translateY(-50%);
  transition: opacity .18s ease, left .18s ease;
}
.create-task-drawer:hover .create-drawer-edge-handle,
.create-drawer-edge-handle:focus-visible { opacity: 1; left: -16px; }
.create-drawer-edge-chevron {
  display: block;
  width: 7px;
  height: 7px;
  border-top: 2px solid #8ba0b6;
  border-right: 2px solid #8ba0b6;
  transform: rotate(45deg);
  transition: border-color .18s ease;
}
.create-drawer-edge-handle:hover .create-drawer-edge-chevron { border-color: #1677ff; }
.create-task-drawer header.create-task-header { flex-shrink: 0; align-items: center; gap: 14px; padding: 16px 18px 12px; border-bottom: 1px solid #edf2f7; background: #fff; }
.create-task-drawer .create-back-btn,
.create-task-drawer .create-header-cancel,
.create-task-drawer .create-header-submit,
.create-task-drawer .create-task-top-actions { display: none !important; }
.create-flow-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px 12px !important;
}
.create-flow-title {
  margin: 0;
  font-size: 17px;
  font-weight: var(--weight-display);
  color: #102033;
  letter-spacing: -.02em;
}
.create-header-tools {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.create-more-menu { position: relative; }
.create-icon-btn {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  padding: 0;
  border: 1px solid #e3ebf5;
  border-radius: 8px;
  color: #526173;
  background: #fff;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition: border-color .15s, color .15s, background .15s;
}
.create-icon-btn:hover { border-color: #c8ddf8; color: #1677ff; background: #f7fbff; }
.create-icon-btn.has-draft::after {
  content: "";
  position: absolute;
  top: 6px;
  right: 6px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #1677ff;
  box-shadow: 0 0 0 2px #fff;
}
.create-more-menu .create-icon-btn { position: relative; }
.create-close-btn { font-size: 22px; font-weight: 300; }
.create-more-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 12;
  display: grid;
  min-width: 148px;
  padding: 6px;
  border: 1px solid #e3ebf5;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 35, 70, .12);
}
.create-more-dropdown button {
  display: block;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 6px;
  color: #13243a;
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.create-more-dropdown button:hover { color: #1677ff; background: #f0f7ff; }
.create-more-dropdown button[hidden] { display: none !important; }
.create-drawer-footer {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid #edf2f7;
  background: #fff;
}
.create-drawer-footer-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.create-drawer-hint {
  margin: 0;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.45;
}
.create-drawer-hint.is-error { color: #a8071a; background: #fff2f0; border: 1px solid #ffccc7; }
.create-drawer-hint.is-info { color: #0958d9; background: #e6f4ff; border: 1px solid #91caff; }
.create-drawer-hint.is-success { color: #135200; background: #f6ffed; border: 1px solid #b7eb8f; }
.create-task-heading { display: flex; gap: 12px; align-items: flex-start; min-width: 0; }
.create-back-btn { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #e3ebf5; border-radius: 8px; color: #526173; background: #fff; font-size: 18px; }
.create-task-heading h2 { margin: 0; font-size: 20px; color: #102033; }
.create-task-subtitle { margin: 4px 0 0; color: #7b8798; font-size: 12px; line-height: 1.5; }
.create-task-top-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; margin-left: auto; }
.create-task-top-actions .btn-ic { display: inline-block; width: 14px; height: 14px; margin-right: 4px; vertical-align: -2px; border-radius: 3px; background: #1677ff; opacity: .85; }
.create-task-drawer form.create-task-form { display: flex; flex: 1; min-height: 0; flex-direction: column; overflow: hidden; padding: 0; grid-template-columns: none; gap: 0; }
.create-task-drawer .create-task-form > input[type="hidden"] { display: none; }
.create-flow {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
#createModal .create-flow {
  overflow-x: hidden;
  overflow-y: auto;
}
#createModal .create-desc-section.create-flow-card {
  flex: 0 0 auto;
  min-height: auto;
  max-height: none;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: visible;
}
#createModal .create-desc-section .create-section-head,
#createModal .create-desc-section .create-related-task-chips,
#createModal .create-desc-section .create-mention-picker {
  flex-shrink: 0;
}
#createModal .create-desc-section .create-textarea-wrap.rich-editor-shell {
  flex: 0 0 auto;
  min-height: auto;
  max-height: none;
  width: 100%;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  overflow: visible;
}
#createModal .create-meta-strip,
#createModal .create-effect-panel,
#createModal .create-subtask-panel-wrap {
  flex-shrink: 0;
}
#createModal .create-textarea-wrap.rich-editor-shell.is-ready {
  overflow: visible;
  height: auto;
  min-height: auto;
  --xm-re-btn-size: 26px;
  --xm-re-icon-size: 16px;
  --xm-re-btn-radius: 6px;
}
#createModal .create-textarea-wrap.rich-editor-shell.is-ready .EasyMDEContainer {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  min-height: auto;
  max-height: none;
  height: auto;
  overflow: visible;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
#createModal .create-textarea-wrap.rich-editor-shell.is-ready .create-desc-toolbar {
  flex: 0 0 auto;
  order: 3;
  position: relative;
  z-index: 1;
  margin-top: 0;
  padding: 4px 8px;
  border-top: 1px solid #edf2f8;
  background: #fff;
  border-radius: 0 0 7px 7px;
}
#createModal .create-textarea-wrap.rich-editor-shell.is-ready .EasyMDEContainer .create-desc-preview {
  order: 2;
  flex: 0 0 auto;
}
#createModal .create-textarea-wrap.rich-editor-shell.is-ready .editor-toolbar {
  flex: 0 0 auto;
  order: 0;
  min-height: 0;
  padding: 2px 6px;
  gap: 0 1px;
  align-content: center;
}
#createModal .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror {
  flex: 0 0 auto;
  order: 1;
  min-height: 0 !important;
  max-height: none !important;
  height: auto !important;
  display: block;
}
#createModal .create-textarea-wrap.rich-editor-shell.is-ready .editor-toolbar button.xm-re-heading-trigger {
  min-width: 64px !important;
  padding: 0 6px !important;
}
#createModal .create-textarea-wrap.rich-editor-shell.is-ready .editor-toolbar button.xm-re-heading-trigger .xm-re-heading-label {
  font-size: 12px;
  font-weight: 600;
}
#createModal .create-textarea-wrap.rich-editor-shell.is-ready .editor-toolbar i.separator {
  height: 18px;
  margin: 0 2px;
}
#createModal .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror-scroll {
  flex: 0 0 auto;
  min-height: 88px !important;
  max-height: none !important;
  height: auto;
  overflow-y: hidden !important;
}
#createModal .create-textarea-wrap.rich-editor-shell.is-ready .rich-editor-char-counter {
  display: none !important;
}
.create-project-picker-menu[hidden] { display: none !important; }
.create-meta-field.create-meta-reviewer .create-people-inline,
.create-meta-field.create-meta-owner .create-people-inline { min-height: 34px; }
.create-dept-at-btn { margin-left: 6px; font-size: 11px; padding: 1px 6px; border-radius: 3px; color: #6366f1; border-color: #c7d2fe; font-weight: var(--weight-medium); }
.create-dept-at-btn:hover { background: #eef2ff; border-color: #6366f1; }
.create-hero-title {
  position: relative;
  padding-bottom: 4px;
}
.create-hero-input-row {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}
.create-hero-input-row .create-hero-input {
  flex: 1;
  min-width: 0;
  padding-right: 2px;
}
.create-ai-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(22, 119, 255, 0.25);
  border-radius: 999px;
  background: linear-gradient(135deg, #eef6ff, #f5f0ff);
  color: #1677ff;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
  transition: background .15s, border-color .15s, opacity .15s;
}
.create-ai-btn:hover:not(:disabled) {
  background: linear-gradient(135deg, #dbeafe, #ede9fe);
  border-color: rgba(22, 119, 255, 0.45);
}
.create-ai-btn:disabled,
.create-ai-btn.is-loading { opacity: 0.65; cursor: wait; }
.create-ai-btn-icon { font-size: 13px; line-height: 1; }
.create-tool-ai { color: #1677ff; border-color: rgba(22, 119, 255, 0.2); background: #f8fbff; }
.create-tool-ai:hover { background: #eef6ff; }
.create-tool-ic-ai { color: #6366f1; font-weight: 700; }
.create-hero-input {
  width: 100%;
  padding: 2px 48px 8px 2px;
  border: 0;
  border-bottom: 2px solid #e3ebf5;
  border-radius: 0;
  color: #102033;
  background: transparent;
  font-size: 18px;
  font-weight: var(--weight-strong);
  line-height: 1.3;
  letter-spacing: -.02em;
  box-sizing: border-box;
  transition: border-color .2s;
}
.create-hero-input::placeholder { color: #b8c5d4; font-weight: 500; }
.create-hero-input:focus {
  outline: none;
  border-bottom-color: #1677ff;
  box-shadow: none;
}
.create-hero-counter {
  position: absolute;
  right: 2px;
  bottom: 10px;
  color: #9aa8b8;
  font-size: 11px;
  font-style: normal;
}
.create-field-hint {
  margin: 4px 0 0;
  padding: 0;
  color: #cf1322;
  font-size: 12px;
  line-height: 1.45;
}
.create-field-hint.is-info { color: #0958d9; }
.create-field-hint.is-success { color: #389e0d; }
.create-field-hint[hidden] { display: none !important; }
.create-hero-input.is-field-invalid,
.create-meta-field input.is-field-invalid,
.create-meta-field select.is-field-invalid {
  border-color: #ff7875 !important;
  box-shadow: 0 0 0 2px rgba(255, 77, 79, .12) !important;
}
.create-hero-input.is-field-invalid { border-bottom-color: #ff7875 !important; }
.create-drawer-sheet {
  position: absolute;
  inset: 0;
  z-index: 12;
}
.create-task-drawer.has-subtask-sheet .create-drawer-sheet[hidden] { display: none !important; }
.create-task-drawer.has-subtask-sheet .create-drawer-sheet:not([hidden]) { display: flex; }
.create-flow-card {
  border: 0;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 35, 62, .05), 0 6px 22px rgba(15, 35, 62, .1);
}
.create-meta-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 14px;
  padding: 12px 14px;
  background: #fff;
}
.create-meta-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 14px;
  grid-column: 1 / -1;
}
.create-meta-row-project-deadline {
  align-items: start;
}
.create-meta-row-project-deadline .create-meta-field {
  display: grid;
  grid-template-rows: auto minmax(0, auto);
  align-content: start;
}
.create-meta-row-project-deadline .create-project-picker-btn,
.create-meta-row-project-deadline input[type="datetime-local"] {
  height: 42px;
  min-height: 42px;
  max-height: 42px;
  box-sizing: border-box;
}
.create-meta-row-project-deadline .create-project-picker-btn {
  padding: 0 10px;
}
.create-meta-row-project-deadline input[type="datetime-local"] {
  padding: 0 6px 0 10px;
  line-height: 42px;
}
.create-meta-row-project-deadline input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  width: 20px;
  height: 20px;
  margin: 0 2px 0 4px;
  padding: 0;
  cursor: pointer;
  opacity: 0.92;
}
.create-meta-collab {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0;
  grid-column: 1 / -1;
  border: 1px solid #edf2f8;
  border-radius: 10px;
  overflow: visible;
  background: #fff;
}
.create-meta-strip,
.create-meta-strip .create-meta-field,
.create-meta-collab .create-collab-stack,
.create-meta-collab .create-cc-quick,
.create-meta-collab .create-cc-chips {
  overflow: visible;
}
.create-meta-strip:has(.xm-person-popover:not([hidden])) {
  position: relative;
  z-index: 40;
}
.create-meta-collab .create-meta-field {
  padding: 10px 12px;
}
.create-meta-divider {
  width: 1px;
  align-self: stretch;
  margin: 10px 0;
  border: 0;
  border-left: 1px dashed rgba(200, 212, 226, .55);
}
.approval-circulation-template-fold {
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: #fbfdff;
  overflow: hidden;
}
.approval-circulation-template-fold-summary {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
}
.approval-circulation-template-fold-summary::-webkit-details-marker { display: none; }
.approval-circulation-template-fold-title {
  font-size: 13px;
  font-weight: var(--weight-strong);
  color: #2f4057;
}
.approval-circulation-template-fold-desc {
  font-size: 12px;
  color: #8aa0b8;
  line-height: 1.45;
}
.approval-circulation-template-fold-body {
  padding: 0 10px 10px;
  border-top: 1px solid #eef2f6;
}
.approval-circulation-template-fold-body .approval-flow-list {
  margin-top: 8px;
}
.create-collab-card {
  padding: 0 0 4px;
  overflow: hidden;
}
.create-collab-card .create-section-head {
  padding: 12px 14px 0;
}
.create-collab-card .create-form-body {
  padding: 2px 14px 10px;
}
.create-collab-card .create-row {
  border-top: 0;
  padding-top: 4px;
  padding-bottom: 4px;
}
.create-collab-card .create-row + .create-row {
  margin-top: 2px;
}
.create-desc-section.create-flow-card {
  padding: 12px 14px 14px;
  display: grid;
  gap: 8px;
}
.create-meta-field {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.create-meta-field.create-meta-wide { grid-column: 1 / -1; }
.create-meta-label {
  color: #6f7f92;
  font-size: 11px;
  font-weight: var(--weight-strong);
  letter-spacing: .02em;
}
.create-meta-label .req { color: #ff4d4f; margin-left: 2px; }
.create-meta-field select,
.create-meta-field input[type="datetime-local"] {
  width: 100%;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid #e3eaf2;
  border-radius: 8px;
  color: #13243a;
  background: #fff;
  font-size: 13px;
  box-sizing: border-box;
}
.create-meta-field select:focus,
.create-meta-field input:focus {
  border-color: #9ec5ff;
  outline: none;
  box-shadow: 0 0 0 3px rgba(22,119,255,.08);
}
.create-project-picker { position: relative; min-width: 0; }
.create-project-native {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.create-project-picker-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  width: 100%;
  min-height: 36px;
  padding: 5px 10px;
  border: 1px solid #e3eaf2;
  border-radius: 8px;
  color: #13243a;
  background: #fff;
  font-size: 13px;
  font-weight: var(--weight-strong);
  text-align: left;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}
.create-project-picker-btn:hover,
.create-project-picker.is-open .create-project-picker-btn {
  border-color: #9ec5ff;
  box-shadow: 0 0 0 3px rgba(22,119,255,.08);
}
.create-project-picker-btn .create-chevron {
  margin-left: auto;
  flex-shrink: 0;
  transition: transform .2s;
}
.create-project-picker.is-open .create-project-picker-btn .create-chevron {
  transform: rotate(-135deg);
  margin-top: 3px;
}
.create-project-picker-logo {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
}
.create-project-picker-logo .hub-pick-icon,
.create-project-picker-logo .project-logo-thumb {
  width: 24px;
  height: 24px;
  border-radius: 7px;
  font-size: 12px;
}
.create-project-picker-logo .project-logo-thumb { object-fit: cover; border-radius: 50%; }
.create-project-picker-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.create-project-picker-menu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 30;
  max-height: 220px;
  overflow-y: auto;
  padding: 4px;
  border: 1px solid #e3eaf2;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(18, 45, 82, .12);
}
.create-project-picker-option {
  display: flex;
  align-items: center;
  gap: 5px;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 8px;
  color: #26364a;
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.create-project-picker-option:hover,
.create-project-picker-option.active {
  color: #1677ff;
  background: #f5f9ff;
}
.create-project-picker-option .hub-pick-icon,
.create-project-picker-option .project-logo-thumb {
  width: 24px;
  height: 24px;
  border-radius: 7px;
  font-size: 12px;
  flex-shrink: 0;
}
.create-project-picker-option .project-logo-thumb { object-fit: cover; border-radius: 50%; }
.create-project-picker-btn.is-locked {
  cursor: default;
  background: #fff;
  color: #6f7f92;
}
.create-people-inline { min-height: 34px; }
.create-seg-compact {
  padding: 4px;
  gap: 5px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #e7edf5;
}
.create-seg-compact .create-pill {
  padding: 6px 10px;
  font-size: 12px;
  border: 1px solid #e3eaf2;
  background: #fff;
  border-radius: 8px;
  position: relative;
}
#createTypeChips,
.create-type-seg.create-seg-compact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
#createTypeChips .create-type-pill,
.create-type-seg.create-seg-compact .create-type-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 10px;
  line-height: 1;
}
#createTypeChips .create-type-pill span,
.create-type-seg.create-seg-compact .create-type-pill span {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}
.create-seg-compact .create-type-ic {
  display: block;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  font-style: normal;
  line-height: 0;
  background-size: 13px;
  border-radius: 6px;
}
.create-seg-compact .create-priority-pill .xm-priority { width: 26px; height: 22px; font-size: 10px; border-radius: 6px; }
.create-seg-compact .create-pill:hover {
  border-color: #c8ddf8;
  background: #fff;
}
.create-seg-compact .create-pill.active::after {
  content: "";
  position: absolute;
  top: 3px;
  right: 3px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  opacity: .85;
}
.create-desc-section {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.create-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.create-section-label {
  color: #526173;
  font-size: 13px;
  font-weight: var(--weight-strong);
}
.create-section-counter {
  color: #9aa8b8;
  font-size: 11px;
  font-style: normal;
}
.create-desc-guide {
  margin: -2px 0 8px;
  color: #7a8a9c;
  font-size: 12px;
  line-height: 1.5;
}
.wf-snippet-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  margin: 0 0 8px;
  padding: 8px 10px;
  border: 1px solid #e8eef6;
  border-radius: 8px;
  background: #f8fafc;
}
.wf-snippet-label {
  flex: 0 0 auto;
  color: #64748b;
  font-size: 11px;
  font-weight: var(--weight-strong);
}
.wf-snippet-chips {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}
.wf-snippet-chip {
  padding: 4px 10px;
  border: 1px solid #dbe7f5;
  border-radius: 999px;
  color: #334155;
  background: #fff;
  font-size: 11px;
  line-height: 1.3;
  cursor: pointer;
  transition: .15s ease;
}
.wf-snippet-chip:hover {
  border-color: #93c5fd;
  color: #1677ff;
  background: #eff6ff;
}
.wf-snippet-chip.is-personal {
  border-style: dashed;
}
.wf-snippet-chip-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.wf-snippet-chip-wrap:hover .wf-snippet-chip-del {
  opacity: 1;
  pointer-events: auto;
}
.wf-snippet-chip-del {
  position: absolute;
  top: -6px;
  right: -6px;
  z-index: 2;
  display: grid;
  width: 16px;
  height: 16px;
  place-items: center;
  padding: 0;
  border: 1px solid #ffa39e;
  border-radius: 50%;
  color: #cf1322;
  background: #fff;
  font-size: 12px;
  line-height: 1;
  opacity: 0;
  pointer-events: none;
  cursor: pointer;
  transition: opacity .15s ease;
}
.wf-snippet-chip-del:hover {
  background: #fff1f0;
}
.wf-snippet-manage {
  flex: 0 0 auto;
}
.wf-snippet-manage:not(.xm-person-add) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px dashed #c5d0dc;
  border-radius: 50%;
  color: #8b98a8;
  background: #fff;
  font-size: 20px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.wf-snippet-manage:not(.xm-person-add):hover {
  border-color: #1677ff;
  color: #1677ff;
  background: #f0f7ff;
}
.wf-snippet-modal {
  width: min(560px, 94vw);
  z-index: 70;
}
.wf-snippet-modal-body {
  display: grid;
  gap: 14px;
  padding: 16px 18px 8px;
}
.wf-snippet-modal-body label {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.wf-snippet-modal-body label span {
  color: rgba(0, 0, 0, .65);
  font-size: 13px;
  font-weight: 500;
}
.wf-snippet-modal-body input,
.wf-snippet-modal-body textarea {
  width: 100%;
  padding: 7px 10px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  font-size: 13px;
  box-sizing: border-box;
}
.wf-snippet-editor-host {
  width: 100%;
}
.wf-snippet-editor-host .EasyMDEContainer,
.wf-snippet-editor-host .CodeMirror,
.wf-snippet-editor-host .CodeMirror-scroll {
  width: 100% !important;
  text-align: left !important;
  min-height: 180px !important;
}
.dy-compose-box .wf-snippet-bar,
.task-sheet-form .wf-snippet-bar,
.management-grid .wf-snippet-host {
  width: 100%;
}
.management-grid .rich-editor-compose .rich-compose-footer,
.sheet-mention-host.rich-editor-compose .rich-compose-footer {
  padding: 4px 0 6px;
  flex: 0 0 auto;
}
.sheet-mention-host.rich-editor-compose > .create-textarea-wrap.rich-editor-shell {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.sheet-mention-host.rich-editor-compose > .create-mention-actions {
  flex: 0 0 auto;
}
.create-attach-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 8px 10px;
}
.create-attach-inline .compact-upload {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
}
.create-subtask-inline-btn { flex-shrink: 0; }
.create-subtask-draft-badges {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.create-subtask-draft-badge {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #1677ff;
  background: #eef6ff;
  cursor: pointer;
  transition: background .15s ease, box-shadow .15s ease, transform .15s ease;
}
.create-subtask-draft-badge:hover {
  background: #dbeafe;
  box-shadow: 0 4px 12px rgba(22, 119, 255, .18);
  transform: translateY(-1px);
}
.create-subtask-draft-badge-num {
  font-size: 14px;
  font-weight: var(--weight-display);
  line-height: 1;
}
.create-subtask-draft-badge-label {
  margin-top: 1px;
  font-size: 8px;
  font-weight: var(--weight-strong);
  line-height: 1;
  opacity: .88;
}
.create-subtask-draft-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.create-subtask-draft-remove {
  position: absolute;
  top: -4px;
  right: -4px;
  display: none;
  width: 16px;
  height: 16px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: #ff4d4f;
  font-size: 12px;
  line-height: 16px;
  cursor: pointer;
}
.create-subtask-draft-wrap:hover .create-subtask-draft-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.create-subtask-draft-badge[data-tip]:hover::after {
  content: attr(data-tip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  z-index: 30;
  padding: 6px 10px;
  border-radius: 8px;
  color: #13243a;
  background: #fff;
  border: 1px solid #dbe7f6;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
  transform: translateX(-50%);
  box-shadow: 0 8px 22px rgba(15, 35, 70, .14);
}
.create-subtask-panel-wrap {
  padding: 10px 14px 12px;
  background: #fff;
}
.create-subtask-panel-wrap[hidden] { display: none !important; }
.create-attach-inline .compact-upload-hint {
  margin: 0;
  color: #9aa8b8;
  font-size: 11px;
}
.create-subtask-entry {
  padding: 12px 14px;
  background: #fff;
}
.create-subtask-entry-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.create-subtask-entry .create-subtask-panel {
  margin-top: 8px;
  padding-top: 0;
}
.create-subtask-summary-list {
  display: grid;
  gap: 8px;
}
.create-subtask-summary-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}
.create-subtask-summary-item:hover {
  border-color: #c8ddf8;
  box-shadow: 0 2px 8px rgba(22, 119, 255, .08);
}
.create-subtask-summary-main {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.create-subtask-summary-main b {
  color: #13243a;
  font-size: 13px;
  font-weight: var(--weight-strong);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.create-subtask-summary-main small {
  color: #8b98a8;
  font-size: 11px;
  line-height: 1.4;
}
.create-subtask-summary-remove {
  padding: 4px 8px;
  border: 0;
  border-radius: 6px;
  color: #8b98a8;
  background: transparent;
  font-size: 12px;
  cursor: pointer;
}
.create-subtask-summary-remove:hover {
  color: #cf1322;
  background: #fff1f0;
}
.create-subtask-empty-tip {
  margin: 0;
  padding: 10px 2px 2px;
  color: #9aa8b8;
  font-size: 12px;
  line-height: 1.5;
}
.create-subtask-entry.is-expanded {
  background: #fff;
  border-color: #dbe7f6;
}
.create-effect-panel {
  padding: 12px 14px 14px;
  display: grid;
  gap: 10px;
}
.create-effect-modes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.create-effect-mode-card {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1.5px solid #e3ebf5;
  border-radius: 10px;
  color: #13243a;
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.create-effect-mode-card b {
  font-size: 13px;
  font-weight: var(--weight-display);
}
.create-effect-mode-card small {
  color: #8b98a8;
  font-size: 11px;
  line-height: 1.45;
}
.create-effect-mode-card:hover {
  border-color: #c8ddf8;
  background: #f8fbff;
}
.create-effect-mode-card.active {
  border-color: #91caff;
  background: #eef6ff;
  box-shadow: 0 0 0 2px rgba(22, 119, 255, .1);
}
.create-effect-mode-card.active b { color: #1677ff; }
.create-schedule-panel {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px dashed #dbe7f6;
  border-radius: 10px;
  background: #f8fbff;
}
.create-schedule-panel[hidden] { display: none !important; }
.create-more-body { border-top: 1px solid #edf2f7; background: #fff; }
.create-advanced-grid {
  display: grid;
  gap: 14px;
  padding: 14px;
}
.create-advanced-block {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.create-advanced-block.create-advanced-wide { grid-column: 1 / -1; }
.create-advanced-label {
  color: #6f7f92;
  font-size: 12px;
  font-weight: var(--weight-strong);
}
.create-advanced-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.create-advanced-inline {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  margin-top: 8px;
}
.create-advanced-inline > span { color: #6f7f92; font-size: 12px; font-weight: 600; }
.create-advanced-inline input {
  width: 100%;
  padding: 7px 10px;
  border: 1px solid #e3eaf2;
  border-radius: 8px;
  font-size: 13px;
}
.create-task-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr); gap: 16px; width: 100%; max-height: calc(92vh - 64px); padding: 12px 16px 14px; overflow: hidden; box-sizing: border-box; align-items: start; }
.create-task-main, .create-task-side { display: flex; flex-direction: column; gap: 10px; min-width: 0; max-height: calc(92vh - 64px); overflow-y: auto; }
.create-panel { padding-bottom: 2px; }
.create-panel .xm-panel-title, .create-panel-title { padding: 11px 14px 6px; }
.create-panel-title h3 small { color: #8b98a8; font-weight: 500; font-size: 12px; }
.create-form-body { display: grid; gap: 0; padding: 2px 14px 12px; }
.create-form-body-compact { padding-top: 8px; }
.create-row { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 10px 12px; align-items: center; min-height: 40px; padding: 7px 0; border-top: 1px solid #f0f4f9; }
.create-row:first-child { border-top: 0; padding-top: 2px; }
.create-row-top { align-items: start; }
.create-row-top .create-row-label { padding-top: 8px; }
.create-row-label { color: #6f7f92; font-size: 12px; font-weight: var(--weight-strong); line-height: 1.35; white-space: nowrap; }
.create-row-label .req { margin-left: 2px; color: #ff4d4f; font-weight: 900; }
.create-row-label small { display: block; margin-top: 2px; color: #9aa8b8; font-size: 10px; font-weight: 500; }
.create-row-control { min-width: 0; }
.create-row-control input, .create-row-control select, .create-row-control textarea { width: 100%; padding: 8px 10px; border: 1px solid #e3eaf2; border-radius: 8px; color: #13243a; background: #fff; font-size: 13px; box-sizing: border-box; }
.create-row-control input:focus, .create-row-control select:focus, .create-row-control textarea:focus { border-color: #9ec5ff; outline: none; box-shadow: 0 0 0 3px rgba(22,119,255,.08); }
.create-row-inline { display: flex; gap: 8px; align-items: center; }
.create-row-inline select { flex: 1; min-width: 0; }
.create-row-split { display: grid; grid-template-columns: minmax(0, 1fr) 148px; gap: 10px; align-items: center; }
.create-mini-field { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 6px; align-items: center; margin: 0; }
.create-mini-field > span { color: #8b98a8; font-size: 12px; font-weight: 600; }
.create-input-wrap { position: relative; }
.create-input-wrap input { padding-right: 58px; }
.create-counter { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); color: #9aa8b8; font-size: 11px; font-style: normal; }
.create-textarea-wrap { display: grid; gap: 0; border: 1px solid #e3eaf2; border-radius: 8px; overflow: hidden; background: #fff; }
.create-textarea-wrap textarea:not(.rich-editor-bound) { width: 100%; min-height: 68px; max-height: 110px; padding: 8px 10px; border: 0; border-radius: 0; resize: vertical; line-height: 1.55; }
.create-textarea-wrap.rich-editor-shell.is-ready {
  overflow: hidden;
  isolation: isolate;
}
.create-textarea-wrap.rich-editor-shell.is-ready .EasyMDEContainer {
  display: flex;
  flex-direction: column;
  border: 0;
  border-radius: 0;
  min-height: 0;
  overflow: hidden;
}
.create-textarea-wrap.rich-editor-shell.is-ready .editor-toolbar {
  flex: 0 0 auto;
  border-radius: 7px 7px 0 0;
  min-height: 56px;
  padding: 4px 8px;
  align-content: center;
}
.create-textarea-wrap.rich-editor-shell.is-ready .create-desc-toolbar {
  margin-top: 0;
  border-radius: 0 0 7px 7px;
}
.create-textarea-wrap.rich-editor-shell.is-ready .create-desc-toolbar .rich-editor-char-counter {
  margin: 0 0 0 auto;
  padding: 0;
}
.create-textarea-wrap.rich-editor-shell.is-ready .create-desc-preview:not([hidden]) {
  border-radius: 0 0 7px 7px;
}
.create-textarea-wrap.rich-editor-shell.is-ready .create-desc-preview:not([hidden]) + .create-desc-toolbar,
.create-textarea-wrap.rich-editor-shell.is-ready .create-desc-preview:not([hidden]) ~ .rich-editor-char-counter {
  border-radius: 0;
}
.create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror-lines {
  padding: 8px 10px 6px;
}
.create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror,
.create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror-scroll {
  min-height: 96px !important;
}
#createModal .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror,
#createModal .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror-scroll {
  max-height: none !important;
}
.create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror {
  flex: 1 1 auto;
  min-height: 0;
  cursor: text;
}
.create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror-scroll {
  overflow-y: auto !important;
}
.create-textarea-wrap.rich-editor-shell.is-enlarged,
.create-textarea-wrap.rich-editor-shell.is-fullscreen.is-enlarged {
  display: block;
  gap: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  transform: none;
  box-shadow: none;
  background: transparent;
}
.create-textarea-wrap.rich-editor-shell.is-enlarged .EasyMDEContainer,
.create-textarea-wrap.rich-editor-shell.is-fullscreen.is-enlarged .EasyMDEContainer {
  flex: 1 1 auto;
  min-height: 0 !important;
  overflow: visible;
}
.create-textarea-wrap.rich-editor-shell.is-enlarged .CodeMirror,
.create-textarea-wrap.rich-editor-shell.is-enlarged .CodeMirror-scroll,
.create-textarea-wrap.rich-editor-shell.is-fullscreen.is-enlarged .CodeMirror,
.create-textarea-wrap.rich-editor-shell.is-fullscreen.is-enlarged .CodeMirror-scroll {
  min-height: 120px !important;
  flex: 1 1 auto;
}
.create-textarea-wrap.rich-editor-shell.is-enlarged .create-desc-toolbar {
  flex-shrink: 0;
  padding: 0;
  border-top: 0;
}
.create-desc-toolbar--removed {
  flex-shrink: 0;
  padding: 10px 14px;
}
.create-desc-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 6px 8px;
  border-top: 1px solid #edf2f8;
  background: #fff;
}
.create-desc-preview-item {
  position: relative;
  margin: 0;
  width: 64px;
  height: 64px;
  border: 1px solid #e3ebf5;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 4px rgba(15, 35, 62, .06);
}
.create-desc-preview-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  z-index: 2;
  display: none;
  width: 18px;
  height: 18px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(15, 23, 42, .72);
  color: #fff;
  font-size: 13px;
  line-height: 18px;
  cursor: pointer;
}
.create-desc-preview-item:hover .create-desc-preview-remove {
  display: block;
}
.create-desc-preview-remove:hover {
  background: #ef4444;
}
.create-desc-preview-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.create-desc-preview-item--video video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #0f172a;
}
.create-desc-preview-badge {
  position: absolute;
  right: 4px;
  bottom: 4px;
  padding: 1px 5px;
  border-radius: 4px;
  font-size: 10px;
  font-style: normal;
  color: #fff;
  background: rgba(15, 23, 42, .72);
}
.create-desc-preview-item--video,
.create-desc-preview-item--file {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 6px;
  text-align: center;
}
.create-desc-preview-item--file i {
  font-style: normal;
  font-size: 18px;
  font-weight: 700;
  color: #2563eb;
}
.create-desc-preview-item--file span {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 10px;
  line-height: 1.3;
  color: #64748b;
  word-break: break-all;
}
.rich-content img:not(.att-thumb-img),
.dy-comment-content.rich-content img:not(.att-thumb-img) {
  cursor: zoom-in;
  border-radius: 6px;
  transition: box-shadow .15s ease;
}
.rich-content img:not(.att-thumb-img):hover,
.dy-comment-content.rich-content img:not(.att-thumb-img):hover {
  box-shadow: 0 0 0 2px rgba(37, 99, 235, .25);
}
.create-desc-toolbar,
.create-mention-actions {
  display: flex;
  gap: 4px;
  align-items: center;
  padding: 6px 10px;
  border-top: 1px solid #edf2f8;
  background: #fff;
}
.create-desc-toolbar .create-counter { position: static; transform: none; margin-left: auto; }
.create-mention-actions { margin-top: 0; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.create-related-task-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 8px;
}
.create-related-task-chips[hidden] { display: none !important; }
.create-related-task-chip {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  max-width: 100%;
  padding: 2px 4px 2px 8px;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  background: #f0f7ff;
}
.create-related-task-chip-btn {
  border: 0;
  padding: 2px 4px 2px 0;
  color: #0958d9;
  background: transparent;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.create-related-task-chip-btn:hover { color: #1677ff; text-decoration: underline; }
.create-related-task-chip-remove {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: #8b98a8;
  background: transparent;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}
.create-related-task-chip-remove:hover { color: #cf1322; background: #fff1f0; }
.create-related-task-item .create-related-task-item-main {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 100%;
  min-width: 0;
  text-align: left;
}
.create-related-task-item {
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  align-content: stretch;
  padding: 10px 12px;
  min-height: 56px;
}
.create-related-task-item b {
  display: -webkit-box;
  width: 100%;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  word-break: break-word;
}
.create-related-task-item small {
  display: block;
  width: 100%;
  color: #8b98a8;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sheet-mention-host > .create-mention-actions,
.sheet-mention-host > .sheet-mention-actions,
.td-compose-field > .create-mention-actions {
  border-top: 0;
  padding: 0;
  background: transparent;
}
.sheet-mention-host.rich-editor-shell {
  position: relative;
}
.sheet-mention-host.rich-editor-shell > .sheet-mention-actions {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 12;
  display: flex;
  align-items: center;
  height: 48px;
  padding: 0 8px 0 0;
  margin: 0;
  pointer-events: none;
}
.sheet-mention-host.rich-editor-shell > .sheet-mention-actions .create-tool {
  pointer-events: auto;
}
.sheet-mention-host.rich-editor-shell .EasyMDEContainer .editor-toolbar {
  padding-right: 92px;
}
.sheet-mention-host.rich-editor-shell .EasyMDEContainer,
.sheet-mention-host.rich-editor-shell .CodeMirror {
  width: 100% !important;
  text-align: left !important;
  direction: ltr !important;
}
.sheet-mention-host.rich-editor-shell .CodeMirror-scroll {
  width: 100% !important;
  text-align: left !important;
}
.sheet-mention-host.rich-editor-shell .CodeMirror-placeholder {
  left: 10px !important;
  right: auto !important;
  width: calc(100% - 20px);
  max-width: calc(100% - 20px);
  text-align: left !important;
  pointer-events: none;
  color: #b4b4b8 !important;
}
.create-tool { display: inline-flex; flex-direction: row; align-items: center; gap: 4px; width: auto; min-width: 0; height: auto; min-height: 28px; padding: 4px 10px; border: 0; border-radius: 6px; color: #526173; background: transparent; font-size: 12px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.create-tool:hover { color: #1677ff; background: #eef6ff; }
.create-tool .create-tool-ic { font-size: 13px; font-weight: var(--weight-display); color: #1677ff; }
.create-tool-ic-related {
  display: inline-block;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Crect x='1.5' y='3' width='7.5' height='9.5' rx='1.2' stroke='%231677ff' stroke-width='1.35'/%3E%3Crect x='7' y='5' width='7.5' height='9.5' rx='1.2' stroke='%231677ff' stroke-width='1.35' fill='%23fff'/%3E%3Cpath d='M4.5 6.5h2M4.5 8.5h2' stroke='%231677ff' stroke-width='1.1' stroke-linecap='round'/%3E%3C/svg%3E");
}
.create-seg { display: flex; flex-wrap: wrap; gap: 6px; padding: 5px; border: 1px solid #e7edf5; border-radius: 10px; background: #fff; }
.create-pill { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border: 1px solid transparent; border-radius: 8px; color: #526173; background: transparent; font-size: 12px; font-weight: var(--weight-strong); transition: background .15s, border-color .15s, box-shadow .15s, color .15s, transform .12s; }
.create-pill span { line-height: 1.2; }
.create-pill:hover { background: #fff; border-color: #e3ebf5; }
.create-pill.active { font-weight: var(--weight-display); box-shadow: 0 2px 12px rgba(22,119,255,.14); transform: translateY(-1px); }
.create-type-pill.active[data-tone="blue"] { color: #1677ff; background: #eef6ff; border-color: #9ec5ff; }
.create-type-pill.active[data-tone="green"] { color: #178a52; background: #effaf4; border-color: #95deaa; }
.create-type-pill.active[data-tone="red"] { color: #cf1322; background: #fff1f0; border-color: #ffa39e; }
.create-type-pill.active[data-tone="orange"] { color: #d46b08; background: #fff7e6; border-color: #ffd591; }
.create-type-pill.active[data-tone="purple"] { color: #722ed1; background: #f9f0ff; border-color: #d3adf7; }
.create-type-pill.active[data-tone="gray"] { color: #595959; background: #f5f5f5; border-color: #d9d9d9; }
.create-priority-pill { gap: 7px; padding: 5px 12px 5px 6px; }
.create-priority-pill .xm-priority { width: 26px; height: 22px; font-size: 10px; border-radius: 6px; box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.create-priority-pill.active.p0 { color: #cf1322; background: #fff1f0; border-color: #ffa39e; }
.create-priority-pill.active.p1 { color: #d46b08; background: #fff7e6; border-color: #ffd591; }
.create-priority-pill.active.p2 { color: #1677ff; background: #eef6ff; border-color: #9ec5ff; }
.create-priority-pill.active.p3 { color: #178a52; background: #effaf4; border-color: #95deaa; }
.create-type-pill.active .create-type-ic { box-shadow: 0 0 0 2px rgba(255,255,255,.9), 0 0 0 3px currentColor; }
.create-type-ic { display: block; flex: 0 0 auto; width: 20px; height: 20px; font-style: normal; line-height: 0; border-radius: 0; background: transparent center/14px no-repeat; }
.ic-type-task { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2'/%3E%3Cpath d='M15 2H9a1 1 0 00-1 1v2a1 1 0 001 1h6a1 1 0 001-1V3a1 1 0 00-1-1z'/%3E%3Cpath d='M12 11h4M12 16h4M8 11h.01M8 16h.01'/%3E%3C/svg%3E"); }
.ic-type-req { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 22h4M12 2a7 7 0 00-4 12.7V17h8v-2.3A7 7 0 0012 2z'/%3E%3C/svg%3E"); }
.ic-type-bug { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2l1.88 1.88M14.12 2L16 4M9 7.13V6a3 3 0 116 0v1.13M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 014-4h4a4 4 0 014 4v3c0 3.3-2.7 6-6 6zM12 20v-9M6.53 9C4.6 8.8 3 7.1 3 5M6 13H2M3 21c0-2.1 1.7-3.9 3.8-4M20.97 5c0 2.1-1.6 3.8-3.5 4M22 13h-4M17.2 17c2.1.1 3.8 1.9 3.8 4'/%3E%3C/svg%3E"); }
.ic-type-opt { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 7L13.5 15.5 8.5 10.5 2 17'/%3E%3Cpath d='M16 7h6v6'/%3E%3C/svg%3E"); }
.ic-type-ops { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='6' rx='2'/%3E%3Crect x='2' y='15' width='20' height='6' rx='2'/%3E%3Cpath d='M6 6h.01M6 18h.01M18 6h.01M18 18h.01'/%3E%3C/svg%3E"); }
.ic-type-other { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%233f3f46' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M8 12h.01M12 12h.01M16 12h.01'/%3E%3C/svg%3E"); }
.create-unit-input { display: flex; align-items: stretch; border: 1px solid #dfe7f1; border-radius: 8px; overflow: hidden; background: #fff; }
.create-unit-input input { border: 0; border-radius: 0; }
.create-unit-input i { display: grid; place-items: center; padding: 0 12px; border-left: 1px solid #edf2f8; color: #8b98a8; background: #f8fafc; font-size: 12px; font-style: normal; }
.create-upload-compact { display: flex; flex-direction: row; align-items: center; gap: 10px; min-height: 0; padding: 10px 12px; text-align: left; place-items: unset; }
.create-upload-compact .create-upload-mini { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(180deg, #eef6ff, #dbeafe); position: relative; }
.create-upload-compact .create-upload-mini::after { position: absolute; inset: 0; background: radial-gradient(circle at 50% 40%, #1677ff 0 5px, transparent 5.5px), linear-gradient(#1677ff,#1677ff) 50% 58%/12px 2px no-repeat; content: ""; opacity: .8; border-radius: inherit; }
.create-upload-copy { display: grid; gap: 2px; min-width: 0; flex: 1; }
.create-upload-copy b { color: #1e3a5f; font-size: 12px; text-align: left; }
.create-upload-copy small { color: #8b98a8; font-size: 11px; text-align: left; line-height: 1.4; }
.create-upload-compact em { margin-left: auto; max-width: 38%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; color: #1677ff; }
.create-chevron { width: 8px; height: 8px; border-right: 2px solid #8b98a8; border-bottom: 2px solid #8b98a8; transform: rotate(45deg); transition: transform .2s; }
.create-more-toggle[aria-expanded="true"] .create-chevron { transform: rotate(-135deg); margin-top: 4px; }
.create-more-body { border-top: 1px solid #edf2f8; }
.create-people { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; align-items: flex-start; }
.create-people .xm-person-picker-host { width: fit-content; max-width: 100%; }
.create-people + .xm-link-btn { margin-top: 6px; }

/* 全局选人：头像卡片 + 加号 */
.xm-person-picker-host { position: relative; display: inline-flex; flex-direction: column; align-items: flex-start; max-width: 100%; }
.xm-person-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 36px; min-width: 0; width: fit-content; max-width: 100%; }
.xm-person-card { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; }
.xm-person-card.is-owner .xm-avatar { box-shadow: 0 0 0 2px rgba(22, 119, 255, .22); }
.xm-person-card.is-reviewer .xm-avatar { box-shadow: 0 0 0 2px rgba(250, 173, 20, .35); }
.xm-person-card .xm-person { display: inline-flex; align-items: center; gap: 6px; }
.xm-person-card .xm-avatar { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; font-size: 11px; line-height: 1; flex-shrink: 0; padding: 0; overflow: hidden; }
.xm-person-card .xm-person > span:last-child b { font-size: 13px; font-weight: 600; color: #13243a; }
.xm-person-card .xm-person small { display: none !important; }
.xm-person-remove { flex: 0 0 auto; border-radius: 50%; }
.xm-person-add { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 32px; height: 32px; padding: 0; border: 1px dashed #c5d0dc; border-radius: 50%; color: #8b98a8; background: #fff; font-size: 20px; line-height: 1; cursor: pointer; transition: border-color .15s ease, color .15s ease, background .15s ease; }
.xm-person-add span { display: block; margin-top: -1px; font-weight: 300; }
.xm-person-add[hidden] { display: none !important; }
.xm-person-add:hover { border-color: #1677ff; color: #1677ff; background: #f0f7ff; }
.xm-person-popover { position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; min-width: 240px; max-width: min(320px, 92vw); padding: 8px; border: 1px solid #dfe7f1; border-radius: 10px; background: #fff; box-shadow: 0 8px 24px rgba(15, 35, 70, .12); }
.create-task-drawer .xm-person-popover,
#createModal .xm-person-popover {
  z-index: 10150;
}
#createModal .xm-person-popover.is-floating,
.xm-person-popover.is-floating {
  position: fixed;
  top: auto;
  left: auto;
  z-index: 10150;
}
.xm-person-popover[hidden] { display: none !important; pointer-events: none !important; }
.xm-person-popover-search { width: 100%; padding: 7px 10px; border: 1px solid #dfe7f1; border-radius: 8px; font-size: 12px; }
.xm-person-popover-search:focus { outline: none; border-color: #91caff; box-shadow: 0 0 0 2px rgba(22, 119, 255, .12); }
.xm-person-popover-menu { position: static; margin-top: 6px; max-height: 220px; overflow: auto; }
.xm-person-popover .create-search-dropdown { position: static; left: auto; right: auto; top: auto; box-shadow: none; border: 0; border-radius: 0; padding: 0; }
.xm-person-field { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }

/* 紧凑附件：小按钮 + 拖拽 */
.compact-upload { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.compact-upload-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 32px; padding: 0 14px; border: 1px solid #d9e2ec; border-radius: 8px; color: #526173; background: #fff; font-size: 12px; cursor: pointer; transition: border-color .15s ease, color .15s ease, background .15s ease; white-space: nowrap; }
.compact-upload-btn:hover { border-color: #1677ff; color: #1677ff; background: #f0f7ff; }
.compact-upload.dragging .compact-upload-btn { border-color: #1677ff; color: #1677ff; background: #eef6ff; }
.compact-upload input[type="file"] { position: absolute; width: 0; height: 0; opacity: 0; pointer-events: none; }
.compact-upload-files { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.compact-upload-file { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; padding: 4px 8px; border: 1px solid #e3ebf5; border-radius: 999px; background: #f8fbff; color: #526173; font-size: 11px; line-height: 1.3; }
.compact-upload-file--thumb { padding: 0; border: 0; border-radius: 0; background: transparent; gap: 6px; }
.compact-upload-file em { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-style: normal; max-width: 180px; }
.compact-upload-file button { flex: 0 0 auto; border-radius: 50%; }
.compact-upload-file--thumb .ui-icon-btn-clear { margin-left: 2px; }
.compact-upload-hint { flex: 0 0 100%; margin: 0; color: #9aa6b7; font-size: 11px; line-height: 1.4; }
.compact-upload.is-large { display: grid; gap: 6px; place-items: center; min-height: 92px; padding: 16px; border: 1px dashed #bfd3ea; border-radius: 12px; color: #526173; background: #f8fbff; text-align: center; cursor: pointer; }
.compact-upload.is-large.dragging { border-color: #1677ff; background: #eef6ff; }
.compact-upload.is-large .compact-upload-btn { min-height: 36px; }
.compact-upload.is-large b { color: #1e3a5f; font-size: 13px; }
.compact-upload.is-large small { color: #7b8898; font-size: 11px; }
.create-remind-bar { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; padding: 6px 10px; border: 1px solid #e7edf5; border-radius: 10px; background: #f8fafc; }
.create-effect-hint { margin: 6px 0 0; color: #8b98a8; font-size: 11px; line-height: 1.5; }
.create-effect-seg { max-width: 360px; }
.create-remind-tag { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; color: #1677ff; background: #eef6ff; font-size: 12px; font-weight: var(--weight-strong); }
.create-remind-bar select { width: auto; min-width: 88px; flex: 1; padding: 6px 8px; border: 1px solid #e3eaf2; border-radius: 7px; font-size: 12px; }
.create-mention-host { position: relative; overflow: visible; }
.create-mention-picker { margin-top: 8px; }
.create-mention-picker-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.create-mention-picker-title {
  color: #526173;
  font-size: 12px;
  font-weight: 600;
}
.create-mention-close {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 4px;
  color: #8b98a8;
  background: transparent;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
.create-mention-close:hover {
  color: #13243a;
  background: #f0f4f9;
}
.td-drawer-mention-picker {
  margin-top: 8px;
  padding: 8px 10px;
  border: 1px solid #e8edf3;
  border-radius: 8px;
  background: #fafbfc;
}
#createMentionPicker.is-floating,
#createRelatedTaskPicker.is-floating {
  margin-top: 0;
  padding: 8px;
  border: 1px solid #dfe7f1;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 35, 70, .16);
  z-index: 10120;
}
body.rich-editor-fs-lock #createMentionPicker.is-floating,
body.rich-editor-fs-lock #createRelatedTaskPicker.is-floating {
  z-index: 10150;
}
#createMentionPicker.is-floating .create-search-dropdown,
#createRelatedTaskPicker.is-floating .create-search-dropdown {
  position: static;
  left: auto;
  right: auto;
  top: auto;
  margin-top: 6px;
  max-height: 240px;
  box-shadow: none;
  border: 1px solid #e8edf3;
}
.create-mention-picker .create-search-wrap { position: relative; }
.create-search-dropdown { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 8; display: grid; gap: 0; max-height: 200px; overflow: auto; border: 1px solid #dbe7f6; border-radius: 10px; background: #fff; box-shadow: 0 12px 28px rgba(14,34,64,.12); }
.create-search-dropdown[hidden] { display: none !important; }
.create-search-wrap { position: relative; }
.create-search-wrap input[type="search"] { width: 100%; padding: 8px 10px; border: 1px solid #e3eaf2; border-radius: 8px; font-size: 13px; box-sizing: border-box; }
.create-search-item { display: grid; grid-template-columns: 30px 1fr; gap: 8px; align-items: center; width: 100%; padding: 8px 10px; border: 0; border-top: 1px solid #f0f4f9; color: #13243a; background: #fff; text-align: left; }
.create-search-item:first-child { border-top: 0; }
.create-search-item:hover, .create-search-item.active { background: #f5f9ff; }
.create-search-item .xm-avatar { display: grid; place-items: center; width: 28px; height: 28px; font-size: 12px; line-height: 1; padding: 0; overflow: hidden; }
.create-search-item b { display: block; font-size: 13px; }
.create-search-item small { display: block; color: #8b98a8; font-size: 11px; }
.create-search-item.is-resting { background: #fffaf3; }
.create-search-item.is-resting:hover, .create-search-item.is-resting.active { background: #fff4e6; }
.member-pick-rest { display: block; margin-top: 1px; color: #c9770a; font-size: 11px; font-style: normal; font-weight: 600; }
.member-pick-inactive { display: block; margin-top: 1px; color: #8b98a8; font-size: 11px; font-style: normal; font-weight: 600; }
.create-search-item.is-inactive { opacity: 0.82; }
.create-search-empty { margin: 0; padding: 12px; color: #8b98a8; font-size: 12px; text-align: center; }
.create-project-field { align-items: flex-start; }
.create-project-field select.is-locked { pointer-events: none; background: #f5f8fc; color: #526173; cursor: default; }
.create-project-select-wrap { flex: 1; min-width: 0; display: grid; gap: 4px; }
.create-project-select-wrap select:disabled { color: #526173; background: #f5f8fc; cursor: default; }
.create-project-hint { margin: 0; color: #8b98a8; font-size: 11px; line-height: 1.45; }
.create-cc-modes { display: grid; gap: 8px; }
.create-cc-mode-label { margin: 0; color: #526173; font-size: 12px; font-weight: 600; }
.create-cc-mode-label small { color: #9aa8b8; font-weight: 500; }
.create-cc-mode-bar { display: flex; flex-wrap: wrap; gap: 6px; }
.create-cc-mode-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid #dbe7f6; border-radius: 999px; color: #526173; background: #fff; font-size: 12px; font-weight: 600; cursor: pointer; }
.create-cc-mode-pill em { font-style: normal; color: #9aa8b8; font-size: 11px; font-weight: 500; }
.create-cc-mode-pill.active { color: #1677ff; border-color: #9ec5ff; background: #eef6ff; box-shadow: 0 2px 8px rgba(22,119,255,.08); }
.create-cc-mode-pill:disabled { opacity: .45; cursor: not-allowed; }
.create-dept-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border: 1px dashed #9ec5ff; border-radius: 999px; color: #1677ff; background: #f2f8ff; font-size: 12px; font-weight: 600; }
.create-dept-chip em { font-style: normal; color: #6d8eb8; font-size: 11px; }
.create-person-chip.is-reviewer { border-color: #ffe7ba; background: #fffbe6; }
.create-chip-tag { font-style: normal; font-size: 10px; color: #d46b08; font-weight: var(--weight-strong); }
.dept-perm-row { align-items: flex-start; }
.dept-perm-row span small { display: block; color: #9aa8b8; font-size: 11px; }
.create-member-picker { display: grid; gap: 8px; }
.create-member-picker > select[data-create-cc-select] { width: 100%; }
.create-cc-hint { margin: 0; color: #8b98a8; font-size: 11px; line-height: 1.45; }
.create-collab-stack { display: grid; gap: 10px; }
.create-cc-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.create-cc-quick-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 5px 10px 5px 8px;
  border: 1px solid #e3ebf5;
  border-radius: 999px;
  background: #fff;
  cursor: pointer;
  user-select: none;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.create-cc-quick-item:hover {
  border-color: #c8ddf8;
  background: #fff;
}
.create-cc-quick-item.create-cc-person-chip,
#createSuperiorRow.create-cc-person-chip {
  position: relative;
}
#createSuperiorRow.create-cc-person-chip[data-tip]:hover::after {
  content: attr(data-tip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 6px);
  z-index: 20;
  padding: 5px 9px;
  border-radius: 6px;
  color: #13243a;
  background: #fff;
  border: 1px solid #dbe7f6;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
  white-space: nowrap;
  pointer-events: none;
  transform: translateX(-50%);
  box-shadow: 0 6px 18px rgba(15, 35, 70, .12);
}
.create-cc-quick-item:has(input:checked) {
  border-color: #91caff;
  background: #eef6ff;
  box-shadow: 0 0 0 2px rgba(22, 119, 255, .08);
}
.create-cc-quick-item.is-dept:has(input:checked) {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}
.create-cc-quick-item.is-empty-dept {
  opacity: .72;
}
.create-cc-folder-ic {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  background: transparent center/20px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7h6l2 3h10v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z'/%3E%3C/svg%3E");
}
.create-cc-quick-item.is-dept:has(input:checked) .create-cc-folder-ic {
  box-shadow: none;
}
.create-cc-quick-item.create-cc-person-chip,
.create-cc-quick-item.is-dept {
  gap: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  cursor: default;
}
.create-cc-quick-item.create-cc-person-chip:hover,
.create-cc-quick-item.is-dept:hover {
  border: 0;
  background: transparent;
  box-shadow: none;
}
.create-cc-quick-item.is-dept {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}
.create-cc-quick-item.is-dept:has(input:checked) {
  background: transparent;
  box-shadow: none;
}
.create-cc-quick-item.is-dept .create-cc-quick-mark {
  display: none;
}
.create-cc-quick-item.create-cc-person-chip .xm-person-card {
  cursor: pointer;
}
.create-cc-quick-item.create-cc-person-chip .xm-person-card:not(.is-active) {
  opacity: .62;
}
.create-cc-quick-item.create-cc-person-chip .xm-person-card:not(.is-active):hover {
  opacity: 1;
}
.create-cc-quick-item.create-cc-person-chip .xm-person-card.is-active .xm-avatar {
  box-shadow: 0 0 0 2px rgba(22, 119, 255, .22);
}
#createModal .xm-person-card .xm-person-remove,
#createModal .create-cc-dept-dismiss {
  opacity: 1;
  width: 18px;
  min-width: 18px;
  pointer-events: auto;
}
#createCcDeptRow {
  position: relative;
  padding-right: 30px;
}
#createCcDeptRow .create-cc-dept-dismiss {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  flex: 0 0 auto;
}
.create-search-item-dept .create-dept-avatar,
.create-search-item-role .create-role-avatar {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-size: 12px;
  font-weight: var(--weight-strong);
}
.create-search-item-dept .create-dept-avatar {
  color: #1677ff;
  background: #eef6ff;
}
.create-search-item-role .create-role-avatar {
  color: #722ed1;
  background: #f9f0ff;
}
.xm-person-popover.has-modes .xm-person-popover-tabs {
  margin-bottom: 8px;
}
.xm-person-card .create-dept-avatar {
  display: grid;
  place-items: center;
  background: #eef4ff;
  color: #1677ff;
  font-size: 12px;
  font-weight: var(--weight-strong);
  line-height: 1;
  padding: 0;
  overflow: hidden;
}
.create-cc-add-slot { display: inline-flex; align-items: center; }
.create-cc-add-slot .xm-person-picker-host { display: inline-flex; }
.create-cc-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  min-height: 0;
}
.create-cc-chips:empty { display: none; }
.create-cc-quick-item input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
}
.create-cc-quick-mark {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  border: 1.5px solid #cfd8e3;
  border-radius: 4px;
  background: #fff;
  transition: border-color .15s ease, background .15s ease;
}
.create-cc-quick-item:has(input:checked) .create-cc-quick-mark {
  border-color: #1677ff;
  background: #1677ff;
  box-shadow: inset 0 0 0 2px #fff;
}
.create-cc-quick-item.is-dept:has(input:checked) .create-cc-quick-mark {
  border-color: #722ed1;
  background: #722ed1;
}
.create-cc-quick-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
  min-width: 0;
}
.create-cc-quick-text b {
  color: #13243a;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
}
.create-cc-quick-text small {
  color: #8b98a8;
  font-size: 11px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 160px;
}
.create-cc-quick-item.is-dept .create-cc-quick-text b {
  font-size: 13px;
  font-weight: 600;
}
.create-cc-quick-item.is-dept .create-cc-quick-text small {
  font-size: 11px;
}
.create-subtask-panel-wrap:not(.is-expanded) .create-subtask-panel { display: none !important; }
.create-subtask-panel-wrap.is-expanded .create-subtask-panel { display: block !important; }
.create-subtask-add-more { justify-self: start; margin-top: 4px; }
.create-subtask-panel-wrap .create-subtask-panel { padding: 0 14px 12px; }
.create-person-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px 5px 5px; border: 1px solid #e3ebf5; border-radius: 999px; background: #fff; }
.create-person-chip .xm-person { gap: 6px; }
.create-person-chip .xm-avatar { display: grid; place-items: center; width: 26px; height: 26px; font-size: 12px; line-height: 1; padding: 0; overflow: hidden; }
.create-person-chip b { font-size: 12px; }
.create-person-chip button, .create-person-chip .create-chip-remove { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 22px; height: 22px; min-width: 22px; min-height: 22px; padding: 0; border: 0; border-radius: 50%; color: #8b98a8; background: transparent; font-size: 15px; line-height: 1; cursor: pointer; pointer-events: auto; }
.create-person-chip button:hover, .create-person-chip .create-chip-remove:hover { color: #cf1322; background: #fff1f0; }
.create-people-empty { margin: 0; color: #9aa8b8; font-size: 12px; line-height: 1.5; }
.create-person-chip.is-owner { border-color: #cfe2ff; background: #fff; }
.create-subtask-panel { transition: min-height .2s ease; }
.create-subtask-empty { display: grid; place-items: center; gap: 4px; min-height: 72px; padding: 12px; border: 1px dashed #d6e5f8; border-radius: 10px; color: #8b98a8; background: #f8fbff; text-align: center; font-size: 11px; line-height: 1.5; }
.create-subtask-empty b { display: block; color: #526173; font-size: 12px; font-weight: var(--weight-strong); }
.create-subtask-empty .illus { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(135deg, #e8f3ff, #f0f7ff); box-shadow: inset 0 0 0 1px #d6e8ff; }
.create-subtask-panel.has-items .create-subtask-empty { display: none; }
.create-subtask-list { display: grid; gap: 8px; }
.create-subtask-panel:not(.has-items) .create-subtask-list { display: none; }
.create-subtask-card {
  display: grid;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(15, 35, 62, .05);
  animation: createSubtaskIn .22s ease;
}
.create-subtask-card-head {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}
.create-subtask-card-head input {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #dfe7f1;
  border-radius: 8px;
  color: #13243a;
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  box-sizing: border-box;
}
.create-subtask-card-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
}
.create-subtask-field {
  display: grid;
  gap: 5px;
  min-width: 0;
}
.create-subtask-field > span {
  color: #6f7f92;
  font-size: 11px;
  font-weight: var(--weight-strong);
}
.create-subtask-field input[type="datetime-local"] {
  width: 100%;
  padding: 7px 9px;
  border: 1px solid #dfe7f1;
  border-radius: 7px;
  font-size: 12px;
  box-sizing: border-box;
}
.create-subtask-card .xm-person-row { min-height: 34px; }
.create-subtask-card .xm-person-add { width: 34px; height: 34px; font-size: 20px; }
.create-subtask-item { display: grid; grid-template-columns: 24px minmax(0, 1fr) minmax(120px, auto) auto; gap: 8px; align-items: center; padding: 10px 12px; border: 1px solid #e3ebf5; border-radius: 10px; background: #fbfdff; animation: createSubtaskIn .22s ease; }
.create-subtask-item .xm-person-row { min-height: 32px; }
.create-subtask-item .xm-person-add { width: 32px; height: 32px; font-size: 20px; }
@keyframes createSubtaskIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
.create-subtask-idx { color: #8b98a8; font-size: 12px; font-weight: var(--weight-display); text-align: center; }
.create-subtask-item input, .create-subtask-item select { padding: 7px 9px; border: 1px solid #dfe7f1; border-radius: 7px; font-size: 12px; }
.create-subtask-remove { padding: 6px 10px; border: 0; border-radius: 7px; color: #8b98a8; background: transparent; font-size: 12px; }
.create-subtask-remove:hover { color: #cf1322; background: #fff1f0; }
.create-check-row, .create-remind-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.create-check-row label { display: flex; gap: 6px; align-items: center; color: #526173; font-size: 13px; }
.create-remind-row select { flex: 1; min-width: 100px; }
.create-picker-menu { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.create-picker-menu button { padding: 6px 10px; border: 1px solid #dbe7f6; border-radius: 16px; color: #1677ff; background: #fff; font-size: 12px; }
.create-picker-menu button:hover { background: #eef6ff; }
.management-modal { width: var(--panel-width); max-width: min(var(--panel-width), 94vw); }
.management-modal--member-edit.show {
  display: flex;
  flex-direction: column;
  width: min(600px, 94vw);
  max-height: min(88vh, 720px);
}
.management-modal--member-edit header {
  flex-shrink: 0;
  padding: 14px 18px;
}
.management-modal--member-edit header h2 { font-size: 17px; }
.management-modal--member-edit header .panel-kicker { color: #8b98a8; font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.management-modal--member-edit .management-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
}
.management-modal--member-edit footer {
  flex-shrink: 0;
  padding: 10px 18px 12px;
}
.management-modal--member-edit .management-body .member-edit-form { width: 100%; }
.management-modal--member-edit .mef-section--profile { padding: 12px 16px 10px; }
.management-modal--member-edit .mef-section--org { padding: 10px 16px; }
.management-modal--member-edit .mef-section--account { padding: 10px 16px 12px; }
.management-modal--member-edit .mef-section-title {
  padding: 8px 16px 6px;
  font-size: 12px;
  font-weight: var(--weight-strong);
  color: #607086;
}
.management-modal--member-edit .mef-head-layout {
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 10px 14px;
}
.management-modal--member-edit .mef-avatar-col { gap: 6px; align-items: stretch; }
.management-modal--member-edit .mef-avatar {
  width: 56px;
  height: 56px;
  font-size: 22px;
  border-radius: 10px;
}
.management-modal--member-edit .mef-avatar-upload {
  height: 28px;
  padding: 0 6px;
  font-size: 11px;
}
.management-modal--member-edit .mef-field,
.management-modal--member-edit .mef-row {
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 8px 10px;
  min-height: 40px;
  padding: 7px 10px;
}
.management-modal--member-edit .mef-label { font-size: 12px; }
.management-modal--member-edit .mef-input {
  height: 32px;
  padding: 0 10px;
  font-size: 12px;
}
.management-modal--member-edit .mef-section--org .member-dept-field { padding: 8px 10px; }
.management-modal--member-edit .mef-radio-group { gap: 14px; }
.management-modal--member-edit .mef-radio { font-size: 12px; }
.management-modal--member-edit .mef-btn-outline {
  height: 28px;
  padding: 0 12px;
  font-size: 12px;
}
#managementModal.management-modal--project-form {
  top: 0;
  right: 0;
  left: auto;
  bottom: 0;
  width: min(760px, 54vw);
  max-width: min(760px, 96vw);
  height: 100vh;
  max-height: 100vh;
  transform: none;
  border-radius: 0;
  border-left: 1px solid var(--line);
  box-shadow: -12px 0 40px rgba(5, 28, 54, .14);
  display: none;
  flex-direction: column;
}
#managementModal.management-modal--project-form.show {
  display: flex;
}
#managementModal.management-modal--project-form header {
  flex-shrink: 0;
  padding: 16px 20px;
}
#managementModal.management-modal--project-form footer {
  flex-shrink: 0;
  padding: 12px 20px 16px;
}
#managementModal.management-modal--project-form .management-body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.project-form-shell {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  width: 100%;
}
.project-form-tabs {
  display: flex;
  flex-shrink: 0;
  gap: 2px;
  padding: 0 12px;
  border-bottom: 1px solid #e8eef5;
  background: #fafbfc;
  overflow-x: auto;
}
.project-form-tab {
  flex-shrink: 0;
  height: 44px;
  padding: 0 14px;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  background: transparent;
  color: #607086;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.project-form-tab:hover { color: #1677ff; }
.project-form-tab.active {
  color: #1677ff;
  border-bottom-color: #1677ff;
  background: #fff;
}
.project-form-panels {
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.project-form-panel {
  height: 100%;
  overflow-y: auto;
  padding: 16px 20px 24px;
}
.project-form-intro {
  margin: 0 0 12px;
  line-height: 1.55;
}
.project-form-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-bottom: 14px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #f7f9fc;
  font-size: 12px;
  color: #607086;
}
.project-form-stats span {
  font-weight: 600;
  color: #2f4057;
}
.project-form-grid {
  gap: 12px 14px;
}
.project-snippet-section--embedded {
  padding: 0;
  margin: 0;
  border: none;
  box-shadow: none;
}
@media (max-width: 900px) {
  #managementModal.management-modal--project-form {
    width: 100vw;
    max-width: 100vw;
  }
}
.management-modal--member-edit .mef-roster-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding: 2px 16px 10px;
}
.management-modal--member-edit .mef-roster-card {
  gap: 8px;
  min-height: 0;
  padding: 8px 10px;
  border-radius: 6px;
}
.management-modal--member-edit .mef-roster-card-main b { font-size: 12px; }
.management-modal--member-edit .mef-roster-card-main small { font-size: 10px; }
.management-modal--member-edit .mef-roster-empty { padding: 12px 16px; font-size: 12px; }
@media (max-width: 560px) {
  .management-modal--member-edit .mef-roster-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .management-modal--member-edit .mef-head-layout { grid-template-columns: 1fr; }
  .management-modal--member-edit .mef-avatar-col { flex-direction: row; align-items: center; }
}
.management-modal--help { width: min(1180px, 96vw); max-width: min(1180px, 96vw); }
.management-modal--help.show {
  display: flex;
  flex-direction: column;
  max-height: min(90vh, 880px);
}
.management-modal--help header { flex-shrink: 0; }
.management-modal--help .management-body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow: auto;
  padding: 14px 20px 16px;
}
.management-modal--help footer { flex-shrink: 0; }
.help-center-intro h4 { margin: 0 0 6px; }
.help-center-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.help-center-layout { display: grid; grid-template-columns: 172px minmax(0, 1fr); gap: 16px; margin-top: 12px; align-items: start; }
.help-center-nav {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: min(76vh, 760px);
  overflow: auto;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfe;
}
.help-nav-item {
  padding: 8px 10px;
  border: 0;
  border-radius: 6px;
  color: #4a5d73;
  background: transparent;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}
.help-nav-item:hover,
.help-nav-item.active { color: #1677ff; background: #eef6ff; font-weight: 600; }
.help-center-body { display: flex; flex-direction: column; gap: 10px; }
.help-guide-section { scroll-margin-top: 12px; }
.help-guide-head h4 { margin: 0 0 4px; font-size: 14px; color: #17263a; }
.help-guide-head p { margin: 0; }
.help-steps { margin: 10px 0 0; padding-left: 1.2em; color: #334155; font-size: 13px; line-height: 1.65; }
.help-steps li + li { margin-top: 6px; }
.help-tips { margin: 10px 0 0; padding: 10px 12px 10px 28px; border-radius: 8px; background: #f0f7ff; color: #3d5a80; font-size: 12px; line-height: 1.55; }
.help-tips li + li { margin-top: 4px; }
.help-guide-section--test { border: 1px solid #ffd6d6; background: linear-gradient(180deg, #fffafa 0%, #fff 48px); }
.help-test-body { display: flex; flex-direction: column; gap: 14px; margin-top: 12px; }
.help-test-group { padding: 12px 14px; border: 1px solid #e8eef6; border-radius: 10px; background: #fbfcfe; }
.help-test-group-title { margin: 0 0 10px; color: #17263a; font-size: 13px; font-weight: var(--weight-strong); }
.help-test-case { padding: 10px 0; border-top: 1px dashed #e2e8f0; }
.help-test-group .help-test-case:first-of-type { padding-top: 0; border-top: 0; }
.help-test-case h5 { margin: 0 0 6px; color: #334155; font-size: 13px; font-weight: 600; }
.help-test-expected { margin: 8px 0 0; padding: 8px 10px; border-radius: 8px; background: #edfdf3; color: #1f5f3d; font-size: 12px; line-height: 1.55; }
.help-test-note { margin: 6px 0 0; color: #8a6a3a; font-size: 12px; line-height: 1.5; }
.help-steps strong { color: #17263a; }
.legal-doc-layer {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
}
.legal-doc-layer.show { display: flex; }
.legal-doc-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(3, 17, 32, .35);
  cursor: pointer;
}
.legal-doc-layer .legal-doc-modal {
  position: relative;
  top: auto;
  left: auto;
  transform: none;
  z-index: 1;
  width: min(760px, 94vw);
  max-width: min(760px, 94vw);
  max-height: min(88vh, 820px);
  display: flex;
  flex-direction: column;
}
.legal-doc-modal header { flex-shrink: 0; }
.legal-doc-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 16px 22px;
  font-size: 13px;
  line-height: 1.75;
  color: #334155;
}
.legal-doc-body h3 { margin: 18px 0 8px; font-size: 14px; color: #17263a; }
.legal-doc-body h3:first-of-type { margin-top: 12px; }
.legal-doc-body p { margin: 0 0 10px; }
.legal-doc-body ul { margin: 0 0 10px; padding-left: 1.3em; }
.legal-doc-body li + li { margin-top: 4px; }
.legal-doc-updated { color: #8b98a8; font-size: 12px; }
.legal-doc-modal footer { flex-shrink: 0; display: flex; justify-content: flex-end; padding: 12px 20px 14px; border-top: 1px solid #edf2f8; }
.help-tips .secondary-button { margin-top: 4px; margin-right: 6px; }
.management-modal--profile { width: var(--panel-width); max-width: min(var(--panel-width), 94vw); }
.management-modal--profile.show {
  display: flex;
  flex-direction: column;
  max-height: min(88vh, 760px);
}
.management-modal--profile header {
  flex-shrink: 0;
  align-items: center;
  min-height: 96px;
  padding: 24px 24px 20px;
}
.management-modal--profile header .panel-kicker {
  margin: 0 0 8px;
  color: #8b98a8;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.2px;
  line-height: 1.3;
}
.management-modal--profile header h2 {
  margin: 0;
  font-size: 20px;
  line-height: 1.35;
}
.management-modal--profile .management-body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 14px 20px 16px;
}
.management-modal--profile footer {
  flex-shrink: 0;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px 20px 14px;
  border-top: 1px solid #edf2f8;
}
.profile-center { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.profile-hero {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  padding: 16px 18px;
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: linear-gradient(180deg, #f8fbff 0%, #f3f7fc 100%);
}
.profile-hero-meta h3,
.profile-hero-meta p { margin: 0; }
.profile-hero-meta h3 { font-size: 18px; line-height: 1.25; color: #13243a; }
.profile-hero-meta > p { margin-top: 4px; color: #6f7f92; font-size: 12px; }
.profile-hero-meta .profile-stat-row { margin-top: 12px; }
.profile-avatar,
.profile-avatar-trigger .profile-avatar {
  display: grid;
  place-items: center;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(145deg, #83c1eb, #17578c);
  font-size: 30px;
  font-weight: var(--weight-strong);
  line-height: 1;
  flex-shrink: 0;
}
.profile-avatar-trigger {
  position: relative;
  flex-shrink: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  overflow: hidden;
}
.profile-avatar-trigger .profile-avatar,
.profile-avatar-trigger img.profile-avatar.avatar-img {
  display: grid;
  place-items: center;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  object-fit: cover;
  text-align: center;
  line-height: 1;
}
.profile-avatar-mask {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: rgba(16, 32, 51, 0.55);
  font-size: 11px;
  font-weight: 600;
  opacity: 0;
  transition: opacity 0.15s ease;
  pointer-events: none;
}
.profile-avatar-camera {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: rgba(16, 32, 51, 0.38);
  pointer-events: none;
}
.profile-avatar-camera svg { filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35)); }
.profile-avatar-trigger:hover .profile-avatar-camera,
.profile-avatar-trigger:focus-visible .profile-avatar-camera { background: rgba(16, 32, 51, 0.52); }
.profile-avatar-trigger:hover .profile-avatar-mask,
.profile-avatar-trigger:focus-visible .profile-avatar-mask { opacity: 1; }
.profile-form { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.profile-form .mef-divider { margin: 2px 0 12px; }
.profile-fields-grid {
  margin: 0;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.management-modal--profile .profile-fields-grid .mef-field {
  grid-template-columns: 72px minmax(0, 1fr);
  min-height: 48px;
  padding: 10px 14px;
}
.management-modal--profile .profile-fields-grid .mef-label {
  text-align: right;
  white-space: nowrap;
}
.management-modal--profile .profile-fields-grid .mef-control,
.management-modal--profile .profile-fields-grid .mef-input {
  min-width: 0;
  width: 100%;
}
.profile-section { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.profile-section-head { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.profile-section-head h4 {
  margin: 0;
  font-size: 13px;
  font-weight: var(--weight-strong);
  color: #3d4f63;
}
.profile-section-head p {
  margin: 4px 0 0;
  font-size: 12px;
  line-height: 1.55;
  color: #7a8b9c;
}
.profile-password-head {
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.profile-password-head .secondary-button {
  flex-shrink: 0;
  height: 32px;
  padding: 0 14px;
  font-size: 12px;
}
.profile-password-modal {
  z-index: 63;
  width: min(420px, 94vw);
  padding: 0;
  overflow: hidden;
}
.profile-password-modal.show { z-index: 63; }
.profile-password-modal-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 18px 20px 8px;
}
.profile-password-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.profile-password-field > span {
  font-size: 12px;
  color: #607086;
}
.profile-password-field .mef-input {
  width: 100%;
  min-height: 40px;
}
.management-modal--profile .profile-hero {
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 12px;
  padding: 12px 14px;
}
.management-modal--profile .profile-avatar,
.management-modal--profile .profile-avatar-trigger .profile-avatar,
.management-modal--profile .profile-avatar-trigger img.profile-avatar.avatar-img {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  font-size: 26px;
  text-align: center;
  line-height: 1;
}
.management-modal--profile .profile-avatar-trigger {
  width: 72px;
  height: 72px;
}
.management-modal--profile .profile-hero-meta h3 { font-size: 16px; }
.management-modal--profile .profile-stat-card { padding: 8px 10px; }
.management-modal--profile .profile-stat-card b { font-size: 18px; }
.management-modal--profile .profile-password-grid {
  grid-template-columns: 1fr;
}
.management-modal--profile .profile-password-grid .mef-field {
  border-right: 0;
  border-bottom: 1px solid #f3f5f8;
}
.management-modal--profile .profile-password-grid .mef-field:last-child { border-bottom: 0; }
.profile-password-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border: 1px solid #edf2f8;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}
.profile-password-grid .mef-field {
  margin: 0;
  border-right: 1px solid #f3f5f8;
  border-bottom: 0;
}
.profile-password-grid .mef-field:last-child { border-right: 0; }
.profile-account-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.profile-account-actions .danger-button {
  min-width: 108px;
  height: 34px;
  padding: 0 16px;
  font-size: 13px;
}
.mef-section--profile { margin: 0; }
.profile-wecom-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.profile-wecom-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px 12px;
  padding: 10px 12px;
  border: 1px solid #e6edf5;
  border-radius: 10px;
  background: #fafcff;
}
.profile-wecom-row.is-bound {
  grid-template-columns: 36px minmax(0, 1fr) auto;
  border-color: #cfe8d8;
  background: #f4fbf6;
}
.profile-wecom-info { min-width: 0; }
.profile-wecom-info b {
  display: block;
  font-size: 13px;
  color: #243447;
  line-height: 1.35;
}
.profile-wecom-info small {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  line-height: 1.45;
  color: #7a8b9c;
  word-break: break-word;
}
.profile-wecom-actions {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: flex-end;
}
.profile-wecom-actions .primary-button,
.profile-wecom-actions .secondary-button {
  min-width: 84px;
  height: 32px;
  padding: 0 12px;
  font-size: 12px;
  white-space: nowrap;
}
.profile-wecom-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 36px;
  background: #e8f0f8;
}
.profile-wecom-avatar--placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: var(--weight-strong);
  color: #4a6b8a;
}
.login-wecom-section {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed #dbe5ef;
}
.login-wecom-section.is-wecom-env {
  padding: 12px;
  border: 1px solid #d6e8ff;
  border-radius: 12px;
  background: #f5faff;
}
.login-wecom-auto {
  margin: 0 0 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #eef6ff;
  color: #3d6ea8;
  font-size: 12px;
  line-height: 1.5;
}
.login-wecom-picker {
  display: grid;
  gap: 6px;
  margin-bottom: 10px;
  font-size: 12px;
  color: #526173;
  font-weight: 600;
}
.login-wecom-picker select {
  width: 100%;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid #dfe7f2;
  border-radius: 10px;
  font-size: 13px;
  color: #2f4057;
  background: #fafbfd;
}
.login-wecom-label {
  margin: 0 0 8px;
  font-size: 12px;
  color: #6b7c90;
}
.login-wecom-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.login-wecom-btn {
  width: 100%;
  justify-content: center;
}
.login-wecom-foot {
  margin: 8px 0 0;
  font-size: 11px;
  line-height: 1.5;
  color: #8a9aab;
}
.avatar-img {
  object-fit: cover;
  flex-shrink: 0;
  box-sizing: border-box;
}
/* 文字/首字母头像：统一 grid 居中，避免被父级 span 规则或 CJK 字体度量挤偏 */
.avatar:not(.avatar-img),
.org-avatar,
.td-person-av,
.td-cc-avatar,
.dy-comment-av,
.wac-at-avatar,
.task-drawer-subtask-rail-av,
.mef-avatar,
.profile-avatar,
.create-dept-avatar,
.create-role-avatar,
.department-avatar,
.xm-response-row .xm-avatar,
.xm-activity-row .xm-avatar {
  display: grid;
  place-items: center;
  line-height: 1;
  padding: 0;
  overflow: hidden;
  text-align: center;
  box-sizing: border-box;
}
/* 图片头像沿用各场景 class 的固定宽高，勿用 100% 撑满父级（否则无尺寸父级会导致图片超大） */
img.xm-avatar.avatar-img,
img.avatar.avatar-img,
img.td-person-av.avatar-img,
img.td-cc-avatar.avatar-img,
img.org-avatar-img,
img.mef-avatar.avatar-img,
img.profile-avatar.avatar-img,
img.wac-at-avatar.avatar-img {
  display: block;
  padding: 0;
  background: none;
}
img.td-comment-reply-av.avatar-img {
  width: 26px;
  height: 26px;
}
.task-owner-chip img.xm-avatar.avatar-img {
  width: 22px;
  height: 22px;
  object-fit: cover;
}
img.dy-comment-av.avatar-img,
img.dy-compose-av.avatar-img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
}
img.dy-comment-av-sm.avatar-img {
  width: 28px;
  height: 28px;
}
img.xm-avatar.avatar-img,
img.avatar.avatar-img,
img.td-person-av.avatar-img,
img.td-cc-avatar.avatar-img,
img.org-avatar-img,
img.profile-avatar.avatar-img,
img.wac-at-avatar.avatar-img { border-radius: 50%; }
img.mef-avatar.avatar-img { border-radius: inherit; }
.org-avatar-img.org-profile-avatar { width: 56px; height: 56px; }
.xm-project-row-head,
.dept-project-row-main,
.eff-project-cell { display: inline-flex; align-items: center; gap: 5px; min-width: 0; }
.xm-project-row-head > div,
.dept-project-row-main > span:last-child { min-width: 0; }
.project-logo-slot {
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  box-sizing: border-box;
  margin: 0;
  vertical-align: middle;
  overflow: hidden;
  line-height: 1;
}
img.project-logo-slot {
  object-fit: cover;
  border: 1px solid #e8eef5;
  background: #fff;
}
span.project-logo-slot.hub-pick-icon {
  background: #f2f6fb;
  color: #2f4057;
  font-weight: var(--weight-display);
  border: 1px solid #e8eef5;
}
.project-logo-slot.xm-project-logo,
.xm-follow-projects .project-logo-slot {
  width: 28px;
  height: 28px;
  min-width: 28px;
  min-height: 28px;
  border-radius: 50%;
  font-size: 12px;
}
.project-logo-slot.task-project-logo,
.task-project-cell .project-logo-slot {
  width: 22px;
  height: 22px;
  min-width: 22px;
  min-height: 22px;
  border-radius: 50%;
  font-size: 11px;
}
.project-logo-slot.eff-project-logo,
.project-logo-slot.dept-project-logo {
  width: 26px;
  height: 26px;
  min-width: 26px;
  min-height: 26px;
  border-radius: 50%;
  font-size: 11px;
}
.project-hub-pick .project-logo-slot { width: 36px; height: 36px; min-width: 36px; min-height: 36px; border-radius: 10px; font-size: 15px; }
.project-hub-pick .project-logo-slot.project-logo-thumb { border-radius: 10px; }
.mef-avatar-upload:not(:disabled) { cursor: pointer; color: #1677ff; border-color: #b7d4ff; }
.avatar-guide-modal {
  z-index: 62;
  width: min(520px, 94vw);
  padding: 0;
  overflow: hidden;
}
.avatar-guide-modal.show { z-index: 62; }
body.avatar-guide-open .overlay.show { pointer-events: none; }
body.avatar-guide-open .avatar-guide-modal.show { pointer-events: auto; }
.avatar-guide-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px 14px;
  border-bottom: 1px solid #eef2f6;
}
.avatar-guide-head .panel-kicker { margin: 0 0 4px; }
.avatar-guide-head h2 { margin: 0; font-size: 18px; color: #102033; }
.avatar-guide-body { padding: 16px 20px 18px; }
.avatar-guide-lead {
  margin: 0 0 14px;
  font-size: 13px;
  line-height: 1.65;
  color: #3d4f63;
}
.avatar-guide-rules {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 12px;
}
.avatar-guide-rule {
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid #e8eef5;
  font-size: 12px;
  line-height: 1.55;
  color: #4a5c70;
}
.avatar-guide-rule b {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
}
.avatar-guide-rule ul { margin: 0; padding-left: 18px; }
.avatar-guide-rule li + li { margin-top: 4px; }
.avatar-guide-rule.is-ok {
  background: #f3faf5;
  border-color: #cfe8d6;
}
.avatar-guide-rule.is-ok b { color: #1a7a3a; }
.avatar-guide-rule.is-bad {
  background: #fff8f5;
  border-color: #f5dccf;
}
.avatar-guide-rule.is-bad b { color: #b45309; }
.avatar-guide-footnote {
  margin: 0;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.55;
  color: #607086;
  background: #f5f8fc;
}
.avatar-guide-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 20px 16px;
  border-top: 1px solid #eef2f6;
}
.avatar-guide-never {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #607086;
  cursor: pointer;
}
.avatar-guide-footer-actions { display: flex; gap: 10px; }
.profile-avatar-tip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px 12px;
  margin-bottom: 0;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #cfe0ff;
  background: #f0f6ff;
  font-size: 12px;
  line-height: 1.55;
  color: #3d4f63;
}
.profile-avatar-tip b { display: block; margin-bottom: 2px; font-size: 13px; color: #135ab3; }
.profile-avatar-tip .primary-button {
  height: 32px;
  padding: 0 14px;
  font-size: 12px;
  white-space: nowrap;
}
@media (max-width: 520px) {
  .avatar-guide-rules { grid-template-columns: 1fr; }
  .avatar-guide-footer { flex-direction: column; align-items: stretch; }
  .avatar-guide-footer-actions { justify-content: flex-end; }
}
.avatar-edit-modal {
  z-index: 63;
  width: min(560px, 94vw);
  padding: 0;
  overflow: hidden;
}
.avatar-edit-modal.show { z-index: 63; }
.avatar-edit-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #eef2f6;
}
.avatar-edit-head > div { min-width: 0; }
.avatar-edit-head h2 { margin: 0; font-size: 16px; color: #102033; }
.avatar-edit-desc { margin: 4px 0 0; font-size: 12px; line-height: 1.45; color: #607086; font-weight: 400; }
.avatar-edit-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 140px;
  gap: 20px;
  padding: 20px;
  align-items: start;
}
.avatar-edit-crop-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.avatar-edit-crop-frame {
  position: relative;
  width: 280px;
  max-width: 100%;
  margin: 0 auto;
  border-radius: 4px;
  overflow: hidden;
  background: #e8eaed;
}
.avatar-edit-crop-frame canvas {
  display: block;
  width: 100%;
  height: auto;
  cursor: grab;
}
.avatar-edit-crop-frame canvas:active { cursor: grabbing; }
.avatar-edit-crop-box {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 200px;
  height: 200px;
  margin: -100px 0 0 -100px;
  border: 2px solid rgba(255, 255, 255, 0.95);
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.35);
  pointer-events: none;
}
.avatar-edit-crop-box::before,
.avatar-edit-crop-box::after {
  content: "";
  position: absolute;
  background: rgba(255, 255, 255, 0.85);
}
.avatar-edit-crop-box::before {
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
  margin-top: -0.5px;
}
.avatar-edit-crop-box::after {
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  margin-left: -0.5px;
}
.avatar-edit-zoom-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: #607086;
}
.avatar-edit-zoom-wrap input[type="range"] { flex: 1; }
.avatar-edit-preview-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding-top: 4px;
}
.avatar-edit-preview-label { margin: 0; font-size: 13px; color: #607086; }
.avatar-edit-preview-col canvas {
  display: block;
  width: 120px;
  height: 120px;
  border-radius: 8px;
  border: 1px solid #e8eef5;
  background: #f5f7fa;
}
.avatar-edit-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 20px 16px;
  border-top: 1px solid #eef2f6;
}
.avatar-edit-footer-right { display: flex; gap: 10px; }
@media (max-width: 520px) {
  .avatar-edit-body { grid-template-columns: 1fr; }
  .avatar-edit-preview-col { flex-direction: row; justify-content: center; }
}
.profile-stat-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 0; }
.profile-stat-card {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfe;
  text-align: center;
}
.profile-stat-card b { display: block; font-size: 22px; color: #1677ff; line-height: 1.2; }
.profile-stat-card small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }
.profile-quick-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.profile-debug-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.management-body { max-height: 70vh; overflow-y: auto; padding: 16px 20px; }
.management-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.management-grid .wide { grid-column: span 2; }
.management-card { padding: 13px; border: 1px solid var(--line); border-radius: 8px; background: #fbfcfe; }
.management-card h4, .management-card p { margin: 0; }.management-card p { margin-top: 5px; color: var(--muted); font-size: 12px; }
.more-action-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.more-action-grid button { display: grid; grid-template-columns: 42px 1fr; gap: 10px; align-items: center; min-height: 74px; padding: 12px; border: 1px solid #e3ebf5; border-radius: 12px; background: #fff; text-align: left; box-shadow: 0 8px 18px rgba(14,34,64,.035); }
.more-action-grid button:hover { border-color: #bad8ff; background: #f7fbff; transform: translateY(-1px); }
.more-action-grid i { grid-row: span 2; display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; color: #1677ff; background: #eef6ff; font-style: normal; font-weight: 900; }
.more-action-grid b { color: #14243a; font-size: 13px; }
.more-action-grid small { color: #7b8798; font-size: 11px; }
.notification-list article { display: flex; gap: 11px; padding: 12px 0; border-bottom: 1px solid #eef1f5; }.notification-list article:last-child { border: 0; }
.profile-head { display: flex; gap: 14px; align-items: center; margin-bottom: 16px; padding: 15px; border-radius: 9px; background: #f5f9ff; }.profile-head .avatar { width: 52px; height: 52px; font-size: 18px; }
.profile-head h3, .profile-head p { margin: 0; }.profile-head p { color: var(--muted); font-size: 12px; }
.avatar-setting { display: flex; gap: 14px; align-items: center; padding: 14px; border: 1px solid #e3ebf5; border-radius: 12px; background: #fbfdff; }
.avatar-setting .avatar { width: 58px; height: 58px; font-size: 20px; }
.avatar-setting h4, .avatar-setting p { margin: 0; }.avatar-setting p { margin-top: 4px; color: var(--muted); font-size: 12px; }
.permission-list label { display: flex; justify-content: space-between; align-items: center; padding: 11px 0; border-bottom: 1px solid #eef1f5; }.permission-list input { width: auto; }
.secret-tip { margin-top: 8px; padding: 10px; border-radius: 7px; color: #8b6a23; background: #fff8e8; font-size: 11px; }
.config-flags { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }.config-flag { padding: 4px 8px; border-radius: 14px; font-size: 11px; }.config-flag.saved { color: #16834e; background: #e9f9f0; }.config-flag.missing { color: #bd6b10; background: #fff4e5; }
.modal-table { width: 100%; }.modal-table td, .modal-table th { padding: 9px 8px; }
.toast {
  position: fixed;
  left: 50%;
  right: auto;
  bottom: -80px;
  z-index: 10060;
  max-width: min(520px, calc(100vw - 32px));
  padding: 12px 18px;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(135deg, #22a06b 0%, #1eae68 100%);
  box-shadow: 0 12px 32px rgba(15, 35, 62, .18), 0 0 0 1px rgba(255, 255, 255, .08) inset;
  font-size: 13px;
  line-height: 1.5;
  text-align: center;
  transform: translateX(-50%);
  transition: bottom .28s ease, opacity .28s ease, transform .28s ease;
  opacity: 0;
}
.toast.error {
  background: linear-gradient(135deg, #e94b4b 0%, #cf1322 100%);
  box-shadow: 0 12px 32px rgba(207, 19, 34, .22);
}
.toast.warn {
  background: linear-gradient(135deg, #fa8c16 0%, #d46b08 100%);
}
.toast.show {
  bottom: calc(28px + env(safe-area-inset-bottom, 0px));
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.notify-toast-stack {
  position: fixed;
  right: 20px;
  bottom: calc(88px + env(safe-area-inset-bottom, 0px));
  z-index: 10055;
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: min(360px, calc(100vw - 32px));
  pointer-events: none;
}
.notify-toast-card {
  position: relative;
  pointer-events: auto;
  padding: 12px 36px 12px 14px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, .65);
  background: linear-gradient(135deg, #ffffff 0%, #f7fbff 100%);
  box-shadow: 0 14px 36px rgba(15, 35, 62, .16);
  cursor: pointer;
  animation: notifyToastIn .28s ease;
  transition: opacity .22s ease, transform .22s ease;
}
.notify-toast-card.is-leaving {
  opacity: 0;
  transform: translateX(12px);
}
.notify-toast-card.is-important { border-left: 4px solid #1677ff; }
.notify-toast-card.is-at { border-left: 4px solid #722ed1; }
.notify-toast-card.is-urge { border-left: 4px solid #fa541c; }
.notify-toast-card.is-risk { border-left: 4px solid #cf1322; }
.notify-toast-card.is-published { border-left: 4px solid #13c2c2; }
.notify-toast-tag {
  display: inline-block;
  margin-bottom: 4px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  color: #355070;
  background: #edf4ff;
}
.notify-toast-title {
  display: block;
  font-size: 14px;
  line-height: 1.4;
  color: #102a43;
}
.notify-toast-text {
  margin: 4px 0 0;
  font-size: 12px;
  line-height: 1.5;
  color: #5a6a85;
}
.notify-toast-time {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  color: #8aa0b8;
}
.notify-toast-close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 6px;
  color: #8aa0b8;
  background: transparent;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
.notify-toast-close:hover { color: #334e68; background: #eef4fb; }
@keyframes notifyToastIn {
  from { opacity: 0; transform: translateX(16px); }
  to { opacity: 1; transform: translateX(0); }
}
.profile-notify-grid {
  display: grid;
  gap: 10px;
}
.profile-notify-opt {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: #334e68;
}
.profile-notify-opt input { width: auto; }
.profile-notify-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
}
.profile-desktop-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
}
.profile-desktop-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px 16px;
  padding: 14px 16px;
  border: 1px solid #dbe7f6;
  border-radius: 12px;
  background: linear-gradient(135deg, #f8fbff 0%, #eef6ff 100%);
}
.profile-desktop-card-main {
  flex: 1 1 220px;
  min-width: 0;
}
.profile-desktop-card-main h4 {
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 600;
  color: #13243a;
}
.profile-desktop-card-main p {
  margin: 0;
  font-size: 12px;
  line-height: 1.55;
  color: #607086;
}
.profile-desktop-status {
  display: block;
  margin-top: 8px;
}
.profile-desktop-card-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.profile-desktop-card .profile-desktop-manual {
  flex: 1 1 100%;
  margin-top: 0;
}
.profile-desktop-manual {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #f7fbff;
  color: #486581;
  font-size: 13px;
}
.profile-desktop-manual summary {
  cursor: pointer;
  color: #1677ff;
  font-weight: 600;
}
.profile-desktop-manual ol {
  margin: 10px 0 0;
  padding-left: 20px;
}
.profile-desktop-manual li + li { margin-top: 6px; }
.project-snippet-section .project-snippet-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-top: 12px;
}
.project-snippet-list {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}
.project-snippet-row {
  display: grid;
  grid-template-columns: auto 120px 1fr;
  gap: 8px 12px;
  padding: 12px;
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: #fbfdff;
}
.project-snippet-enable {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 13px;
  color: #486581;
}
.project-snippet-enable input { width: auto; margin-top: 2px; }
.project-snippet-label,
.project-snippet-text {
  width: 100%;
  font: inherit;
  border: 1px solid #d9e2ec;
  border-radius: 8px;
  padding: 8px 10px;
  background: #fff;
}
.project-snippet-text { min-height: 64px; resize: vertical; grid-column: 2 / -1; }
.project-snippet-meta,
.project-snippet-row-actions { grid-column: 2 / -1; }
.project-snippet-row-actions { justify-self: end; }
@media (max-width: 720px) {
  .project-snippet-row {
    grid-template-columns: 1fr;
  }
  .project-snippet-text,
  .project-snippet-meta,
  .project-snippet-row-actions {
    grid-column: 1 / -1;
  }
}
body.logged-out .toast,
body.logged-out .notify-toast-stack,
body.login-gate-open .toast,
body.login-gate-open .notify-toast-stack { display: none; }
body.logged-out .toast,
body.login-gate-open .toast { z-index: 10050; }
.app-confirm-modal {
  z-index: 10070;
  width: min(420px, calc(100vw - 32px));
  padding: 24px 24px 18px;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, .65);
}
.app-confirm-modal.is-warn .app-confirm-icon {
  color: #d46b08;
  background: #fff7e6;
  border-color: #ffd591;
}
.app-confirm-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin: 0 auto 14px;
  border: 1px solid #ffe58f;
  border-radius: 50%;
  color: #fa8c16;
  background: #fffbe6;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
}
.app-confirm-title {
  margin: 0 0 8px;
  color: #1f2937;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.35;
}
.app-confirm-message {
  margin: 0 0 18px;
  color: #64748b;
  font-size: 14px;
  line-height: 1.6;
}
.app-confirm-footer {
  display: flex;
  justify-content: center;
  gap: 10px;
  padding: 0;
}
.app-confirm-footer .secondary-button,
.app-confirm-footer .primary-button {
  min-width: 96px;
}
.app-confirm-modal.is-warn .primary-button {
  background: #fa8c16;
  border-color: #fa8c16;
}
.app-confirm-modal.is-warn .primary-button:hover {
  background: #d46b08;
  border-color: #d46b08;
}
.login-inline-error {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.55;
  font-weight: 600;
  color: #cf1322;
  background: #fff1f0;
  border: 1px solid #ffccc7;
}
.login-inline-error.is-success {
  color: #0f7a45;
  background: #f0faf4;
  border-color: #b7eb8f;
}
.login-inline-error[hidden] { display: none !important; }
.login-sms-hint,
.login-demo-code {
  margin: 0 0 10px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 12px;
  line-height: 1.55;
  color: #3d5a80;
  background: #f0f7ff;
  border: 1px solid #cfe3ff;
}
.login-sms-hint--demo {
  color: #8a6a3a;
  background: #fffbf0;
  border-color: #ffe7ba;
}
.login-demo-code {
  color: #0f7a45;
  font-size: 15px;
  font-weight: var(--weight-strong);
  letter-spacing: .08em;
  background: #f0faf4;
  border-color: #b7eb8f;
}
.login-sms-hint[hidden],
.login-demo-code[hidden] { display: none !important; }
.login-form .primary-button.is-loading { opacity: .72; pointer-events: none; }
/* mobile-menu 图标见 icons.css */
.sidebar-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9;
  background: rgba(7, 25, 43, .42);
}
body.sidebar-open .sidebar-backdrop { display: block; }
body.sidebar-open { overflow: hidden; }
/* ===== 桌面视口分档：1400×900 ~ 2520×1680（981px+） ===== */
@media (max-width: 1680px) and (min-width: 981px) {
  .xm-role-panel[data-role-panel="employee"] .xm-employee-table th:nth-child(6),
  .xm-role-panel[data-role-panel="employee"] .xm-employee-table td:nth-child(6) { display: none; }
  .xm-role-panel[data-role-panel="employee"] .xm-employee-table th:first-child,
  .xm-role-panel[data-role-panel="employee"] .xm-employee-table td:first-child { width: 38%; }
}
@media (max-width: 1600px) and (min-width: 981px) {
  #tasksView .task-card-grid-head .th-project,
  #tasksView .task-work-col-project { display: none; }
  #tasksView .task-card-grid-layout {
    --task-card-cols: 32px minmax(140px, 1fr) minmax(72px, 0.85fr) minmax(84px, 0.88fr) minmax(92px, 0.95fr) 56px;
  }
}
@media (max-width: 1440px) and (min-width: 981px) {
  .task-quick-cards { gap: 10px; }
  .task-quick-card { min-height: clamp(76px, 9vh, 96px); gap: 10px; padding: 12px 14px; }
  .task-quick-card i { width: clamp(32px, 3vw, 38px); height: clamp(32px, 3vw, 38px); }
  .task-quick-card b { margin-top: 6px; font-size: clamp(20px, 1.6vw, 24px); }
  .task-quick-card b::after { font-size: 13px; }
  .task-quick-card span { font-size: 13px; }
  #tasksView .task-card-grid-layout {
    --task-card-cols: 32px minmax(130px, 1.55fr) minmax(68px, 0.82fr) minmax(80px, 0.86fr) minmax(88px, 0.92fr) 52px;
  }
  #tasksView .task-work-card { padding: 10px 12px; min-height: 52px; }
  #tasksView .task-work-card > .priority-badge { width: 30px; height: 30px; font-size: 11px; }
  #tasksView .task-work-title-text { min-width: 0; }
  #tasksView .task-list-toolbar { padding: 12px 14px 14px; gap: 8px; }
  #tasksView .task-list-toolbar-search { flex: 0 0 clamp(160px, 14vw, 200px); }
  #tasksView .task-list-toolbar-filters label { width: clamp(100px, 8vw, 118px); }
  #tasksView .task-list-toolbar-filters input,
  #tasksView .task-list-toolbar-filters select,
  #tasksView .task-list-toolbar-search input { height: 36px; font-size: 12px; }
  #tasksView .task-list-toolbar-filters .secondary-button { height: 36px; min-width: 68px; }
  #tasksView .task-filter-bar .filter-bar { padding: 12px 14px 14px; gap: 8px; }
  #tasksView .task-filter-bar .filter-bar label { width: clamp(100px, 8vw, 118px); }
  #tasksView .task-filter-bar .filter-bar label:first-child { width: clamp(160px, 14vw, 200px); }
  #tasksView .task-filter-bar .filter-bar input,
  #tasksView .task-filter-bar .filter-bar select { height: 36px; font-size: 12px; }
  #tasksView .task-filter-bar .filter-bar .secondary-button { height: 36px; min-width: 68px; }
  .xm-metrics article { padding: 10px 11px; }
  .xm-metrics article > b { font-size: clamp(17px, 1.4vw, 20px); }
  .xm-panel-title { padding: 11px 13px 8px; }
  .xm-greeting h2 { font-size: clamp(18px, 1.5vw, 21px); }
  .xm-view-switcher .xm-view-card { padding: 8px 10px; }
  .xm-view-switcher .xm-view-text b { font-size: 13px; }
}
@media (max-width: 1200px) and (min-width: 981px) {
  :root { --vp-aside-w: clamp(180px, 14vw, 200px); }
  #tasksView .task-card-grid-layout {
    --task-card-cols: 32px minmax(150px, 1fr) minmax(70px, 0.84fr) minmax(82px, 0.88fr) minmax(90px, 0.94fr) 48px;
  }
}
@media (max-width: 1440px) {
  .bottom-content { grid-template-columns: 1fr 1fr; }.create-panel { grid-column: span 2; }.create-grid { grid-template-columns: repeat(4, 1fr); }
  .project-grid { grid-template-columns: repeat(2,1fr); }.project-card:nth-child(n+3) { display: none; }
  .task-quick-cards:not(.task-quick-cards--created):not(.task-quick-cards--compact) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .task-quick-cards.task-quick-cards--created { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .task-quick-cards.task-quick-cards--compact { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .xm-metrics.five { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .xm-metrics.six:not(.eff-kpi-strip) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .xm-grid.three, .manager-top { grid-template-columns: 1fr 1fr; }
  .xm-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats-row.two, .stats-row.hero-three, .stats-row.three, .stats-row.four, .stats-row.bottom-three { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1441px) and (max-width: 1919px) {
  .xm-metrics.six:not(.eff-kpi-strip) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1600px) {
  .task-quick-cards:not(.task-quick-cards--created):not(.task-quick-cards--compact) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .task-quick-cards.task-quick-cards--created { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 1601px) {
  #tasksView .task-card-grid-head .th-project,
  #tasksView .task-work-col-project { display: revert; }
}
@media (min-width: 1920px) and (max-height: 1080px) {
  :root {
    --vp-view-pad: 12px;
    --vp-page-gap: 10px;
    --vp-dash-row-gap: 8px;
    --vp-topbar-h: 56px;
    --vp-sidebar-w: 192px;
  }
}
@media (min-width: 1920px) {
  :root {
    --vp-panel-width: clamp(400px, 38vw, 860px);
    --vp-view-pad: clamp(12px, 0.35vw + 8px, 16px);
  }
  .xm-metrics.six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .xm-metrics.five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .xm-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .manager-top { grid-template-columns: minmax(0, 1.55fr) minmax(280px, .85fr); }
  #tasksView .task-card-grid-layout {
    --task-card-cols: 36px minmax(140px, 1.8fr) minmax(84px, 0.9fr) minmax(88px, 0.85fr) minmax(100px, 0.95fr) minmax(112px, 1.05fr) 68px;
  }
  .xm-role-panel[data-role-panel="employee"] .xm-employee-table th:nth-child(6),
  .xm-role-panel[data-role-panel="employee"] .xm-employee-table td:nth-child(6) { display: table-cell; }
}
@media (min-width: 2520px) {
  :root {
    --vp-view-pad: 20px;
    --vp-page-gap: 22px;
    --vp-task-card-gap: 22px;
  }
}
/* ===== Dashboard 多分辨率适配（1080p 及以下高度 / 中等宽度） ===== */
@media (min-width: 981px) {
  #employeeMetrics.xm-metrics.five {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}
#dashboardView.view.active:has(.xm-role-panel[data-role-panel="manager"].active),
#dashboardView.view.active:has(.xm-role-panel[data-role-panel="boss"].active) {
  overflow-y: auto;
}
@media (min-height: 1081px) and (min-width: 960px) {
  .xm-role-panel[data-role-panel="employee"].active .xm-employee-hero-main {
    flex: 1;
    min-height: 0;
  }
  .xm-employee-hero-main,
  .xm-employee-right {
    overflow: hidden;
    min-height: 0;
  }
  .xm-employee-right-bottom > .xm-panel {
    min-height: 200px;
    max-height: none;
  }
}
@media (max-width: 1680px) and (min-width: 981px) {
  :root {
    --vp-dashboard-aside-w: clamp(260px, 3rem + 12vw, 340px);
  }
}
@media (max-width: 1440px) and (min-width: 981px) {
  :root {
    --vp-dashboard-aside-w: clamp(240px, 2.5rem + 11vw, 300px);
  }
  .xm-view-switcher {
    max-width: min(100%, 460px);
  }
  .xm-view-switcher .xm-view-card {
    min-width: 108px;
    padding: 7px 8px;
  }
  .xm-view-switcher .xm-view-text small {
    font-size: 10px;
  }
}
@media (max-width: 1280px) and (min-width: 981px) {
  :root {
    --vp-dashboard-aside-w: clamp(220px, 2rem + 10vw, 280px);
  }
  #employeeMetrics.xm-metrics.five {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  #employeeMetrics.xm-metrics.five article:nth-child(4),
  #employeeMetrics.xm-metrics.five article:nth-child(5) {
    grid-column: span 1;
  }
}
/* 1080p 高度：员工视图纵向网格分配，效率洞察与行动区均衡首屏 */
@media (max-height: 1080px) and (min-width: 981px) {
  :root {
    --vp-dashboard-aside-w: clamp(220px, 16vw, 280px);
    --vp-view-pad: clamp(10px, 0.35vw + 7px, 12px);
    --vp-page-gap: 10px;
    --vp-dash-row-gap: 8px;
    --vp-topbar-h: clamp(52px, 0.5vw + 48px, 56px);
  }
  .topbar {
    gap: 10px;
    padding: 7px clamp(14px, 0.8vw + 10px, 22px);
  }
  .topbar-actions {
    --topbar-ctrl-h: 38px;
    --topbar-icon-size: 22px;
    gap: 10px;
  }
  .topbar h1 { font-size: clamp(17px, 0.35vw + 14px, 19px); }
  .page-hint { font-size: 11px; max-width: min(460px, 38vw); }
  #dashboardView.view.active:has(.xm-role-panel[data-role-panel="employee"].active) .xm-home-main {
    gap: 8px;
  }
  .xm-greeting {
    min-height: 0;
    gap: 8px;
    flex-shrink: 0;
  }
  .xm-greeting h2 {
    font-size: clamp(17px, 0.9vw + 12px, 18px);
  }
  .xm-view-switcher .xm-view-card {
    min-width: 108px;
    padding: 7px 9px;
  }
  .xm-view-switcher .xm-view-text b { font-size: 12px; }
  .xm-view-switcher .xm-view-text small { font-size: 10px; }
  .xm-command-center.is-collapsed {
    padding: 7px 10px;
    flex-shrink: 0;
  }
  .xm-command-center-head { gap: 8px; }
  .xm-command-center h3 { font-size: 14px; }
  .xm-command-strip-text { font-size: 11px; line-height: 1.35; }
  .xm-command-center {
    padding: 8px 10px;
  }
  /* —— 员工视图：铺满可用高度 —— */
  .xm-role-panel[data-role-panel="employee"].active {
    flex: 1;
    overflow: hidden;
    min-height: 0;
    gap: 0;
  }
  .xm-employee-home {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--vp-dash-row-gap);
    flex: 1;
    min-height: 0;
    height: 100%;
  }
  .xm-employee-kpi-row {
    gap: 6px;
  }
  .xm-employee-action-row,
  .xm-employee-insight-row {
    flex: unset;
    min-height: 0;
    gap: var(--vp-dash-row-gap);
    align-items: stretch;
  }
  .xm-employee-kpi-row > article {
    min-height: 56px;
    padding: 6px 10px;
  }
  .xm-employee-kpi-row > article > div > b {
    font-size: 18px;
  }
  .xm-employee-kpi-row > article > div > span.xm-metric-label {
    font-size: 11px;
  }
  #employeeMetrics article > div > b {
    font-size: 20px;
  }
  .xm-role-panel[data-role-panel="employee"].active .xm-employee-home .xm-panel-title {
    padding: 9px 12px 7px;
    min-height: 40px;
  }
  .xm-role-panel[data-role-panel="employee"].active .xm-employee-home .xm-panel-title h3 {
    font-size: 13px;
  }
  .xm-role-panel[data-role-panel="employee"].active .xm-employee-action-row > .xm-panel,
  .xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row > .xm-panel {
    height: 100%;
    min-height: 0;
  }
  .xm-chart-block-employee .xm-chart-y-axis,
  .xm-chart-block-employee .xm-week-chart,
  .xm-chart-block-employee .xm-week-chart svg {
    height: 68px;
  }
  .xm-chart-block-employee .xm-chart-y-axis {
    margin-bottom: 16px;
  }
  /* —— 管理视图 —— */
  .xm-role-panel[data-role-panel="manager"].active,
  .xm-role-panel[data-role-panel="boss"].active {
    gap: var(--vp-dash-row-gap);
  }
  .dash-board {
    gap: var(--vp-dash-row-gap);
  }
  .dash-row {
    gap: var(--vp-dash-row-gap);
  }
  .xm-dashboard-section--metrics #managerMetrics,
  .xm-dashboard-section--metrics #bossMetrics,
  .dash-board .dash-kpi-strip#managerMetrics,
  .dash-board .dash-kpi-strip#bossMetrics {
    gap: 6px;
  }
  #managerMetrics article,
  #bossMetrics article {
    min-height: 68px;
    padding: 6px 8px;
    gap: 8px;
  }
  #managerMetrics article > span.xm-metric-icon,
  #bossMetrics article > span.xm-metric-icon {
    width: 28px;
    height: 28px;
    background-size: 20px;
  }
  #managerMetrics article > div > b,
  #bossMetrics article > div > b {
    font-size: 17px;
  }
  #managerMetrics article > div > span:not(.xm-metric-icon),
  #bossMetrics article > div > span:not(.xm-metric-icon) {
    font-size: 11px;
  }
  #managerMetrics article > div > small,
  #bossMetrics article > div > small {
    font-size: 10px;
  }
  .xm-role-panel[data-role-panel="manager"] .dash-row-three,
  .xm-role-panel[data-role-panel="boss"] .dash-row-three,
  .xm-role-panel[data-role-panel="manager"] .dash-row-two,
  .xm-role-panel[data-role-panel="boss"] .dash-row-two {
    gap: var(--vp-dash-row-gap);
  }
  .dash-row-split { gap: var(--vp-dash-row-gap); }
  .dash-board .dash-card.is-scrollable:not(.dash-card-tall) { max-height: min(280px, 32vh); }
  .dash-board .dash-card.is-scrollable.dash-card-tall { max-height: min(320px, 36vh); }
  .task-quick-card { min-height: clamp(68px, 7.5vh, 86px); }
  #tasksView .task-work-card { min-height: 48px; }
  .task-page-aside { max-height: calc(100vh - var(--vp-topbar-h) - var(--vp-view-pad) * 2); }
}
@media (max-height: 1080px) and (max-width: 1600px) and (min-width: 981px) {
  .xm-dashboard-section--metrics #managerMetrics,
  .xm-dashboard-section--metrics #bossMetrics,
  .dash-board .dash-kpi-strip#managerMetrics,
  .dash-board .dash-kpi-strip#bossMetrics {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}
@media (max-height: 1080px) and (max-width: 1280px) and (min-width: 981px) {
  .xm-employee-action-row,
  .xm-employee-insight-row {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-height: 900px) and (min-width: 981px) {
  :root { --vp-topbar-h: 54px; }
  .task-quick-card { min-height: 68px; padding: 10px 12px; }
  .task-quick-card b { font-size: 20px; margin-top: 4px; }
  #tasksView .task-work-card { min-height: 46px; padding: 8px 10px; }
  #tasksView .task-list-toolbar { padding: 10px 12px 12px; }
  #tasksView .task-filter-bar .filter-bar { padding: 10px 12px 12px; }
  .xm-panel-title { padding: 9px 12px 7px; }
  .xm-greeting h2 { font-size: 18px; }
  .xm-dashboard-section--metrics #managerMetrics,
  .xm-dashboard-section--metrics #bossMetrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  #managerMetrics article,
  #bossMetrics article {
    min-height: 64px;
  }
  .xm-grid.three,
  .manager-top {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 980px) {
  .sidebar-collapse-btn { display: none; }
  .sidebar { left: calc(-1 * var(--sidebar-width)); z-index: 40; transition: left .2s ease, width .2s ease; }
  .sidebar.show { left: 0; }
  .main { width: 100%; margin-left: 0; }
  .mobile-menu { display: block; }
  .sidebar-backdrop { z-index: 35; }
  body.sidebar-open .sidebar-backdrop { display: block !important; }
  .stats-row.two, .stats-row.hero-three, .stats-row.three, .stats-row.four, .stats-row.bottom-three, .stats-overview-grid, .stats-custom-grid, .stats-team-grid { grid-template-columns: 1fr; }
  .stats-toolbar { padding: 10px 12px 0; }
  .stats-filters { width: 100%; margin-left: 0; }
  .stats-date-field, .stats-project-field, .stats-project-field select, .stats-export-btn { width: 100%; }
  .stats-date-field input { flex: 1; width: auto; min-width: 0; }
  .eff-page-head { flex-direction: column; align-items: stretch; }
  .eff-page-filters { width: 100%; margin-left: 0; }
  .project-hub-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .project-hub-hero-top { flex-direction: column; align-items: stretch; }
  .project-hub-hero-actions { width: 100%; }
  .project-hub-stat-row, .hub-quick-grid, .hub-metric-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .top-content, .middle-content, .stats-grid { grid-template-columns: 1fr; }.search { display: none; }.large-project-grid { grid-template-columns: repeat(2,1fr); }
  .org-layout { grid-template-columns: 1fr; }
  .org-filter-bar { flex-direction: column; align-items: stretch; }
  .org-filter-field select { width: 100%; min-width: 0; }
  .org-filter-actions { margin-left: 0; width: 100%; }
  .org-export-btn { width: 100%; justify-content: center; }
  .org-profile-stats--row { grid-template-columns: repeat(2, 1fr); }
  .org-profile-panel, .org-layout .org-profile-card { max-height: none; }
  .org-member-table { font-size: var(--font-page-sm); }
  .org-member-table th:nth-child(3), .org-member-table td:nth-child(3),
  .org-member-table th:nth-child(6), .org-member-table td:nth-child(6) { display: none; }
  .xm-home { grid-template-columns: minmax(0, 1fr); gap: 0; align-items: stretch; }
  .xm-home-main { min-height: 0; align-self: start; }
  .xm-grid.two, .employee-grid, .xm-grid.three, .manager-top { grid-template-columns: 1fr; }
  .xm-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xm-role-panel[data-role-panel="employee"].active { min-height: 0; }
  .xm-employee-action-row,
  .xm-employee-insight-row { grid-template-columns: minmax(0, 1fr); }
  .xm-home-main, .xm-role-panel, .xm-panel, .xm-table { min-width: 0; max-width: 100%; }
  .xm-priority-row { grid-template-columns: 32px minmax(0, 1fr); row-gap: 4px; align-items: start; }
  .xm-priority-row .status-pill { grid-column: 2; justify-self: start; }
  .xm-priority-row time { grid-column: 2; text-align: left; font-size: 11px; }
  .xm-table table { min-width: 600px; }
}
@media (max-width: 620px) {
  .view { padding: 10px; }
  #settingsView.view { padding: 10px; }
  .topbar { min-height: 62px; height: auto; padding: 8px 13px; align-items: center; }
  .topbar > .topbar-head { flex: 1; min-width: 0; }
  .topbar-title-row { flex-wrap: wrap; align-items: flex-end; }
  .topbar-title-row .page-hint { flex-basis: 100%; max-width: none; padding-bottom: 0; margin-top: 2px; }
  .eyebrow, .page-hint { display: none; }
  .topbar h1 { font-size: 18px; margin: 0; display: block; }
  .page-title-row { display: inline-flex; }
  .page-title-icon { width: 24px; height: 24px; font-size: 14px; }
  .page-title-icon-versions svg { width: 17px; height: 17px; }
  .topbar-actions { gap: 10px; --topbar-ctrl-h: 40px; --topbar-icon-size: 24px; padding-left: 0; }
  .topbar-actions .search { min-width: 0; width: min(240px, 42vw); padding: 0 12px 0 14px; }
  .xm-follow-projects .xm-project-row { grid-template-columns: 28px minmax(0, 1fr) auto; row-gap: 4px; }
  .xm-follow-projects .xm-project-row .xm-project-bar,
  .xm-follow-projects .xm-project-row .xm-project-rate { display: none; }
  .xm-follow-projects .xm-project-row .xm-risk-tag { grid-column: 2; justify-self: start; }
  .xm-table table { min-width: 520px; }
  .xm-panel-title { flex-wrap: wrap; row-gap: 8px; }
  .xm-panel-title h3 { min-width: 0; }
  .settings-panel-footer:not([hidden]) {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 25;
    margin: 0; padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, .96); border-top: 1px solid var(--line);
    box-shadow: 0 -8px 24px rgba(15, 35, 68, .08);
    flex-direction: column;
    align-items: stretch;
  }
  .settings-panel-footer:not([hidden]) .settings-panel-footer-hint { flex: none; text-align: center; }
  .settings-panel-footer:not([hidden]) .primary-button { width: 100%; height: 42px; }
  #settingsView.view.active { padding-bottom: 96px; }
  .settings-maintain-table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .toast {
    left: 16px;
    right: 16px;
    max-width: none;
    transform: none;
  }
  .toast.show {
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    transform: none;
  }
  .help-center-layout { grid-template-columns: 1fr; }
  .help-center-nav { position: static; flex-direction: row; flex-wrap: wrap; }
  .profile-stat-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .profile-hero { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .profile-hero-meta { width: 100%; }
  .profile-avatar-tip { grid-template-columns: 1fr; }
  .profile-avatar-tip .primary-button { justify-self: flex-end; }
  .profile-password-grid { grid-template-columns: 1fr; }
  .profile-password-grid .mef-field { border-right: 0; border-bottom: 1px solid #f3f5f8; }
  .profile-password-grid .mef-field:last-child { border-bottom: 0; }
  .profile-wecom-row,
  .profile-wecom-row.is-bound { grid-template-columns: 1fr; }
  .profile-wecom-row.is-bound .profile-wecom-avatar { justify-self: flex-start; }
  .profile-wecom-actions { width: 100%; }
  .profile-wecom-actions .primary-button,
  .profile-wecom-actions .secondary-button { width: 100%; }
  .welcome { padding: 15px; }.welcome h2 { font-size: 18px; }.welcome span { font-size: 11px; }.welcome .primary-button { padding: 8px 10px; font-size: 12px; }
  .metric-grid { grid-template-columns: 1fr 1fr; }.metric-card { min-height: 76px; padding: 10px; }.metric-icon { width: 38px; height: 38px; border-radius: 12px; font-size: 16px; }.metric-card strong { font-size: 21px; }
  .bottom-content { grid-template-columns: 1fr; }.create-panel { grid-column: auto; }.create-grid { grid-template-columns: 1fr 1fr; }
  .project-grid { grid-template-columns: 1fr; }.project-card:nth-child(n+2) { display: none; }.large-project-grid { grid-template-columns: 1fr; }
  .filter-bar { flex-wrap: wrap; }.filter-bar label, .filter-bar label:first-child { width: 100%; }
  .modal:not(.create-task-modal) form:not(.member-edit-form):not(.create-task-form):not(.profile-form) { grid-template-columns: 1fr; max-height: 72vh; overflow-y: auto; }
  .modal:not(.create-task-modal) form:not(.member-edit-form):not(.create-task-form):not(.profile-form) label,
  .modal:not(.create-task-modal) form:not(.member-edit-form):not(.create-task-form):not(.profile-form) .wide { grid-column: 1; }
  .create-task-layout { grid-template-columns: 1fr; max-height: none; overflow: visible; }
  .create-task-main, .create-task-side { max-height: none; }
  .create-task-top-actions { width: 100%; justify-content: flex-start; }
  .create-row { grid-template-columns: 72px minmax(0, 1fr); }
  .create-row-split { grid-template-columns: 1fr; }
  .create-mini-field { grid-template-columns: 1fr; }
  .create-subtask-card-meta { grid-template-columns: 1fr; }
  .create-subtask-item { grid-template-columns: 20px 1fr; }
  .create-subtask-item select, .create-subtask-remove { grid-column: 2; }
  .management-grid { grid-template-columns: 1fr; }.management-grid .wide { grid-column: auto; }
  .settings-layout { grid-template-columns: 1fr; }
  .nav-group.is-open .nav-submenu { display: flex; }
  .settings-metric-grid, .version-detail-layout, .settings-inline-cards, .role-perm-layout, .role-perm-split, .cph-layout, .cph-workspace.cph-split { grid-template-columns: 1fr; }
  .cph-tenant-band-row { flex-direction: column; align-items: stretch; }
  .cph-tenant-band-actions { flex-wrap: wrap; }
  .cph-tenant-list--horizontal .cph-tenant-card,
  .cph-platform-item--card,
  .cph-tenant-add-card { width: auto; max-width: none; min-width: 0; flex: 1 1 140px; }
  .cph-tenant-list, .cph-project-list, .cph-detail-body, .org-cross-grants-body { max-height: none; }
  .cph-tenants, .cph-projects, .cph-tenant-band { position: static; max-height: none; }
  .org-cross-grant-bar { grid-template-columns: 1fr; }
  .perm-tree-row { grid-template-columns: minmax(0, 1fr) 56px 56px; }
  .project-hub-layout { grid-template-columns: 1fr; }.project-hub-list { max-height: none; }.version-detail-layout { grid-template-columns: 1fr; }.settings-grid { grid-template-columns: 1fr; }.reminder-card, .workflow-card { grid-column: auto; }.reminder-flow, .workflow { flex-wrap: wrap; }.reminder-flow article { min-width: 42%; }.member-row, .member-row-main { grid-template-columns: 1fr 1fr; }.member-row > *:nth-child(n+4), .member-row-main > *:nth-child(n+4) { display: none; }
  .org-member-head { grid-template-columns: 1fr auto; }
  .org-member-performance { grid-column: 1 / -1; }
  .org-member-stats-edge { justify-content: flex-start; }
  .member-row-actions { padding: 0 12px 10px; justify-content: flex-start; opacity: 1; pointer-events: auto; }
  .org-config-fab { opacity: 1; }.task-quick-cards:not(.task-quick-cards--created):not(.task-quick-cards--compact), .permission-checks, .create-type-guide { grid-template-columns: 1fr; }
  .task-quick-cards.task-quick-cards--created { grid-template-columns: repeat(5, minmax(0, 1fr)); overflow-x: auto; }
  .task-quick-cards.task-quick-cards--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); overflow-x: auto; }
  .xm-metrics.five, .xm-metrics.six:not(.eff-kpi-strip), .xm-risk-strip { grid-template-columns: 1fr; }
  .xm-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xm-greeting, .xm-manager-head { display: block; }
  .xm-greeting-actions { margin-top: 10px; width: 100%; }
  .xm-view-switcher { width: 100%; flex-wrap: wrap; }
  .xm-view-switcher .xm-view-card { flex: 1 1 calc(33.33% - 6px); max-width: none; min-width: 0; }
}
/* 1080p / 1920 宽屏：全局统一字间距与字号阶梯，避免小字加粗发糊 */
@media (min-width: 1680px) {
  body,
  .app-shell,
  .login-screen {
    letter-spacing: 0.01em;
  }
  :root {
    --font-page: 14px;
    --font-page-sm: 13px;
    --font-page-xs: 12px;
    --font-page-lg: 15px;
    --font-page-xl: 16px;
  }
  .panel-header h3,
  .page-title-row,
  .xm-metrics article > b,
  .xm-eff-value,
  .org-member-panel-name,
  .org-table-header h3,
  .stats-overview-item i,
  .eff-page-head h2,
  .hub-section-head h3,
  .project-hub-icon,
  .xm-priority-row b,
  .xm-activity-body b,
  .routine-row b,
  .management-card h4,
  .td-h1 {
    letter-spacing: 0.01em;
  }
  #tasksView .task-work-title-text,
  #feedbackView .task-work-title-text { font-size: 14px; letter-spacing: 0.01em; }
  #tasksView .task-owner-chip > span:not(.member-hover-pop):not(.xm-avatar),
  #tasksView .task-project-cell b,
  #tasksView .task-work-col time,
  #feedbackView .task-work-col time { font-size: 13px; }
  #tasksView .task-schedule-body b,
  #tasksView .task-schedule-item time { font-size: 13px; }
  #tasksView .task-aside-legend-row,
  #feedbackView .fb-aside-item b { font-size: 13px; }
  .xm-employee-table td,
  .org-table-scroll td,
  .eff-table-row,
  .stats-rank-row { font-size: var(--font-page-sm); }
}
@media (max-width: 768px) {
  .xm-home { grid-template-columns: 1fr; align-items: start; }
  .task-page-layout { grid-template-columns: 1fr; }
  .task-page-aside { position: static; max-height: none; overflow: visible; }
  .task-quick-cards:not(.task-quick-cards--created):not(.task-quick-cards--compact) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .task-quick-cards.task-quick-cards--created { grid-template-columns: repeat(5, minmax(100px, 1fr)); overflow-x: auto; }
  .task-quick-cards.task-quick-cards--compact { grid-template-columns: repeat(3, minmax(100px, 1fr)); overflow-x: auto; }
  .feedback-card-table tr.task-card-row { grid-template-columns: 82px minmax(240px, 1.5fr) minmax(110px, .65fr) minmax(130px, .72fr) minmax(96px, .55fr) minmax(138px, .7fr) minmax(98px, .52fr) minmax(94px, .52fr) 132px; }
}
@media (max-width: 620px) {
  .task-quick-cards:not(.task-quick-cards--created):not(.task-quick-cards--compact) { grid-template-columns: 1fr; }
  .task-quick-cards.task-quick-cards--created { grid-template-columns: repeat(5, minmax(96px, 1fr)); overflow-x: auto; }
  .task-quick-cards.task-quick-cards--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .create-task-drawer { width: var(--panel-width); max-width: var(--panel-width); }
  .create-hero-input { font-size: 18px; }
  .create-meta-strip { grid-template-columns: 1fr; }
  .create-meta-collab {
    grid-template-columns: 1fr;
  }
  .create-meta-collab .create-meta-divider {
    width: auto;
    height: 0;
    margin: 0 12px;
    border-left: 0;
    border-top: 1px dashed rgba(200, 212, 226, .55);
  }
  .create-edge-tab { height: 46px; }
  .create-task-layout { grid-template-columns: 1fr; max-height: calc(94vh - 78px); }
  .topbar-title-row { flex-wrap: wrap; align-items: flex-end; }
  .topbar-title-row .page-hint { flex-basis: 100%; max-width: none; margin-top: 2px; padding-bottom: 0; }
  #tasksView .task-list-toolbar { flex-wrap: wrap; align-items: stretch; }
  #tasksView .task-list-toolbar-search { flex: 1 1 100%; max-width: none; }
  #tasksView .task-list-toolbar-filters { justify-content: flex-start; }
  .task-list-panel .filter-bar,
  #tasksView .task-list-toolbar-filters,
  #tasksView .task-filter-bar .filter-bar { flex-wrap: wrap; }
  .task-list-panel .filter-bar label, .task-list-panel .filter-bar label:first-child,
  #tasksView .task-list-toolbar-filters label,
  #tasksView .task-filter-bar .filter-bar label, #tasksView .task-filter-bar .filter-bar label:first-child { width: calc(50% - 6px); }
  #tasksView .task-card-grid-head,
  .task-card-grid-layout .task-card-grid-head { display: none; }
  #tasksView .task-card-grid-layout .task-work-card,
  .task-card-grid-layout .task-work-card {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px 10px;
    width: 100%;
    box-sizing: border-box;
  }
  #tasksView .task-work-card > .priority-badge,
  .task-card-grid-layout .task-work-card > .priority-badge { flex: 0 0 34px; }
  #tasksView .task-work-main,
  .task-card-grid-layout .task-work-main { flex: 1 1 calc(100% - 112px); min-width: 0; }
  #tasksView .task-work-actions,
  .task-card-grid-layout .task-work-actions { flex: 0 0 auto; margin-left: auto; }
  #tasksView .task-work-col-owner,
  #tasksView .task-work-col-project,
  #tasksView .task-work-col-deadline,
  #tasksView .task-work-col-status,
  .task-card-grid-layout .task-work-col-owner,
  .task-card-grid-layout .task-work-col-project,
  .task-card-grid-layout .task-work-col-deadline,
  .task-card-grid-layout .task-work-col-status {
    flex: 1 1 calc(50% - 6px);
    min-width: 120px;
  }
  #tasksView .task-work-col-status,
  .task-card-grid-layout .task-work-col-status { flex-basis: 100%; }
  .task-card-grid-layout { --task-card-cols: 36px minmax(0, 1fr) minmax(88px, 0.8fr) minmax(80px, 0.75fr) minmax(88px, 0.8fr) minmax(64px, 0.6fr) auto; }
  #tasksView .task-card-grid-layout { --task-card-cols: 36px minmax(0, 1fr) minmax(88px, 0.8fr) minmax(80px, 0.75fr) minmax(88px, 0.8fr) minmax(64px, 0.6fr) auto; }
  #tasksView .task-work-actions { width: auto; min-width: 0; }
  #tasksView .task-card-toolbar {
    position: static;
    right: auto;
    transform: none;
    justify-content: flex-end;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    pointer-events: auto;
  }
  .task-card-grid-head { display: none; }
  .task-work-card.urgency-0 { grid-template-columns: 38px minmax(0, 1fr) minmax(88px, 0.8fr) minmax(80px, 0.75fr) minmax(88px, 0.8fr) minmax(64px, 0.6fr) auto; }
  .task-work-actions { grid-column: auto; }
  .task-work-title-text { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .feedback-card-table { overflow-x: auto; }
  .feedback-card-table tbody { min-width: 900px; }
  :root { --panel-width: 94vw; }
  body.has-notification-drawer.has-task-drawer #taskDrawer.show,
  body.has-notification-drawer.has-feedback-drawer #feedbackDrawer.show,
  body.has-notification-drawer.has-routine-drawer #routineDrawer.show,
  body.has-notification-drawer.has-version-drawer #versionDrawer.show,
  body.has-notification-drawer.has-eff-drawer #effDetailDrawer.show {
    right: 0;
    z-index: 43;
  }
  body.has-notification-drawer.has-approval-drawer #approvalDrawer.show {
    right: 0;
    z-index: 44;
  }
  body.has-task-drawer.has-approval-drawer #approvalDrawer.show {
    z-index: 45;
  }
  .approval-workflow-layout { grid-template-columns: 1fr; }
  .approval-project-aside { position: static; max-height: none; }
  .approval-project-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    overflow: visible;
  }
  .approval-scenario-settings { grid-template-columns: 1fr; }
  .approval-node-item { min-width: 0; flex-basis: 100%; }
  .approval-assign-grid { grid-template-columns: 1fr; }
  .approval-drawer-footer { flex-wrap: wrap; }
  .approval-drawer-footer-actions { width: 100%; justify-content: flex-end; }
  #approvalDrawer .td-btn-danger { width: 100%; margin-bottom: 4px; }
  body.has-notification-drawer #notificationDrawer.show { z-index: 42; }
  #feedbackDrawer { width: var(--panel-width); max-width: var(--panel-width); right: calc(-1 * var(--panel-width)); }
  #feedbackDrawer.show { right: 0; }
  .td-title-row { grid-template-columns: 1fr; }
  .td-title-mid { align-items: flex-start; }
  .td-info-cols { grid-template-columns: 1fr; }
  #taskDrawer .task-drawer-footer { height: auto; flex-wrap: wrap; padding: 12px var(--td-pad); }
  #taskDrawer .td-btn-danger { margin-left: 0; width: 100%; }
  #taskSubtaskDrawer {
    --task-subtask-panel-width: var(--panel-width);
    --task-drawer-compact-width: 0px;
  }
  #taskActionDrawer {
    --task-action-panel-width: var(--panel-width);
    --task-drawer-compact-width: 0px;
  }
  #taskSubtaskDrawer.show {
    right: 0;
    z-index: 44;
  }
  #taskActionDrawer.show {
    right: 0;
    z-index: 44;
  }
  body.has-notification-drawer.has-task-drawer #taskSubtaskDrawer.show {
    right: 0;
  }
  body.has-notification-drawer.has-task-drawer #taskActionDrawer.show {
    right: 0;
  }
  body.has-task-subtask-panel #taskDrawer.has-subtask-panel,
  body.has-task-action-panel #taskDrawer.has-action-panel {
    width: 0 !important;
    max-width: 0 !important;
    min-width: 0 !important;
    overflow: visible;
    box-shadow: none;
  }
  body.has-task-subtask-panel #taskDrawer.has-subtask-panel .task-drawer-header,
  body.has-task-subtask-panel #taskDrawer.has-subtask-panel .task-drawer-main,
  body.has-task-action-panel #taskDrawer.has-action-panel .task-drawer-header,
  body.has-task-action-panel #taskDrawer.has-action-panel .task-drawer-main {
    visibility: hidden;
    pointer-events: none;
  }
  body.has-task-subtask-panel .task-drawer-subtask-rail {
    position: fixed;
    top: auto;
    bottom: 16px;
    left: 50%;
    right: auto;
    z-index: 45;
    width: auto;
    min-width: 0;
    max-width: calc(100vw - 24px);
    flex-direction: row;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 8px 28px rgba(15, 35, 62, .14);
    transform: translateX(-50%);
    overflow: visible;
  }
  body.has-task-subtask-panel .task-drawer-subtask-rail-tab.is-avatar {
    width: 36px;
    height: 36px;
    min-height: 36px;
    max-height: 36px;
  }
  body.has-task-subtask-panel .task-drawer-subtask-rail-tab-av-wrap {
    width: 36px;
    height: 36px;
  }
  body.has-task-subtask-panel .task-drawer-subtask-rail-av,
  body.has-task-subtask-panel img.task-drawer-subtask-rail-av.avatar-img {
    width: 28px;
    height: 28px;
  }
  body.has-task-subtask-panel .task-drawer-subtask-rail-tip {
    display: none;
  }
  body.has-task-subtask-panel .task-drawer-subtask-rail-add {
    width: 36px;
    height: 36px;
  }
  body.has-task-subtask-panel .task-drawer-subtask-rail-close,
  body.has-task-subtask-panel .task-drawer-subtask-rail-collapse {
    min-width: 36px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
  }
  body.has-task-subtask-panel .task-drawer-subtask-rail-foot {
    flex-direction: row;
    gap: 8px;
  }
  body.has-task-subtask-panel .task-drawer-subtask-rail-foot {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
  }
  #taskSubtaskDrawer .task-subtask-drawer-footer-bar {
    flex-wrap: wrap;
    height: auto;
    padding: 12px var(--td-pad, 16px);
  }
  #taskActionDrawer .task-subtask-drawer-footer-bar,
  #taskActionDrawer .task-action-drawer-footer-bar {
    flex-wrap: nowrap;
    height: auto;
    padding: 12px 16px 14px;
  }
  #taskSubtaskDrawer .task-subtask-drawer-footer-bar .td-btn-danger {
    margin-left: 0;
    width: 100%;
  }
  #taskSubtaskDrawer .td-btn { flex: 1 1 calc(50% - 6px); min-width: 0; }
  #taskSubtaskDrawer .td-btn-primary { flex: 1 1 100%; }
  #taskActionDrawer .task-action-btn-cancel { flex: 0 0 88px; }
  #taskActionDrawer .task-action-btn-save { flex: 1; min-width: 0; }
  .task-subtask-parent-ctx {
    display: block;
  }
  #taskSubtaskDrawer .task-subtask-form .create-meta-row-project-deadline,
  #taskSubtaskDrawer .task-subtask-form .create-meta-collab {
    grid-template-columns: 1fr;
  }
  .td-subtask-detail-meta {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 1200px) {
  #taskDrawer {
    --task-drawer-compact-width: min(280px, 30vw);
  }
  #taskSubtaskDrawer {
    --task-subtask-panel-width: var(--panel-width);
    --task-drawer-compact-width: min(280px, 30vw);
  }
  #taskActionDrawer {
    --task-action-panel-width: var(--panel-width);
    --task-drawer-compact-width: min(280px, 30vw);
  }
}
@media (max-width: 620px) {
  .floating-create-button { top: auto; right: 14px; bottom: 16px; }
  .task-list-panel .filter-bar label, .task-list-panel .filter-bar label:first-child,
  #tasksView .task-list-toolbar-filters label,
  #tasksView .task-filter-bar .filter-bar label, #tasksView .task-filter-bar .filter-bar label:first-child { width: 100%; }
  #taskDrawer { --td-pad: 16px; }
  .td-h1 { font-size: 16px; line-height: 24px; }
  .td-info-cols { grid-template-columns: 1fr; }
  .task-drawer-footer-main { flex-wrap: wrap; }
  #taskDrawer .td-btn { flex: 1 1 calc(50% - 6px); min-width: 0; }
  #taskDrawer .td-btn-primary { flex: 1 1 100%; }
  .more-action-grid { grid-template-columns: 1fr; }
}
.task-id-chip { display: inline-flex; align-items: center; justify-content: center; min-width: 54px; height: 24px; padding: 0 9px; border-radius: 999px; color: #6d7b8e; background: #f2f6fb; font-size: 11px; font-weight: 900; letter-spacing: .2px; }

.member-rest-badge {
  display: inline-flex;
  align-items: center;
  height: 18px;
  padding: 0 7px;
  margin-left: 6px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: var(--weight-strong);
  color: #9a5b16;
  background: #fff4e6;
  border: 1px solid #ffd8a8;
  vertical-align: middle;
}
.member-hover-rest .member-rest-badge { margin-left: 0; }
.member-hover-rest em { display: block; margin-top: 4px; color: #6d7b8e; font-style: normal; font-size: 12px; }
.task-proxy-hint { margin-left: 4px; }
.member-presence-card { margin-top: 12px; }
.member-presence-card h4 { margin: 0 0 8px; font-size: 14px; }
.member-presence-toggle { display: flex; align-items: center; gap: 8px; margin: 10px 0; font-size: 13px; cursor: pointer; }
.member-presence-note { display: grid; gap: 6px; margin-bottom: 10px; font-size: 13px; }
.member-presence-note input { width: 100%; max-width: 360px; padding: 8px 10px; border: 1px solid var(--border, #e2e8f0); border-radius: 8px; }
.td-alert-rest {
  background: #fff8eb;
  border: 1px solid #ffe2b8;
  color: #7a4f12;
}
.td-alert-rest p { margin: 4px 0 0; font-size: 13px; }
.td-alert-rest small { display: block; margin-top: 6px; color: #9a6b28; font-size: 12px; }
.td-alert-pending {
  border-color: #d6e4ff;
  background: #f0f5ff;
  color: #2f54eb;
}
.td-alert-pending p { margin: 4px 0 0; font-size: 13px; color: #597ef7; }
#tasksView .task-work-card.is-pending-publish {
  border-style: dashed;
  border-color: #adc6ff;
  background: linear-gradient(180deg, #fafbff 0%, #fff 100%);
}
#tasksView .task-work-card.is-pending-publish .tag.gray {
  border-style: dashed;
}
.td-alert-proxy-return {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  background: #eef6ff;
  border: 1px solid #c8def8;
  color: #1e4a7a;
}
.td-proxy-return-main p { margin: 6px 0 0; font-size: 13px; line-height: 1.5; }
.td-proxy-compose {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin-bottom: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #fff8eb;
  border: 1px dashed #ffd8a8;
  font-size: 13px;
  cursor: pointer;
}
.td-proxy-compose input[type="checkbox"] { margin: 0; }
.td-proxy-note-input {
  flex: 1 1 160px;
  min-width: 120px;
  padding: 6px 8px;
  border: 1px solid #e8d4b0;
  border-radius: 6px;
  font-size: 12px;
}
.td-compose-toolbar { flex-wrap: wrap; }

.leave-settings-modal {
  position: fixed; top: 50%; left: 50%; z-index: 55; display: none; width: min(480px, 94vw);
  transform: translate(-50%, -50%); border-radius: 14px; background: #fff;
  box-shadow: 0 18px 48px rgba(16, 32, 51, .16);
}
.leave-settings-modal.show { display: block; }
.leave-settings-modal[hidden] { display: none !important; }
.leave-settings-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 20px 12px; border-bottom: 1px solid #eef2f6;
}
.leave-settings-head h2 { margin: 0; font-size: 17px; font-weight: var(--weight-strong); color: #102033; }
.leave-settings-body { padding: 14px 20px 8px; }
.leave-settings-tip { margin: 0 0 12px; color: #6d7b8e; font-size: 12px; line-height: 1.55; }
.leave-settings-current {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin-bottom: 12px; padding: 12px 14px; border-radius: 10px;
  background: linear-gradient(135deg, #f8fbff, #eef6ff); border: 1px solid #d8e8ff;
}
.leave-current-text { flex: 1; font-size: 14px; color: #1e4a7a; font-weight: 600; }
.leave-current-clear { flex: 0 0 auto; border: 0; }
.leave-settings-days {
  display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin-bottom: 14px;
}
.leave-day-card {
  position: relative; display: grid; gap: 2px; justify-items: center;
  padding: 8px 4px 10px; border-radius: 10px; border: 1px solid #e8edf3;
  background: #fafbfd; text-align: center; cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s;
}
.leave-day-card input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.leave-day-top { font-size: 10px; color: #8b98a8; font-weight: 600; }
.leave-day-num { font-size: 15px; color: #17263a; line-height: 1.2; }
.leave-day-note { font-size: 9px; color: #9aa7b6; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.leave-day-card.is-today { border-color: #b8d4ff; background: #f5f9ff; }
.leave-day-card.is-today .leave-day-top { color: #1677ff; }
.leave-day-card.is-weekend:not(.is-on) { background: #fcfcfd; }
.leave-day-card.is-on {
  border-color: #ffd8a8; background: #fff8eb;
  box-shadow: 0 2px 8px rgba(201, 119, 10, .12);
}
.leave-day-card.is-on .leave-day-top, .leave-day-card.is-on .leave-day-num { color: #9a5b16; }
.leave-day-card.is-on .leave-day-note { color: #c9770a; font-weight: 600; }
.leave-settings-presets { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.leave-preset {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px;
  border: 1px solid #e8edf3; border-radius: 999px; color: #3d4f63; background: #fff;
  font-size: 12px; cursor: pointer; transition: background .15s, border-color .15s;
}
.leave-preset:hover { background: #f5f9ff; border-color: #c8def8; }
.leave-preset.active { border-color: #ffd8a8; background: #fff8eb; color: #9a5b16; }
.leave-preset-ic {
  display: inline-block;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  background: transparent center/18px no-repeat;
  font-size: 0;
  line-height: 0;
}
.leave-ic-vacation { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41'/%3E%3C/svg%3E"); }
.leave-ic-sick { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4v10.54a4 4 0 11-4 0V4a2 2 0 014 0z'/%3E%3C/svg%3E"); }
.leave-ic-trip { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-4.6 7-11a7 7 0 10-14 0c0 6.4 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.leave-ic-meeting { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 00-4-4H6a4 4 0 00-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75'/%3E%3C/svg%3E"); }
.leave-ic-focus { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23252525' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E"); }
.leave-settings-note { display: grid; gap: 6px; font-size: 12px; color: #6d7b8e; }
.leave-settings-note input {
  width: 100%; padding: 10px 12px; border: 1px solid #e2e8f0; border-radius: 8px;
  font-size: 13px; color: #17263a;
}
.leave-settings-note input:focus { outline: none; border-color: #8ec0ff; box-shadow: 0 0 0 3px rgba(22, 119, 255, .12); }
.leave-settings-footer {
  display: flex; align-items: center; justify-content: flex-end; gap: 8px;
  padding: 12px 20px 18px; border-top: 1px solid #eef2f6;
}
.leave-settings-footer .text-button { margin-right: auto; }
@media (max-width: 520px) {
  .leave-settings-days { grid-template-columns: repeat(4, 1fr); }
}

.task-version-tag {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 22px;
  padding: 0 7px 0 5px;
  line-height: 1;
  cursor: help;
  vertical-align: middle;
}
.tag.task-version-tag,
.td-tag.task-version-tag {
  display: inline-flex;
  align-items: center;
}
.task-version-tag .td-ic-version {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  opacity: .88;
}
.task-version-popover {
  position: absolute; z-index: 40; left: 0; top: calc(100% + 6px);
  display: none; min-width: 220px; max-width: 320px; padding: 10px 12px;
  border: 1px solid #e7d9ff; border-radius: 10px; background: #fff;
  box-shadow: 0 10px 28px rgba(56, 24, 120, .14); text-align: left; font-weight: 400;
}
.task-version-tag:hover .task-version-popover,
.task-version-tag:focus-within .task-version-popover { display: block; }
.task-version-popover b { display: block; color: #531dab; font-size: 13px; margin-bottom: 4px; }
.task-version-popover-meta { display: block; color: #667085; font-size: 12px; line-height: 1.45; }
.task-version-popover-desc { display: block; margin-top: 6px; color: #344054; font-size: 12px; line-height: 1.5; }

.task-owner-chip-group { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.task-owner-more { font-size: 11px; color: #667085; padding: 2px 6px; border-radius: 999px; background: #f2f4f7; }

.handoff-flow-guide-h {
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #f8fbff;
}
.handoff-flow-guide-caption {
  margin: 0 0 8px;
  color: #667085;
  font-size: 12px;
}
.handoff-flow-track {
  display: flex;
  align-items: flex-start;
  gap: 0;
  overflow-x: auto;
  padding-bottom: 2px;
}
.handoff-flow-step-h {
  display: flex;
  flex: 1 0 88px;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 72px;
  text-align: center;
}
.handoff-flow-step-h b {
  color: #1d2939;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3;
  word-break: break-all;
}
.handoff-flow-step-h em {
  color: #98a2b3;
  font-size: 11px;
  font-style: normal;
  line-height: 1.3;
}
.handoff-flow-step-h.is-current b { color: #1677ff; }
.handoff-flow-step-h.is-done b { color: #475467; }
.handoff-flow-step-h.is-pending b { color: #98a2b3; }
.handoff-flow-dot {
  display: block;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #d9d9d9;
  box-shadow: 0 0 0 4px rgba(217, 217, 217, .18);
}
.handoff-flow-step-h.is-current .handoff-flow-dot {
  background: #1677ff;
  box-shadow: 0 0 0 4px rgba(22, 119, 255, .14);
}
.handoff-flow-step-h.is-done .handoff-flow-dot {
  background: #1677ff;
  opacity: .72;
}
.handoff-flow-track-line {
  flex: 0 0 24px;
  align-self: center;
  height: 2px;
  margin-top: 14px;
  background: #e4e7ec;
}
.handoff-flow-track-line.is-done { background: #91caff; }
.handoff-form-lead { margin: 0 0 10px; }
#taskActionDrawer .task-action-drawer-body .management-grid,
#taskActionDrawer .task-action-drawer-body .task-handoff-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 14px;
}
#taskActionDrawer .task-action-drawer-body .management-grid .wide,
#taskActionDrawer .task-action-drawer-body .task-handoff-form-grid .wide { grid-column: 1 / -1; }
#taskActionDrawer .task-action-drawer-body label { display: flex; flex-direction: column; gap: 6px; }
#taskActionDrawer .task-action-drawer-body label span { color: rgba(0,0,0,.65); font-size: 13px; font-weight: 500; }
#taskActionDrawer .task-action-drawer-body input,
#taskActionDrawer .task-action-drawer-body textarea,
#taskActionDrawer .task-action-drawer-body select {
  width: 100%;
  padding: 7px 10px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  font-size: 13px;
  box-sizing: border-box;
}
#taskActionDrawer .task-action-drawer-body .handoff-version-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 140px;
  gap: 10px 14px;
  align-items: end;
}
#taskActionDrawer .task-action-drawer-body .handoff-version-hint { grid-column: 1 / -1; margin: 0; }
#taskActionDrawer .task-action-drawer-body .sheet-form-intro { margin-bottom: 12px; }
#taskActionDrawer .task-action-drawer-body .td-logs-sheet { margin-top: 8px; }
#taskActionDrawer #taskActionDrawerFooter { display: block !important; }
#taskActionDrawer .task-action-drawer-body {
  position: relative;
  z-index: 1;
  overflow-x: visible;
  background: #f6f8fb;
}
#taskActionDrawer .task-action-drawer-body .task-handoff-form-grid {
  grid-template-columns: 1fr;
  gap: 14px;
}
#taskActionDrawer .task-action-drawer-body select,
#taskActionDrawer .task-action-drawer-body .handoff-status-field select {
  position: relative;
  z-index: 4;
  min-height: 38px;
  padding: 8px 32px 8px 12px;
  cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;
  appearance: none;
  pointer-events: auto;
}
#taskActionDrawer .task-action-drawer-body select:focus {
  border-color: #1677ff;
  box-shadow: 0 0 0 2px rgba(22, 119, 255, .12);
  outline: none;
}
#taskActionDrawer .task-action-drawer-body .rich-editor-shell.is-ready .CodeMirror,
#taskActionDrawer .task-action-drawer-body .rich-editor-shell.is-ready .CodeMirror-scroll {
  min-height: 168px !important;
}
#taskActionDrawer .task-action-drawer-body .rich-editor-shell.is-ready .EasyMDEContainer .CodeMirror {
  min-height: 168px;
}
#taskActionDrawer .task-action-drawer-body .sheet-mention-host.rich-editor-compose {
  min-width: 0;
}
#taskActionDrawer .task-action-drawer-body .sheet-mention-host.rich-editor-compose .rich-editor-in-compose.rich-editor-shell.is-ready .EasyMDEContainer {
  flex: 0 1 auto;
  max-height: none;
}
#taskActionDrawer .task-action-drawer-body .sheet-mention-host.rich-editor-compose .create-textarea-wrap.rich-editor-shell.is-ready {
  flex: 0 1 auto;
  overflow: hidden;
}
#taskActionDrawer .task-action-drawer-body .sheet-mention-host.rich-editor-compose .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror-scroll {
  overflow-y: auto !important;
}
#taskActionDrawer.show .task-action-drawer-body {
  padding-bottom: 80px;
}
#taskActionDrawer .task-action-drawer-body:has(.task-edit-flow) {
  background: #fff;
}
#taskActionDrawer .task-edit-flow.create-flow {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 0;
  min-width: 0;
}
#taskActionDrawer .task-edit-flow .sheet-form-intro {
  margin-bottom: 0;
}
#taskActionDrawer .task-edit-flow .create-hero-title {
  padding: 0 2px;
}
#taskActionDrawer .task-edit-flow .create-hero-input {
  width: 100%;
  padding: 8px 2px 6px;
  border: 0;
  border-bottom: 1px solid #e3eaf2;
  border-radius: 0;
  font-size: 20px;
  font-weight: 650;
  color: #102033;
  background: transparent;
  box-sizing: border-box;
}
#taskActionDrawer .task-edit-flow .create-hero-input:focus {
  outline: none;
  border-bottom-color: #9ec5ff;
  box-shadow: 0 1px 0 0 #9ec5ff;
}
#taskActionDrawer .task-edit-flow .create-meta-strip {
  padding: 12px 14px 14px;
}
#taskActionDrawer .task-edit-flow .create-meta-collab > .task-member-picker.xm-person-field {
  padding: 10px 12px;
  min-width: 0;
}
#taskActionDrawer .task-edit-flow .create-meta-collab .xm-person-field-label {
  display: block;
  margin-bottom: 6px;
  color: #6f7f92;
  font-size: 11px;
  font-weight: var(--weight-strong);
  letter-spacing: .02em;
}
#taskActionDrawer .task-edit-flow .create-meta-field select,
#taskActionDrawer .task-edit-flow .create-meta-field input[type="datetime-local"] {
  width: 100%;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid #e3eaf2;
  border-radius: 8px;
  font-size: 13px;
  box-sizing: border-box;
  background: #fff;
}
#taskActionDrawer .task-edit-desc-section.create-desc-section {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  min-height: auto;
  min-width: 0;
  overflow: visible;
}
#taskActionDrawer .task-edit-desc-section .create-textarea-wrap.rich-editor-shell {
  flex: 0 0 auto;
  min-height: auto;
  width: 100%;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  overflow: visible;
}
#taskActionDrawer .task-edit-desc-section .create-textarea-wrap.rich-editor-shell.is-ready {
  overflow: visible;
  height: auto;
  min-height: auto;
  --xm-re-btn-size: 26px;
  --xm-re-icon-size: 16px;
  --xm-re-btn-radius: 6px;
}
#taskActionDrawer .task-edit-desc-section .create-textarea-wrap.rich-editor-shell.is-ready .EasyMDEContainer {
  flex: 0 0 auto;
  min-height: auto;
  height: auto;
  overflow: visible;
  border: 0;
  box-shadow: none;
}
#taskActionDrawer .task-edit-desc-section .create-textarea-wrap.rich-editor-shell.is-ready .editor-toolbar {
  flex: 0 0 auto;
  min-height: 0;
  padding: 2px 6px;
  gap: 0 1px;
}
#taskActionDrawer .task-edit-desc-section .create-textarea-wrap.rich-editor-shell.is-ready .editor-toolbar button {
  pointer-events: auto;
}
#taskActionDrawer .task-edit-desc-section .create-textarea-wrap.rich-editor-shell.is-ready .create-desc-toolbar {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-top: 1px solid #edf2f8;
  background: #fff;
}
#taskActionDrawer .task-edit-desc-section .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror {
  flex: 0 1 auto;
  min-height: 0 !important;
  display: block;
}
#taskActionDrawer .task-edit-desc-section .create-textarea-wrap.rich-editor-shell.is-ready .CodeMirror-scroll {
  flex: 0 0 auto;
  min-height: 88px !important;
  overflow-y: auto !important;
}
#taskActionDrawer .task-action-drawer-footer {
  flex-shrink: 0;
}
#taskActionDrawer.show .task-action-drawer-footer {
  position: fixed;
  right: var(--task-drawer-compact-width, 0px);
  bottom: 0;
  width: var(--task-action-panel-width, var(--panel-width));
  max-width: var(--task-action-panel-width, var(--panel-width));
  z-index: 10120;
  pointer-events: auto;
  box-sizing: border-box;
  background: #fff;
}
body.has-notification-drawer.has-task-drawer #taskActionDrawer.show .task-action-drawer-footer {
  right: calc(var(--task-drawer-compact-width) + var(--panel-width));
}
#taskActionDrawer .task-action-drawer-footer-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: 12px 18px 16px;
  border-top: 1px solid #dce5ef;
  background: #fff;
  box-shadow: 0 -8px 22px rgba(15, 35, 62, .045);
}
#taskActionDrawer .task-action-drawer-footer-main {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
}
#taskActionDrawer .task-action-btn {
  height: 40px;
  min-height: 40px;
  padding: 0 18px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .15s ease;
}
#taskActionDrawer .task-action-btn:active {
  transform: translateY(1px);
}
#taskActionDrawer .task-action-btn-cancel {
  flex: 0 0 96px;
  border: 1px solid #d9dee8;
  color: #4e5969;
  background: #fff;
}
#taskActionDrawer .task-action-btn-cancel:hover {
  border-color: #b8c0cc;
  color: #1d2129;
  background: #f7f8fa;
}
#taskActionDrawer .task-action-btn-save {
  flex: 1;
  min-width: 0;
  border: 0;
  color: #fff;
  background: linear-gradient(180deg, #3c9cff 0%, #1677ff 100%);
  box-shadow: 0 4px 12px rgba(22, 119, 255, .28);
}
#taskActionDrawer .task-action-btn-save:hover {
  background: linear-gradient(180deg, #2f90ff 0%, #0958d9 100%);
  box-shadow: 0 6px 16px rgba(22, 119, 255, .34);
}

/* AI 洞察面板 */
.xm-ai-panel {
  border: 1px solid #d9e6f2;
  background: linear-gradient(180deg, #f7fbff 0%, #fff 44%);
  box-shadow: 0 8px 24px rgba(25, 45, 78, .06);
}
.xm-ai-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 18px;
  margin-right: 6px;
  padding: 0 6px;
  border-radius: 999px;
  background: linear-gradient(135deg, #155eef, #4f9cf9);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  vertical-align: middle;
}
.xm-ai-body { padding: 0 15px 14px; }
.xm-ai-head {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.xm-ai-mode-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
}
.xm-ai-mode-tag.is-llm { color: #0958d9; background: #e6f4ff; }
.xm-ai-mode-tag.is-rules { color: #8a5a00; background: #fff8df; }
.xm-ai-time, .xm-ai-cache { color: #8b98a8; font-size: 11px; }
.xm-ai-scope { margin: 0 0 10px; color: #64748b; font-size: 12px; line-height: 1.5; }
.xm-ai-advisor-hint {
  margin: 0 0 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #fffbf5;
  border: 1px dashed #e8d5b5;
  color: #92400e;
  font-size: 12px;
  line-height: 1.5;
}
.xm-ai-advisor-hint--compact {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #8b98a8;
  font-size: 12px;
}
.xm-ai-brief-shell.is-brief .xm-ai-content { margin-top: 2px; }
.xm-ai-head--brief {
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px dashed #e8eef5;
}
.xm-ai-scope--head {
  margin-left: auto;
  max-width: min(420px, 48%);
  text-align: right;
  color: #64748b;
  font-size: 11px;
  line-height: 1.45;
}
.xm-ai-brief-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.4fr) minmax(0, 0.6fr);
  gap: 14px;
  align-items: start;
  min-width: 0;
}
.xm-ai-brief-main {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.xm-ai-brief-lead { flex: 1; }
.xm-ai-brief-kpi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.xm-ai-brief-side {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.xm-ai-brief-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  min-width: 0;
}
.xm-ai-brief-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(18, 45, 82, .03);
}
.xm-ai-brief-card--projects { border-top: 3px solid #69b1ff; }
.xm-ai-brief-card--risk { border-top: 3px solid #ffa39e; }
.xm-ai-brief-card--decision { border-top: 3px solid #95de64; }
.xm-ai-brief-card--action { border-top: 3px solid #1677ff; }
.xm-ai-stats-card-icon.is-project { background: #e6f4ff; color: #0958d9; }
.xm-ai-stats-card-icon.is-risk { background: #fff1f0; color: #cf1322; }
.xm-ai-stats-card-icon.is-decision { background: #f6ffed; color: #389e0d; }
.xm-ai-stats-card-icon.is-action { background: #e6f4ff; color: #0958d9; }
.xm-ai-project-panel {
  max-height: 300px;
  overflow-y: auto;
  padding: 8px 10px 12px;
}
.xm-ai-project-group + .xm-ai-project-group { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #edf2f7; }
.xm-ai-project-group h5 {
  margin: 0 0 8px;
  padding: 0 2px;
  color: #607086;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.02em;
}
.xm-ai-project-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.xm-ai-project-card {
  padding: 10px 10px 9px;
  border: 1px solid #edf2f7;
  border-radius: 10px;
  background: #fcfdff;
}
.xm-ai-project-card.is-warn { border-color: #ffd8bf; background: #fffaf5; }
.xm-ai-project-card.is-good { border-color: #d9f7be; background: #fafff5; }
.xm-ai-project-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 6px;
  min-width: 0;
}
.xm-ai-project-card-head b {
  min-width: 0;
  color: #12233c;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.xm-ai-project-badge {
  flex-shrink: 0;
  padding: 1px 6px;
  border-radius: 999px;
  background: #fff2e8;
  color: #d46b08;
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
}
.xm-ai-project-card-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 6px;
  color: #8aa0b8;
  font-size: 10px;
}
.xm-ai-project-track {
  height: 4px;
  margin-top: 8px;
  border-radius: 999px;
  background: #eef2f7;
  overflow: hidden;
}
.xm-ai-project-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #69b1ff, #1677ff);
}
.xm-ai-project-card.is-warn .xm-ai-project-track > span { background: linear-gradient(90deg, #ffc069, #fa8c16); }
.xm-ai-project-card.is-good .xm-ai-project-track > span { background: linear-gradient(90deg, #95de64, #52c41a); }
.xm-ai-brief-owner {
  display: block;
  margin-top: 2px;
  color: #1677ff;
  font-size: 11px;
  font-style: normal;
}
@media (max-width: 1200px) {
  .xm-ai-brief-layout { grid-template-columns: 1fr; }
  .xm-ai-brief-cards { grid-template-columns: 1fr; }
  .xm-ai-scope--head { max-width: none; margin-left: 0; text-align: left; }
}
@media (max-width: 640px) {
  .xm-ai-project-grid { grid-template-columns: 1fr; }
}
.xm-ai-tags--employee { margin: -2px 0 12px; }
.xm-ai-item-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}
.xm-ai-item-actions .text-button { margin-top: 0; padding-left: 0; }
.xm-ai-summary {
  margin: 0 0 12px;
  color: #334155;
  font-size: 13px;
  line-height: 1.65;
}
.xm-ai-block { margin-top: 12px; }
.xm-ai-block h4 {
  margin: 0 0 8px;
  color: #13243a;
  font-size: 12px;
  font-weight: 700;
}
.xm-ai-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.xm-ai-list li {
  padding: 10px 12px;
  border: 1px solid #edf2f7;
  border-radius: 10px;
  background: #fff;
}
.xm-ai-list li b { display: block; color: #13243a; font-size: 13px; margin-bottom: 4px; }
.xm-ai-list li small { display: block; color: #64748b; font-size: 12px; line-height: 1.5; }
.xm-ai-list li em { display: block; margin-top: 4px; color: #1677ff; font-style: normal; font-size: 12px; }
.xm-ai-list li .text-button { margin-top: 6px; padding-left: 0; }
.xm-ai-level-high { border-left: 3px solid #f56c6c; }
.xm-ai-level-medium { border-left: 3px solid #e6a23c; }
.xm-ai-level-low { border-left: 3px solid #67c23a; }
.xm-ai-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.xm-ai-tag {
  padding: 3px 8px;
  border-radius: 999px;
  background: #f0f5ff;
  color: #1d4ed8;
  font-size: 11px;
}
.xm-ai-block--priority .xm-ai-list { gap: 10px; }
.xm-ai-top-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  padding: 12px;
  border-color: #dfe8f3;
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  box-shadow: 0 1px 2px rgba(15, 35, 62, 0.04);
}
.xm-ai-top-item.xm-ai-level-high { border-left-color: #f56c6c; background: linear-gradient(180deg, #fffafa 0%, #fff 100%); }
.xm-ai-top-item.xm-ai-level-medium { border-left-color: #e6a23c; background: linear-gradient(180deg, #fffbf4 0%, #fff 100%); }
.xm-ai-top-item.xm-ai-level-low { border-left-color: #67c23a; }
.xm-ai-rank {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #1677ff;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.xm-ai-top-main { min-width: 0; }
.xm-ai-top-main b {
  overflow-wrap: anywhere;
  line-height: 1.35;
}
.xm-ai-top-action {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  min-width: 58px;
}
.xm-ai-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 0 0 6px;
}
.xm-ai-meta-row span {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 1px 7px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #52647a;
  font-size: 11px;
  line-height: 1.35;
}
.xm-ai-loading { color: #64748b; font-size: 13px; padding: 8px 0 12px; }
.xm-ai-error { color: #cf1322; }
.xm-ai-stale-note {
  margin: 0 0 8px;
  padding: 6px 10px;
  border-radius: 8px;
  background: #fff7e6;
  border: 1px solid #ffe7ba;
  color: #ad6800;
  font-size: 12px;
  line-height: 1.45;
}
.xm-ai-callout {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #fff7e6;
  color: #ad6800;
  font-size: 12px;
  line-height: 1.55;
}
.td-sec-ai {
  margin-top: 4px;
  padding-top: 0;
  border-top: none;
}
.td-ai-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  min-width: 0;
}
@media (min-width: 720px) {
  .td-ai-shell {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
  }
}
#taskDrawer.has-subtask-panel .td-ai-shell,
#taskDrawer.has-action-panel .td-ai-shell {
  grid-template-columns: minmax(0, 1fr);
}
.td-ai-card {
  min-width: 0;
  border: 1px solid #e8eef5;
  border-radius: 14px;
  background: linear-gradient(180deg, #fafcff 0%, #fff 48%);
  box-shadow: 0 4px 16px rgba(15, 35, 62, 0.04);
  overflow: hidden;
}
.td-ai-card-coach {
  background: linear-gradient(180deg, #f6ffed 0%, #fff 52%);
  border-color: #d9f7be;
}
.td-ai-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px 10px;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  background: rgba(255, 255, 255, 0.72);
}
.td-ai-card-head h4 {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 650;
  color: #13243a;
}
.td-ai-card-body {
  padding: 12px 14px 14px;
  min-width: 0;
}
.td-ai-card-body .td-coach-hint,
.td-ai-card-body .create-cc-hint {
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.55;
  color: #64748b;
}
.td-ai-card-body .empty-tip,
.td-ai-card-body .xm-ai-loading {
  margin: 0;
  font-size: 13px;
}
.td-ai-card-body .xm-ai-summary {
  margin: 0 0 8px;
  font-size: 13px;
  line-height: 1.6;
}
.td-ai-card-body .xm-ai-block { margin-top: 10px; }
.td-ai-card-body .xm-ai-block:first-child { margin-top: 0; }
.td-ai-card-body .xm-ai-block h4 {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #8aa0b8;
}
.td-ai-card-body .xm-ai-list li {
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(15, 23, 42, 0.06);
}
.td-ai-advisor-actions {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 10px;
  border: 1px solid #d8e6f3;
  border-radius: 10px;
  background:
    linear-gradient(135deg, rgba(21, 94, 239, .06) 0%, rgba(15, 118, 110, .06) 100%),
    #fff;
}
.td-ai-advisor-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.td-ai-advisor-copy span {
  color: #18304f;
  font-size: 12px;
  font-weight: 800;
}
.td-ai-advisor-copy small {
  color: #52647a;
  font-size: 12px;
  line-height: 1.45;
}
.td-ai-advisor-action-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.td-ai-advisor-action {
  display: grid;
  gap: 2px;
  min-width: 0;
  min-height: 52px;
  padding: 8px 10px;
  border: 1px solid #c9d9ea;
  border-radius: 8px;
  color: #1f3858;
  background: rgba(255, 255, 255, .9);
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease, transform .15s ease;
}
.td-ai-advisor-action b,
.td-ai-advisor-action span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.td-ai-advisor-action b {
  color: #13243a;
  font-size: 12px;
  line-height: 1.3;
}
.td-ai-advisor-action span {
  color: #5b6f87;
  font-size: 11px;
  line-height: 1.35;
}
.td-ai-advisor-action:hover,
.td-ai-advisor-action:focus-visible {
  border-color: rgba(21, 94, 239, .46);
  background: #f4f8ff;
  box-shadow: 0 8px 18px rgba(21, 94, 239, .1);
  transform: translateY(-1px);
  outline: none;
}
.td-ai-card-body .coach-drafts,
.td-ai-card-body .coach-deployed-success {
  margin-top: 2px;
}
.td-ai-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.td-ai-title h4 { margin: 0; display: flex; align-items: center; gap: 4px; }
.td-ai-actions { display: flex; align-items: center; gap: 8px; }
.td-ai-body { padding-bottom: 8px; }
.xm-role-panel[data-role-panel="employee"] .xm-metrics-panel { margin-bottom: 12px; }

/* Employee home — compact 3-tier layout (KPI → focus → projects) */
.xm-employee-home {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  width: 100%;
  align-self: stretch;
}
.xm-employee-home > .xm-employee-kpi-row,
.xm-employee-home > .xm-employee-action-row,
.xm-employee-home > .xm-employee-insight-row {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.xm-employee-kpi-row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  padding: 0;
  margin: 0;
}
.xm-employee-kpi-row > article {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 64px;
  padding: 8px 12px;
  border: 1px solid #dbe6f2;
  border-radius: 10px;
  background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
  box-shadow: 0 4px 14px rgba(15, 35, 62, .04);
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.xm-employee-kpi-row > article:hover {
  border-color: rgba(21, 94, 239, .35);
  box-shadow: 0 8px 20px rgba(21, 94, 239, .08);
  transform: translateY(-1px);
}
.xm-employee-kpi-row > article > span.xm-metric-icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  background-size: 18px;
}
.xm-employee-kpi-row > article > div > b {
  font-size: 20px;
  line-height: 1.1;
}
.xm-employee-kpi-row > article > div > span.xm-metric-label {
  font-size: 12px;
}
.xm-employee-kpi-row > article > div > small {
  font-size: 10px;
}
.xm-employee-action-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
}
.xm-employee-insight-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
}
@media (min-width: 900px) {
  .xm-employee-action-row {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 0.92fr);
  }
  .xm-employee-insight-row {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr) minmax(0, 1fr);
  }
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-action-row > .xm-panel,
.xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row > .xm-panel {
  align-self: stretch;
  height: 100%;
  min-height: 0;
  max-height: none;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-action-row > .xm-panel > .xm-panel-title,
.xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row > .xm-panel > .xm-panel-title {
  flex-shrink: 0;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-action-row .xm-priority-list,
.xm-role-panel[data-role-panel="employee"].active .xm-employee-action-row .xm-list-body,
.xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row .xm-list-body,
.xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row #employeeNoticeCenter,
.xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row #employeeTeamActivity {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-action-row .dash-scroll-host > .empty-tip,
.xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row .dash-scroll-host > .empty-tip {
  margin: 0;
  padding: 14px 12px;
  text-align: center;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row .xm-efficiency-panel {
  min-height: 0;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row .xm-efficiency-panel #employeeEfficiency {
  flex-shrink: 0;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row .xm-chart-block-employee {
  flex: 1 1 auto;
  min-height: 72px;
  display: flex;
  align-items: stretch;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row .xm-chart-block-employee .xm-chart-main {
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row .xm-chart-block-employee .xm-week-chart {
  flex: 1;
  min-height: 64px;
}
.xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row .xm-chart-block-employee .xm-week-chart svg {
  height: 100%;
  min-height: 64px;
}
.xm-employee-insight-row .xm-efficiency-panel #employeeEfficiency {
  padding: 0 12px 4px;
}
.xm-employee-insight-row .xm-efficiency-panel .xm-efficiency.xm-efficiency-insight {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding: 0;
}
.xm-employee-insight-row .xm-efficiency-panel .xm-efficiency.xm-efficiency-insight article {
  padding: 6px 8px;
  border-radius: 8px;
  background: #f4f8ff;
}
.xm-chart-block-employee {
  margin: 0 12px 10px;
  min-height: 0;
}
.xm-chart-block-employee .xm-chart-y-axis {
  height: 72px;
  margin-bottom: 18px;
  font-size: 9px;
}
.xm-chart-block-employee .xm-week-chart,
.xm-chart-block-employee .xm-week-chart svg {
  height: 72px;
}
.xm-chart-block-employee .xm-chart-axis {
  padding-top: 4px;
  font-size: 9px;
}
@media (max-width: 980px) {
  .xm-employee-kpi-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xm-employee-kpi-row > article:nth-child(5) {
    grid-column: 1 / -1;
  }
  .xm-role-panel[data-role-panel="employee"].active .xm-employee-action-row > .xm-panel,
  .xm-role-panel[data-role-panel="employee"].active .xm-employee-insight-row > .xm-panel {
    height: auto;
  }
  #dashboardView.view.active:has(.xm-role-panel[data-role-panel="employee"].active) .xm-home-main {
    overflow-y: auto;
  }
}
/* Desktop: employee home fills viewport below greeting / AI */
@media (min-width: 900px) and (min-height: 720px) {
  .xm-role-panel[data-role-panel="employee"].active {
    flex: 1;
    min-height: 0;
    overflow: hidden;
  }
  .xm-employee-home {
    flex: 1;
    min-height: 0;
    height: 100%;
  }
  .xm-employee-kpi-row {
    flex-shrink: 0;
  }
  .xm-employee-action-row {
    flex: 1.05;
    min-height: 0;
  }
  .xm-employee-insight-row {
    flex: 1;
    min-height: 0;
  }
  .xm-employee-home .xm-panel-title {
    padding: 11px 14px 8px;
    min-height: 44px;
    box-sizing: border-box;
  }
  .xm-employee-home .xm-panel-title h3 {
    font-size: 14px;
  }
}
@media (min-width: 900px) and (min-height: 720px) and (max-height: 1080px) {
  .xm-employee-home {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--vp-dash-row-gap, 8px);
  }
  .xm-employee-action-row,
  .xm-employee-insight-row {
    flex: unset;
  }
}
.xm-ai-panel-stats { margin-bottom: 14px; }
.eff-card-ai {
  border: 1px solid #dbe6f2;
  border-radius: 12px;
  background: linear-gradient(135deg, #f8fbff 0%, #fff 52%, #f6fffe 100%);
  box-shadow: 0 8px 24px rgba(15, 35, 62, 0.05);
}
.eff-card-ai .xm-ai-stats-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid #edf2f7;
}
.eff-card-ai .xm-ai-stats-panel-head h3 {
  display: flex;
  align-items: center;
  margin: 0;
  font-size: 15px;
}
.eff-ai-panel-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.eff-card-ai.is-eff-ai-collapsed .xm-ai-body--stats { display: none !important; }
.eff-card-ai.is-eff-ai-collapsed [data-ai-eff-refresh] { display: none; }
.eff-card-ai:not(.is-eff-ai-collapsed) .eff-ai-collapsed-hint { display: none; }
.eff-ai-collapsed-hint {
  margin: 0;
  padding: 10px 16px 12px;
  border-top: 1px dashed #e8eef5;
  font-size: 13px;
  line-height: 1.5;
  color: #64748b;
}
.eff-ai-collapsed-hint p { margin: 0; }
.xm-ai-body--stats { padding: 12px 16px 14px; }
.xm-ai-stats-shell { min-width: 0; }
.xm-ai-head--stats {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dashed #e8eef5;
}
.xm-ai-stats-scope {
  margin-left: auto;
  color: #64748b;
  font-size: 11px;
}
.xm-ai-stats-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
  min-width: 0;
}
.xm-ai-stats-layout--loading {
  display: block;
  min-height: 120px;
}
.xm-ai-stats-columns {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, 0.88fr);
  gap: 12px;
  align-items: stretch;
  min-height: 260px;
  min-width: 0;
}
.xm-ai-stats-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  height: 100%;
}
.xm-ai-stats-kpi {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.xm-ai-stats-kpi article {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 92px;
  padding: 12px 14px;
  border: 1px solid #dbe6f2;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 6px 16px rgba(15, 35, 62, 0.045);
}
.xm-ai-stats-kpi article > span {
  display: block;
  color: #64748b;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.01em;
}
.xm-ai-stats-kpi article > b {
  display: block;
  margin-top: 6px;
  color: #101828;
  font-size: 24px;
  line-height: 1.1;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.xm-ai-stats-kpi article > b em {
  font-size: 14px;
  font-style: normal;
  font-weight: 650;
  color: #64748b;
}
.xm-ai-stats-kpi article > small {
  display: block;
  margin-top: auto;
  padding-top: 6px;
  color: #94a3b8;
  font-size: 11px;
}
.xm-ai-stats-kpi article[data-tone="blue"] { border-color: #bfdbfe; background: linear-gradient(180deg, #eff6ff 0%, #fff 100%); }
.xm-ai-stats-kpi article[data-tone="green"] { border-color: #bbf7d0; background: linear-gradient(180deg, #f0fdf4 0%, #fff 100%); }
.xm-ai-stats-kpi article[data-tone="cyan"] { border-color: #99f6e4; background: linear-gradient(180deg, #f0fdfa 0%, #fff 100%); }
.xm-ai-stats-kpi article[data-tone="red"] { border-color: #fecaca; background: linear-gradient(180deg, #fef2f2 0%, #fff 100%); }
.xm-ai-stats-lead {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
  padding: 14px 16px;
  border: 1px solid #dbe6f2;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 6px 16px rgba(15, 35, 62, 0.045);
}
.xm-ai-stats-title {
  margin: 0 0 8px;
  color: #101828;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
}
.xm-ai-stats-lead .xm-ai-summary {
  margin: 0 0 10px;
  color: #354761;
  font-size: 13px;
  line-height: 1.6;
}
.xm-ai-stats-highlights {
  list-style: none;
  margin: auto 0 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.xm-ai-stats-highlights li {
  position: relative;
  padding: 10px 12px 10px 28px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: linear-gradient(180deg, #f8fbff 0%, #fff 100%);
  color: #334155;
  font-size: 12px;
  line-height: 1.5;
}
.xm-ai-stats-highlights li::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 14px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #155eef;
  box-shadow: 0 0 0 3px rgba(21, 94, 239, 0.12);
}
.xm-ai-tags--stats { margin-bottom: 0; }
.stats-ai-advisor-actions {
  display: grid;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #dbe6f2;
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(21, 94, 239, .05) 0%, rgba(15, 118, 110, .06) 100%),
    #fff;
  box-shadow: 0 6px 16px rgba(15, 35, 62, 0.045);
}
.stats-ai-advisor-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.stats-ai-advisor-copy span {
  color: #18304f;
  font-size: 12px;
  font-weight: 800;
}
.stats-ai-advisor-copy small {
  color: #52647a;
  font-size: 12px;
  line-height: 1.45;
}
.stats-ai-advisor-action-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
.stats-ai-advisor-action {
  display: grid;
  gap: 2px;
  min-width: 0;
  min-height: 44px;
  padding: 7px 9px;
  border: 1px solid #c9d9ea;
  border-radius: 8px;
  color: #1f3858;
  background: rgba(255, 255, 255, .9);
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease, transform .15s ease;
}
.stats-ai-advisor-action b,
.stats-ai-advisor-action span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.stats-ai-advisor-action b {
  color: #13243a;
  font-size: 12px;
  line-height: 1.3;
}
.stats-ai-advisor-action span {
  color: #5b6f87;
  font-size: 11px;
  line-height: 1.35;
}
.stats-ai-advisor-action:hover,
.stats-ai-advisor-action:focus-visible {
  border-color: rgba(21, 94, 239, .46);
  background: #f4f8ff;
  box-shadow: 0 8px 18px rgba(21, 94, 239, .1);
  transform: translateY(-1px);
  outline: none;
}
.xm-ai-stats-side {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  min-height: 0;
  height: 100%;
}
.xm-ai-stats-card {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  border: 1px solid #dbe6f2;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 6px 16px rgba(15, 35, 62, 0.045);
}
.xm-ai-stats-card--risk { border-top: 3px solid #f87171; }
.xm-ai-stats-card--action { border-top: 3px solid #155eef; }
.xm-ai-stats-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  padding: 10px 12px;
  border-bottom: 1px solid #edf2f7;
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}
.xm-ai-stats-card-head h4 {
  margin: 0;
  flex: 1;
  color: #101828;
  font-size: 13px;
  font-weight: 700;
}
.xm-ai-stats-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  background: #fff1f0;
  color: #dc2626;
  font-size: 12px;
  font-weight: 700;
}
.xm-ai-stats-card--action .xm-ai-stats-card-icon {
  background: #eef5ff;
  color: #155eef;
}
.xm-ai-stats-count {
  padding: 2px 8px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #64748b;
  font-size: 11px;
  font-weight: 650;
}
.xm-ai-stats-list {
  list-style: none;
  margin: 0;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.xm-ai-stats-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 10px;
  border: 1px solid #e8eef5;
  border-radius: 10px;
  background: #fbfdff;
}
.xm-ai-stats-item-main { min-width: 0; flex: 1; }
.xm-ai-stats-item-main b {
  display: block;
  color: #13243a;
  font-size: 12px;
  line-height: 1.35;
  margin-bottom: 3px;
}
.xm-ai-stats-item-main p {
  margin: 0;
  color: #64748b;
  font-size: 11px;
  line-height: 1.4;
}
.xm-ai-stats-item .xm-ai-action-btn {
  flex-shrink: 0;
  margin-top: 2px;
  white-space: nowrap;
}
.xm-ai-stats-level {
  flex-shrink: 0;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  background: #f5f5f5;
  color: #8c8c8c;
}
.xm-ai-stats-item.xm-ai-level-high .xm-ai-stats-level { background: #fff1f0; color: #cf1322; }
.xm-ai-stats-item.xm-ai-level-medium .xm-ai-stats-level { background: #fff7e6; color: #d46b08; }
.xm-ai-stats-item.xm-ai-level-low .xm-ai-stats-level { background: #f6ffed; color: #389e0d; }
.xm-ai-stats-item.xm-ai-level-high { border-left: 3px solid #f56c6c; }
.xm-ai-stats-item.xm-ai-level-medium { border-left: 3px solid #e6a23c; }
.xm-ai-stats-item.xm-ai-level-low { border-left: 3px solid #67c23a; }
.xm-ai-stats-empty {
  padding: 18px 12px;
  text-align: center;
  color: #94a3b8;
  font-size: 12px;
  border: 1px dashed #e8eef5;
  border-radius: 10px;
  background: #fbfdff;
}
@media (max-width: 1200px) {
  .xm-ai-stats-kpi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1040px) {
  .xm-ai-stats-columns { grid-template-columns: 1fr; min-height: 0; }
  .xm-ai-stats-side {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xm-ai-stats-card { min-height: 200px; }
}
@media (max-width: 900px) {
  .xm-ai-stats-side { grid-template-columns: 1fr; }
  .xm-ai-stats-kpi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.xm-ai-actions-block .xm-ai-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.xm-ai-action-btn { font-weight: 600; }
.xm-ai-title-actions { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; }

/* AI 网关设置（对齐反馈接入布局） */
#settingsView .ai-gw-settings { --ai-accent: #6b4ce6; }
.ai-gw-intro {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px 24px;
  margin-bottom: 14px;
  padding: 18px 20px;
  border-color: #e8e0f5;
  background: linear-gradient(135deg, #faf8ff 0%, #f6f9ff 55%, #fbfdff 100%);
}
.ai-gw-intro-copy h4 { margin: 6px 0 8px; font-size: 18px; color: #2f4057; }
.ai-gw-intro-copy p { max-width: 640px; margin: 0; line-height: 1.6; font-size: 13px; color: #64748b; }
.ai-gw-kicker {
  margin: 0;
  color: var(--ai-accent);
  font-size: 10px;
  font-weight: var(--weight-display);
  letter-spacing: .14em;
}
.ai-gw-intro-badges { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }
.ai-gw-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border: 1px solid #dfe7f2;
  border-radius: 999px;
  background: #fff;
  color: #607086;
  font-size: 11px;
  font-weight: var(--weight-strong);
}
.ai-gw-status.is-on { border-color: #c8ebd8; background: #f0faf5; color: #138f5a; }
.ai-gw-status.is-on::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #13a06b; }
.ai-gw-status.is-warn { border-color: #ffe8c8; background: #fffaf3; color: #c97800; }
.ai-gw-metrics { margin-bottom: 14px; }
.ai-gw-subtabs { display: flex; gap: 8px; margin-bottom: 14px; }
.ai-gw-subtab {
  padding: 8px 16px;
  border: 1px solid #e8eef5;
  border-radius: 999px;
  background: #fff;
  color: #607086;
  font-size: 13px;
  font-weight: var(--weight-strong);
  cursor: pointer;
}
.ai-gw-subtab.is-active { border-color: #c4b5fd; background: #f5f0ff; color: #6b4ce6; }
.ai-gw-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.95fr) minmax(0, 1.05fr);
  gap: 14px;
  align-items: start;
}
.ai-gw-panel--readonly {
  background: linear-gradient(180deg, #fbfdff 0%, #fff 100%);
  border-style: dashed;
}
.ai-gw-layout--tenant {
  grid-template-columns: minmax(260px, 0.38fr) minmax(0, 0.62fr);
}
.ai-gw-layout-stack {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}
.ai-gw-status.is-muted {
  opacity: .9;
  border-style: dashed;
}
.ai-gw-panel {
  padding: 16px 18px;
  border: 1px solid #e8eef5;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(18,45,82,.03);
}
.ai-gw-panel-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px 16px;
  margin-bottom: 12px;
}
.ai-gw-panel-head h5 { margin: 0 0 4px; font-size: 15px; color: #2f4057; }
.ai-gw-panel-head p { margin: 0; max-width: 520px; font-size: 12px; line-height: 1.55; color: #7a8798; }
.ai-gw-panel-head--tight { margin-bottom: 10px; align-items: center; }
.ai-gw-panel-head--tight h5 { margin: 0; }
.ai-gw-panel--scroll { max-height: min(52vh, 520px); display: flex; flex-direction: column; }
.ai-gw-panel--scroll [data-ai-history-body],
.ai-gw-panel--scroll [data-ai-calls-body] { flex: 1; min-height: 0; overflow: auto; }
.ai-gw-key-tag {
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: var(--weight-strong);
  white-space: nowrap;
}
.ai-gw-key-tag.is-ok { background: #f6ffed; color: #237804; }
.ai-gw-key-tag.is-missing { background: #fff1f0; color: #cf1322; }
.ai-gw-kv { display: grid; gap: 8px; margin: 0; }
.ai-gw-kv > div {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 8px 12px;
  align-items: baseline;
  padding: 8px 0;
  border-bottom: 1px solid #f0f4f8;
  font-size: 12px;
}
.ai-gw-kv dt { margin: 0; color: #8aa0b8; font-weight: var(--weight-strong); }
.ai-gw-kv dd { margin: 0; color: #334155; word-break: break-all; }
.ai-gw-kv dd em.is-missing { color: #cf1322; font-style: normal; }
.ai-gw-env-details { margin-top: 10px; font-size: 12px; color: #64748b; }
.ai-gw-env-details summary { cursor: pointer; color: #6b4ce6; font-weight: var(--weight-strong); }
.ai-gw-env-code {
  margin: 8px 0 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: #0f172a;
  color: #e2e8f0;
  font-size: 11px;
  line-height: 1.5;
  overflow-x: auto;
}
.ai-gw-check { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; }
.ai-gw-check input { width: auto; }
.ai-gw-check--pill { padding: 6px 12px; border: 1px solid #e8eef5; border-radius: 999px; background: #fbfdff; }
.ai-gw-check--debug { display: flex; margin-top: 10px; font-size: 12px; color: #64748b; }
.ai-gw-push-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ai-gw-push-table th, .ai-gw-push-table td {
  padding: 10px 8px;
  border-bottom: 1px solid #f0f4f8;
  text-align: left;
  vertical-align: middle;
}
.ai-gw-push-table th { color: #8aa0b8; font-size: 11px; font-weight: var(--weight-strong); }
.ai-gw-push-table td b { color: #2f4057; }
.ai-gw-muted { color: #94a3b8; font-size: 12px; }
.ai-gw-toggle { display: inline-flex; cursor: pointer; }
.ai-gw-toggle input { width: auto; margin: 0; }
.ai-gw-threshold-row {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin-top: 8px;
}
.ai-gw-threshold-row--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ai-gw-threshold-row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ai-gw-field-hint.is-warn { display: block; margin-top: 6px; color: #c2410c; font-size: 11px; }
.ai-gw-threshold-section { margin-top: 14px; padding-top: 12px; border-top: 1px solid #f0f4f8; }
.ai-gw-threshold-group-title {
  margin: 12px 0 4px;
  font-size: 12px;
  font-weight: var(--weight-strong);
  color: #475569;
}
.ai-gw-threshold-group-title:first-child { margin-top: 0; }
.ai-gw-threshold-group-desc {
  margin: 0 0 8px;
  font-size: 11px;
  line-height: 1.5;
  color: #94a3b8;
}
.ai-gw-threshold-item { display: block; }
.ai-gw-threshold-label {
  display: block;
  margin-bottom: 5px;
  font-size: 12px;
  color: #334155;
  font-weight: var(--weight-strong);
}
.ai-gw-threshold-item input {
  width: 100%;
  padding: 7px 8px;
  border: 1px solid #e8eef5;
  border-radius: 8px;
  font-size: 13px;
}
.ai-gw-threshold-hint {
  display: block;
  margin-top: 5px;
  font-size: 11px;
  color: #94a3b8;
  font-style: normal;
  line-height: 1.45;
}
.ai-gw-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.ai-gw-field-grid .create-meta-wide { grid-column: 1 / -1; }
.ai-gw-field-hint {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  color: #94a3b8;
  line-height: 1.45;
}
.ai-gw-threshold-row label span {
  display: block;
  margin-bottom: 4px;
  font-size: 11px;
  color: #8aa0b8;
  font-weight: var(--weight-strong);
}
.ai-gw-threshold-row input {
  width: 100%;
  padding: 7px 8px;
  border: 1px solid #e8eef5;
  border-radius: 8px;
  font-size: 13px;
}
.ai-gw-threshold-row em {
  display: block;
  margin-top: 4px;
  font-size: 10px;
  color: #94a3b8;
  font-style: normal;
  line-height: 1.35;
}
.ai-gw-foot-hint { margin: 12px 0 0; font-size: 12px; color: var(--muted); }
.ai-gw-logs-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}
.ai-gw-status-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}
.ai-gw-badge {
  display: inline-flex;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
}
.ai-gw-badge.is-ready { color: #237804; background: #f6ffed; }
.ai-gw-badge.is-demo { color: #ad6800; background: #fff7e6; }
.ai-gw-badge.is-off { color: #cf1322; background: #fff1f0; }
.ai-gw-url, .ai-gw-key { font-size: 11px; color: var(--muted); }
.ai-gw-key.is-missing { color: #cf1322; }
.ai-gw-grid { margin-top: 10px; }
.ai-gw-check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
}
.ai-gw-check input { width: auto; }
.ai-gw-hint { margin-top: 10px; font-size: 12px; color: var(--muted); }
.ai-gw-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.ai-gw-stat {
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  text-align: center;
}
.ai-gw-stat b { display: block; font-size: 20px; color: #13243a; }
.ai-gw-stat small { color: var(--muted); font-size: 11px; }
.ai-gw-mini-block { margin-top: 12px; }
.ai-gw-mini-block h5 { margin: 0 0 6px; font-size: 12px; }
.ai-gw-mini-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ai-gw-mini-list li {
  padding: 4px 8px;
  border-radius: 6px;
  background: #f4f7fb;
  font-size: 11px;
}
.ai-gw-history-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.ai-gw-history-tab.is-active {
  border-color: #6b4ce6;
  color: #6b4ce6;
  background: #f5f0ff;
}
.ai-gw-history-row {
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.ai-gw-history-row header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  color: var(--muted);
}
.ai-gw-history-row h5 { margin: 6px 0 4px; font-size: 13px; }
.ai-gw-history-row p { margin: 0; font-size: 12px; color: #475569; line-height: 1.55; }
.ai-gw-history-role {
  padding: 1px 6px;
  border-radius: 4px;
  background: #eef2ff;
  color: #3730a3;
  font-weight: 600;
}
.ai-gw-history-viewer {
  padding: 1px 6px;
  border-radius: 4px;
  background: #fff7e6;
  color: #ad6800;
  font-weight: 600;
}
.ai-gw-inline-check { margin-left: 4px; }
.ai-gw-viewer-filter {
  min-width: 120px;
  padding: 6px 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font-size: 12px;
}
.fb-ai-triage { margin-top: 0; }
.fb-ai-advisor-actions {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 10px;
  border: 1px solid #d8e6f3;
  border-radius: 10px;
  background:
    linear-gradient(135deg, rgba(15, 118, 110, .07) 0%, rgba(21, 94, 239, .06) 100%),
    #fff;
}
.fb-ai-advisor-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.fb-ai-advisor-copy span {
  color: #18304f;
  font-size: 12px;
  font-weight: 800;
}
.fb-ai-advisor-copy small {
  color: #52647a;
  font-size: 12px;
  line-height: 1.45;
}
.fb-ai-advisor-action-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.fb-ai-advisor-action {
  display: grid;
  gap: 2px;
  min-width: 0;
  min-height: 52px;
  padding: 8px 10px;
  border: 1px solid #c9d9ea;
  border-radius: 8px;
  color: #1f3858;
  background: rgba(255, 255, 255, .9);
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease, transform .15s ease;
}
.fb-ai-advisor-action.is-primary {
  border-color: rgba(15, 118, 110, .34);
  background: #ecfdf3;
}
.fb-ai-advisor-action b,
.fb-ai-advisor-action span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.fb-ai-advisor-action b {
  color: #13243a;
  font-size: 12px;
  line-height: 1.3;
}
.fb-ai-advisor-action span {
  color: #5b6f87;
  font-size: 11px;
  line-height: 1.35;
}
.fb-ai-advisor-action:hover,
.fb-ai-advisor-action:focus-visible {
  border-color: rgba(21, 94, 239, .46);
  background: #f4f8ff;
  box-shadow: 0 8px 18px rgba(21, 94, 239, .1);
  transform: translateY(-1px);
  outline: none;
}
.ai-gw-calls-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 0;
  padding-top: 10px;
  border-top: 1px solid #eef2f6;
}
.ai-gw-panel-head--audit {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: stretch;
}
.ai-gw-panel-head-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.ai-gw-panel-head-top h5 {
  margin: 0;
}
.ai-gw-calls-stats {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ai-gw-calls-stat-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}
.ai-gw-calls-stat-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.ai-gw-calls-stat-card:hover {
  border-color: rgba(21, 94, 239, 0.28);
  background: #f8fbff;
}
.ai-gw-calls-stat-card.is-active {
  border-color: rgba(21, 94, 239, 0.42);
  background: linear-gradient(180deg, #f8fbff 0%, #eef5ff 100%);
  box-shadow: 0 4px 12px rgba(21, 94, 239, 0.08);
}
.ai-gw-calls-stat-label {
  font-size: 11px;
  font-weight: 700;
  color: #64748b;
  letter-spacing: 0.02em;
}
.ai-gw-calls-stat-calls {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.1;
  color: #101828;
}
.ai-gw-calls-stat-calls small {
  margin-left: 2px;
  font-size: 11px;
  font-weight: 650;
  color: #94a3b8;
}
.ai-gw-calls-stat-tokens {
  font-size: 13px;
  font-weight: 650;
  color: #155eef;
}
.ai-gw-calls-stat-tokens small {
  font-size: 10px;
  font-weight: 600;
  color: #64748b;
}
.ai-gw-calls-stat-detail {
  font-size: 10px;
  line-height: 1.4;
  color: #94a3b8;
}
.ai-gw-calls-models {
  padding: 10px 12px;
  border: 1px solid #eef2f6;
  border-radius: 10px;
  background: #fafbfd;
}
.ai-gw-calls-models-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.ai-gw-calls-models-head h6 {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  color: #334155;
}
.ai-gw-calls-models-scope {
  font-size: 11px;
  color: #94a3b8;
}
.ai-gw-calls-model-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ai-gw-calls-model-chip {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 8px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid #e8eef5;
}
.ai-gw-calls-model-name {
  font-size: 12px;
  font-weight: 700;
  color: #101828;
  word-break: break-all;
}
.ai-gw-calls-model-meta {
  flex-shrink: 0;
  font-size: 11px;
  color: #64748b;
  white-space: nowrap;
}
.ai-gw-calls-filters select {
  padding: 6px 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font-size: 12px;
}
.ai-gw-calls-table-wrap { overflow-x: auto; margin-top: 8px; }
.ai-gw-calls-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.ai-gw-calls-table th,
.ai-gw-calls-table td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  white-space: nowrap;
}
.ai-gw-calls-table td.is-ok { color: #237804; }
.ai-gw-calls-table td.is-err { color: #cf1322; }
.ai-gw-calls-nav {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
  font-size: 12px;
  color: var(--muted);
}
.fb-ai-triage-tag { background: #f5f0ff !important; color: #6b4ce6 !important; }
#feedbackView .fb-aside-cta { display: flex; flex-direction: column; gap: 8px; }

/* 蜜谋士 · 现代浮动聊天 */
.ai-advisor-float {
  --ai-accent: #1677ff;
  --ai-accent-2: #6366f1;
  --ai-surface: #ffffff;
  --ai-bg: #f4f6f9;
  --ai-text: #0f172a;
  --ai-muted: #64748b;
  --ai-line: rgba(15, 23, 42, 0.08);
  --ai-float-w: 420px;
  --ai-float-h: 480px;
  max-height: calc(100vh - 96px);
  position: fixed;
  right: var(--ai-advisor-float-x, 48px);
  bottom: var(--ai-advisor-float-y, 48px);
  z-index: 55;
  width: var(--ai-float-w);
  height: var(--ai-float-h);
  display: none;
  flex-direction: column;
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid var(--ai-line);
  background: var(--ai-surface);
  box-shadow: 0 24px 64px -16px rgba(15, 23, 42, 0.22), 0 0 0 1px rgba(255, 255, 255, 0.6) inset;
  opacity: 0;
  transform: scale(0.97) translateY(12px);
  transform-origin: bottom right;
  transition: opacity 0.22s ease, transform 0.26s cubic-bezier(0.22, 1, 0.36, 1), width 0.24s ease, height 0.24s ease;
  font-family: inherit;
}
.ai-advisor-float.is-resizing { transition: none !important; }
.ai-advisor-float.is-expanded:not(.is-custom-size):not(.is-beeai-expanded) {
  --ai-float-w: clamp(420px, 42vw, 520px);
  --ai-float-h: min(calc(100vh - 48px), 680px);
}
.ai-advisor-float.is-custom-size {
  width: var(--ai-float-w);
  height: var(--ai-float-h);
}
.ai-advisor-float.show { display: flex !important; opacity: 1; transform: scale(1) translateY(0); }
.ai-advisor-float.is-dragging { transition: none; }
.ai-advisor-shell { flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: hidden; background: var(--ai-bg); }

.ai-chat-header {
  display: grid;
  grid-template-columns: 36px 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--ai-line);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  flex-shrink: 0;
}
.ai-chat-header-center {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  cursor: grab;
  text-align: center;
}
.ai-advisor-float.is-dragging .ai-chat-header-center { cursor: grabbing; }
.ai-chat-header-brand-mini { display: flex; align-items: center; justify-content: center; }
.ai-advisor-float.is-beeai-expanded .ai-chat-header-brand-mini { display: none; }
.ai-chat-header-brand-mini .ai-chat-mark {
  display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px;
  background: linear-gradient(135deg, #36cfc9 0%, #4096ff 52%, #7724ea 100%); color: #fff;
}
.ai-chat-session-title {
  margin: 0;
  font-size: 14px;
  font-weight: 650;
  color: var(--ai-text);
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: min(280px, 100%);
}
.ai-chat-brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ai-chat-mark {
  display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px;
  background: linear-gradient(135deg, #36cfc9 0%, #4096ff 52%, #7724ea 100%); color: #fff; flex-shrink: 0;
  line-height: 0;
}
.ai-chat-mark svg { display: block; width: 21px; height: 21px; flex-shrink: 0; }
.ai-chat-brand-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.ai-chat-title { font-size: 14px; font-weight: 650; color: var(--ai-text); letter-spacing: -0.01em; }
.ai-chat-subtitle { font-size: 11px; color: var(--ai-muted); }
.ai-chat-header-actions { display: flex; align-items: center; gap: 2px; flex-shrink: 0; }
.ai-advisor-float.is-beeai-expanded .ai-header-sheet-btn { display: none; }
.ai-icon-btn {
  display: grid; place-items: center; width: 32px; height: 32px; padding: 0;
  border: none; border-radius: 10px; background: transparent; color: var(--ai-muted); cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.ai-icon-btn:hover { background: rgba(22, 119, 255, 0.08); color: var(--ai-accent); }
.ai-icon-btn-close:hover { background: rgba(255, 77, 79, 0.08); color: #ff4d4f; }
.ai-icon-btn[aria-pressed="true"] { background: rgba(22, 119, 255, 0.12); color: var(--ai-accent); }
.ai-advisor-resize-handles {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}
.ai-advisor-resize-handles .ai-advisor-resize-handle {
  position: absolute;
  padding: 0;
  border: none;
  background: transparent;
  touch-action: none;
  pointer-events: auto;
  display: none;
}
.ai-advisor-resize-handle.is-edge-w {
  left: 0;
  top: 52px;
  bottom: 8px;
  width: 8px;
  cursor: ew-resize;
}
.ai-advisor-resize-handle.is-edge-e {
  right: 0;
  top: 52px;
  bottom: 8px;
  width: 8px;
  cursor: ew-resize;
}
.ai-advisor-resize-handle.is-edge-s {
  left: 8px;
  right: 8px;
  bottom: 0;
  height: 8px;
  cursor: ns-resize;
}
.ai-advisor-resize-handle.is-edge-se {
  right: 2px;
  bottom: 2px;
  width: 18px;
  height: 18px;
  border-radius: 0 0 14px 0;
  cursor: se-resize;
}
.ai-advisor-resize-handle.is-edge-se::after {
  content: "";
  position: absolute;
  right: 4px;
  bottom: 4px;
  width: 10px;
  height: 10px;
  border-right: 2px solid rgba(100, 116, 139, 0.55);
  border-bottom: 2px solid rgba(100, 116, 139, 0.55);
  border-radius: 0 0 3px 0;
  pointer-events: none;
}
.ai-advisor-resize-handle.is-edge-se:hover::after,
.ai-advisor-float.is-resizing .ai-advisor-resize-handle.is-edge-se::after {
  border-color: var(--ai-accent);
}
.ai-advisor-resize-handle.is-edge-w:hover,
.ai-advisor-resize-handle.is-edge-e:hover,
.ai-advisor-resize-handle.is-edge-s:hover {
  background: rgba(22, 119, 255, 0.08);
}

.ai-advisor-drawer-body { flex: 0 0 auto; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.ai-advisor-shell > .ai-advisor-chat-scroll {
  flex: 1 1 auto;
  min-height: 0;
  order: 2;
}
.ai-advisor-shell > .ai-advisor-drawer-body:not(:has([data-advisor-chat-scroll])) {
  display: none;
}
.ai-advisor-shell > .ai-advisor-foot {
  order: 3;
}
.ai-advisor-chat-pane:empty,
.ai-advisor-chat-pane[hidden] {
  display: none !important;
}
.ai-advisor-chat-pane {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  position: relative;
}
.ai-advisor-chat-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 20px 20px 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  background: var(--ai-bg);
  scroll-behavior: smooth;
}
.ai-advisor-float.is-beeai-expanded .ai-chat-header {
  grid-template-columns: 1fr auto;
}
.ai-advisor-float.is-beeai-expanded .ai-chat-session-title {
  max-width: min(420px, 100%);
}
.ai-advisor-foot {
  flex-shrink: 0;
  padding: 8px 12px 10px;
  background: var(--ai-bg);
  border-top: 1px solid var(--ai-line);
}
.ai-advisor-float.is-beeai-expanded .ai-advisor-foot {
  border-top: none;
  padding-top: 4px;
}
.ai-advisor-float.is-beeai-expanded {
  --beeai-chat-max-w: 768px;
  overflow: visible;
}
.ai-advisor-float.is-beeai-expanded .beeai-layout {
  overflow: hidden;
  min-height: 0;
  flex: 1;
  border-radius: inherit;
}
.ai-advisor-float.is-beeai-expanded .ai-chat-header {
  overflow: visible;
  position: relative;
  z-index: 40;
}
.ai-advisor-float.is-beeai-expanded .ai-advisor-chat-scroll {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 20px 12px 16px 20px;
}
.ai-advisor-float.is-beeai-expanded .advisor-chat-cards,
.ai-advisor-float.is-beeai-expanded .advisor-chat-thread {
  max-width: var(--beeai-chat-max-w);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.beeai-compose-toolbar .beeai-compose-tools {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.beeai-pin-editor {
  margin-top: 8px;
  padding: 8px;
  border: 1px solid var(--ai-line);
  border-radius: 10px;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.beeai-pin-editor[hidden] { display: none !important; }
.beeai-pin-editor textarea {
  width: 100%;
  min-height: 72px;
  border: 1px solid var(--ai-line);
  border-radius: 8px;
  padding: 8px;
  font: inherit;
  font-size: 12px;
  line-height: 1.45;
  resize: vertical;
}
.beeai-pin-editor-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.beeai-tool-btn.is-danger { color: #dc2626; }
.beeai-inline-sheet {
  width: min(360px, 42%);
  min-width: 280px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--ai-line);
  background: #fff;
  min-height: 0;
  overflow: hidden;
}
.beeai-inline-sheet[hidden] { display: none !important; }
.beeai-inline-sheet-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--ai-line);
  background: #fff;
  flex-shrink: 0;
}
.beeai-inline-sheet-head h3 { flex: 1; margin: 0; font-size: 14px; font-weight: 650; min-width: 0; }
.beeai-inline-sheet-close { flex-shrink: 0; }
.beeai-inline-sheet-body { flex: 1; min-height: 0; overflow-y: auto; padding: 12px; }
.ai-advisor-float.is-beeai-expanded .beeai-main-column .ai-advisor-shell.beeai-shell-has-peek-host {
  position: relative;
}
.beeai-task-peek-sheet {
  position: absolute;
  inset: 0;
  z-index: 30;
  display: flex;
  flex-direction: column;
  background: #fff;
  box-shadow: -10px 0 28px rgba(15, 23, 42, 0.1);
  border-left: 1px solid var(--ai-line);
}
.beeai-task-peek-sheet[hidden] { display: none !important; }
.beeai-task-peek-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 12px 10px;
  border-bottom: 1px solid var(--ai-line);
  background: #fff;
  flex-shrink: 0;
}
.beeai-task-peek-head-main { flex: 1; min-width: 0; }
.beeai-task-peek-id {
  display: block;
  margin-bottom: 4px;
  font-size: 11px;
  color: var(--ai-muted);
  font-variant-numeric: tabular-nums;
}
.beeai-task-peek-head h4 {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 650;
  line-height: 1.35;
  color: var(--ai-text);
}
.beeai-task-peek-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.beeai-task-peek-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 12px;
}
.beeai-task-peek-meta {
  display: grid;
  gap: 10px;
  margin: 0 0 14px;
}
.beeai-task-peek-meta div {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
}
.beeai-task-peek-meta dt {
  margin: 0;
  font-size: 11px;
  color: var(--ai-muted);
}
.beeai-task-peek-meta dd {
  margin: 0;
  font-size: 13px;
  color: var(--ai-text);
  line-height: 1.45;
}
.beeai-task-peek-desc h5 {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 650;
  color: var(--ai-muted);
}
.beeai-task-peek-desc-body {
  font-size: 13px;
  line-height: 1.55;
  color: var(--ai-text);
  white-space: pre-wrap;
}
.beeai-task-peek-foot {
  flex-shrink: 0;
  padding: 10px 12px 12px;
  border-top: 1px solid var(--ai-line);
  background: #fafbfc;
}
.advisor-insight-task-row.is-active {
  border-color: rgba(22, 119, 255, 0.45);
  background: rgba(22, 119, 255, 0.06);
}
.advisor-insight-task-row.is-active .advisor-insight-task-go {
  color: var(--ai-accent);
  font-weight: 650;
}
body.has-beeai-expanded.has-advisor-task-stack #taskDrawer.show,
body.has-beeai-expanded.has-advisor-task-stack #taskSubtaskDrawer.show,
body.has-beeai-expanded.has-advisor-task-stack #taskActionDrawer.show,
body.has-beeai-expanded.has-advisor-task-stack #taskCommentsDrawer.show,
body.has-beeai-expanded.has-advisor-task-full-open #taskDrawer.show,
body.has-beeai-expanded.has-advisor-task-full-open #taskSubtaskDrawer.show,
body.has-beeai-expanded.has-advisor-task-full-open #taskActionDrawer.show,
body.has-beeai-expanded.has-advisor-task-full-open #taskCommentsDrawer.show {
  z-index: 58;
}
.beeai-main-column {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: row;
  min-height: 0;
  overflow: hidden;
}
.beeai-main-column .ai-advisor-shell {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.ai-advisor-float.is-sidebar-collapsed .beeai-session-rail { display: none; }
.ai-advisor-float.is-sidebar-collapsed.is-beeai-expanded {
  width: min(640px, calc(100vw - 48px)) !important;
}
.beeai-context-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
}
.beeai-context-actions .beeai-context-nav-btn:nth-child(5) { grid-column: 1 / -1; }
.beeai-branch-menu { max-width: 100%; }
.beeai-branch-trigger {
  max-width: min(240px, 100%);
  line-height: 1.35;
}
.ai-chat-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 20px; padding: 24px 12px 8px; }
.ai-chat-empty[hidden] { display: none !important; }
.ai-chat-empty-hero { max-width: min(420px, 100%); }
.ai-chat-empty-mark {
  display: inline-grid; place-items: center; width: 56px; height: 56px; margin-bottom: 12px;
  border-radius: 18px; background: linear-gradient(135deg, #36cfc9 0%, #4096ff 52%, #7724ea 100%);
  color: #fff; line-height: 0;
}
.ai-chat-empty-mark svg { display: block; width: 28px; height: 28px; }
.ai-chat-empty-hero h4 { margin: 0 0 6px; font-size: 18px; font-weight: 650; color: var(--ai-text); letter-spacing: -0.02em; }
.ai-chat-empty-hero p { margin: 0; font-size: 13px; line-height: 1.55; color: var(--ai-muted); }
.ai-chat-suggestions-label {
  margin: 0;
  font-size: 11px;
  font-weight: 650;
  color: var(--ai-muted);
  letter-spacing: 0.02em;
}
.ai-chat-suggestions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; width: 100%; }
.ai-suggest-chip {
  height: 34px; padding: 0 14px; border: 1px solid var(--ai-line); border-radius: 999px;
  background: var(--ai-surface); color: var(--ai-text); font: inherit; font-size: 13px; cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}
.ai-suggest-chip:hover { border-color: rgba(22, 119, 255, 0.35); box-shadow: 0 4px 12px rgba(22, 119, 255, 0.1); transform: translateY(-1px); }
.ai-suggest-chip.is-active, .ai-suggest-chip.is-detected { border-color: var(--ai-accent); color: var(--ai-accent); background: #eef6ff; }

.advisor-chat-thread { display: flex; flex-direction: column; gap: 16px; overflow: visible; }
.advisor-msg-wrap {
  position: relative;
  align-self: flex-start;
  width: 100%;
  max-width: 100%;
  overflow: visible;
}
.advisor-msg-wrap .advisor-thread-msg.is-assistant { max-width: 100%; }
.advisor-msg-wrap .advisor-chat-card-bubble { width: 100%; }
.advisor-msg-hover-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
  padding: 0;
  opacity: 1;
  pointer-events: auto;
}
.advisor-msg-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--ai-muted);
  cursor: pointer;
  transition: background 0.12s, color 0.12s, border-color 0.12s;
}
.advisor-msg-action.is-text {
  width: auto;
  min-height: 28px;
  height: auto;
  padding: 4px 10px;
  border: 1px solid var(--ai-line);
  border-radius: 999px;
  background: #fff;
  color: #40516a;
  font: inherit;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(15, 35, 62, 0.04);
}
.advisor-msg-action:hover,
.advisor-msg-action.is-selected {
  background: rgba(15, 23, 42, 0.06);
  color: var(--ai-text);
}
.advisor-msg-action.is-text:hover,
.advisor-msg-action.is-text.is-selected {
  border-color: rgba(21, 94, 239, 0.35);
  background: rgba(21, 94, 239, 0.06);
  color: #155eef;
}
.advisor-msg-ref-hint {
  margin-left: auto;
  font-size: 11px;
  color: var(--ai-muted);
  white-space: nowrap;
}
.advisor-improve-host { margin-top: 10px; }
.advisor-improve-host[hidden] { display: none !important; }
.advisor-improve-card {
  padding: 14px 16px;
  border: 1px solid var(--ai-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}
.advisor-improve-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 12px;
}
.advisor-improve-title { font-size: 14px; font-weight: 600; color: var(--ai-text); }
.advisor-improve-close {
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--ai-muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
.advisor-improve-close:hover { background: rgba(15, 23, 42, 0.06); color: var(--ai-text); }
.advisor-improve-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.advisor-improve-tag {
  height: 30px;
  padding: 0 12px;
  border: 1px solid var(--ai-line);
  border-radius: 999px;
  background: #fff;
  color: var(--ai-text);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
  transition: border-color 0.12s, background 0.12s, color 0.12s;
}
.advisor-improve-tag:hover {
  border-color: rgba(22, 119, 255, 0.35);
  color: var(--ai-accent);
}
.advisor-improve-tag.is-selected {
  border-color: var(--ai-accent);
  background: #eef6ff;
  color: var(--ai-accent);
}
.advisor-improve-auto-regen {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--ai-muted);
  cursor: pointer;
}
.advisor-improve-auto-regen input { accent-color: var(--ai-accent); }
.advisor-improve-note {
  width: 100%;
  min-height: 56px;
  padding: 8px 10px;
  border: 1px solid var(--ai-line);
  border-radius: 10px;
  background: #fafbfc;
  font: inherit;
  font-size: 12px;
  line-height: 1.5;
  resize: vertical;
}
.advisor-improve-foot {
  display: flex;
  justify-content: flex-end;
  margin-top: 10px;
}
.advisor-improve-submit {
  min-width: 72px;
  height: 32px;
  padding: 0 16px;
  border: none;
  border-radius: 999px;
  background: var(--ai-accent);
  color: #fff;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.advisor-improve-submit:hover { filter: brightness(1.05); }
.advisor-improve-card.is-success { background: #f6ffed; border-color: #b7eb8f; }
.advisor-improve-success-text { margin: 0 0 12px; font-size: 13px; line-height: 1.55; color: #389e0d; }
.advisor-improve-foot.is-success { justify-content: flex-end; gap: 8px; }
.advisor-improve-regenerate {
  height: 32px;
  padding: 0 14px;
  border: none;
  border-radius: 999px;
  background: var(--ai-accent);
  color: #fff;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.advisor-improve-regenerate:hover { filter: brightness(1.05); }
.advisor-improve-close-text {
  height: 32px;
  padding: 0 12px;
  border: 1px solid var(--ai-line);
  border-radius: 999px;
  background: #fff;
  color: var(--ai-muted);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.advisor-memory-sheet .ai-advisor-sheet-intro { margin-bottom: 12px; }
.advisor-memory-list { display: flex; flex-direction: column; gap: 10px; }
.advisor-memory-row {
  padding: 12px 14px;
  border: 1px solid var(--ai-line);
  border-radius: 12px;
  background: #fff;
}
.advisor-memory-row-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.advisor-memory-kind {
  display: inline-flex;
  height: 22px;
  padding: 0 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 650;
}
.advisor-memory-kind.is-rejection { color: #cf1322; background: #fff1f0; }
.advisor-memory-kind.is-lesson { color: #1677ff; background: #eef6ff; }
.advisor-memory-kind.is-pattern { color: #389e0d; background: #f6ffed; }
.advisor-memory-disable {
  border: none;
  background: transparent;
  color: var(--ai-muted);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.advisor-memory-disable:hover { color: #dc2626; }
.advisor-memory-title { display: block; font-size: 14px; margin-bottom: 6px; color: var(--ai-text); }
.advisor-memory-content { margin: 0 0 8px; font-size: 12px; line-height: 1.55; color: var(--ai-muted); white-space: pre-wrap; }
.advisor-memory-meta { color: #94a3b8; font-size: 11px; }
.beeai-sidebar-memory { cursor: pointer; text-decoration: underline dotted transparent; }
.beeai-sidebar-memory:hover { color: var(--ai-accent); text-decoration-color: currentColor; }
.advisor-thinking-stream {
  width: 100%;
  max-width: 768px;
}
.advisor-thinking-panel {
  border: 1px solid var(--ai-line);
  border-radius: 12px;
  background: #f8fafc;
  overflow: hidden;
}
.advisor-thinking-panel > summary {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ai-muted);
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.advisor-thinking-panel > summary::-webkit-details-marker { display: none; }
.advisor-thinking-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ai-accent);
  animation: advisorThinkingPulse 1.2s ease-in-out infinite;
}
@keyframes advisorThinkingPulse {
  0%, 100% { opacity: 0.35; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1); }
}
.advisor-thinking-scroll {
  max-height: 220px;
  overflow: auto;
  padding: 0 12px 12px;
  border-top: 1px solid var(--ai-line);
  background: #fff;
}
.advisor-thinking-code {
  margin: 10px 0 0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
  line-height: 1.55;
  color: #64748b;
  white-space: pre-wrap;
  word-break: break-word;
}

/* BeeAI Turn Activity（Codex-lite 步骤时间线） */
.beeai-turn-activity-wrap {
  width: 100%;
  max-width: min(92%, 720px);
  margin: 4px 0 8px 40px;
  align-self: flex-start;
}
.beeai-turn-activity-wrap.is-collapsed {
  border: 1px dashed #dbe3ee;
  border-radius: 10px;
  background: #f8fafc;
  overflow: hidden;
}
.beeai-turn-activity-wrap.is-live .beeai-turn-activity {
  border-style: solid;
}
.beeai-turn-activity-summary {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 6px;
  cursor: pointer;
  padding: 7px 10px;
  font-size: 11px;
  line-height: 1.45;
  color: #64748b;
  list-style: none;
  user-select: none;
}
.beeai-turn-activity-wrap.is-collapsed > summary::-webkit-details-marker {
  display: none;
}
.beeai-turn-activity-summary-mark {
  flex-shrink: 0;
  font-size: 10px;
  opacity: 0.65;
  transition: transform .15s ease;
}
.beeai-turn-activity-wrap.is-collapsed[open] .beeai-turn-activity-summary-mark {
  transform: rotate(90deg);
}
.beeai-turn-activity-summary-text {
  min-width: 0;
  white-space: normal;
  word-break: break-word;
}
.beeai-turn-activity-body {
  padding: 0 6px 8px;
}
.beeai-turn-activity-body > .beeai-turn-activity {
  margin-top: 0;
}
.beeai-turn-activity {
  list-style: none;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid var(--ai-line);
  border-radius: 12px;
  background: linear-gradient(180deg, #fafbfd 0%, #f4f7fb 100%);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.beeai-turn-activity-row {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 4px 8px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--ai-muted);
}
.beeai-turn-activity-row.is-active {
  color: var(--ai-text);
  font-weight: 600;
}
.beeai-turn-activity-row.is-active .beeai-turn-activity-mark {
  color: #d97706;
  animation: advisorThinkingPulse 1.2s ease-in-out infinite;
}
.beeai-turn-activity-row.is-done {
  color: #64748b;
}
.beeai-turn-activity-row.is-done .beeai-turn-activity-mark {
  color: #16a34a;
}
.beeai-turn-activity-mark {
  flex-shrink: 0;
  width: 14px;
  text-align: center;
  font-size: 11px;
}
.beeai-turn-activity-icon {
  flex-shrink: 0;
  opacity: 0.55;
  font-size: 11px;
}
.beeai-turn-activity-label {
  flex-shrink: 0;
}
.beeai-turn-activity-detail {
  color: var(--ai-muted);
  font-weight: 400;
  flex: 1 1 120px;
  min-width: 0;
  white-space: normal;
  word-break: break-word;
}
.beeai-turn-activity-detail::before {
  content: "·";
  margin: 0 6px;
  opacity: 0.5;
}
.beeai-turn-activity-detail.is-clickable {
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  color: var(--ai-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.beeai-turn-activity-detail.is-clickable:hover,
.beeai-turn-activity-detail.is-clickable:focus-visible {
  color: #0958d9;
}
.beeai-turn-activity-row.is-approval-highlight,
.advisor-inline-chip.is-approval.is-linked-highlight,
.beeai-turn-activity-detail.is-linked-highlight {
  box-shadow: inset 0 0 0 1px rgba(22, 119, 255, 0.35);
}
.beeai-turn-activity-row.is-approval-highlight {
  border-radius: 8px;
  background: rgba(22, 119, 255, 0.06);
}
.advisor-inline-chip.is-approval.is-linked-highlight {
  border-color: rgba(22, 119, 255, 0.55);
  background: rgba(22, 119, 255, 0.08);
}
.advisor-artifacts-hint {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 4px 4px;
}
.advisor-artifacts-hint-text {
  font-size: 12px;
  color: var(--ai-muted);
}
.advisor-artifacts-hint-arrow {
  margin-left: 2px;
  opacity: 0.7;
}
.beeai-advisor-artifacts-host {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.beeai-advisor-artifacts-host .advisor-artifacts-tabs {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
}
.advisor-artifacts-tabbar {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  padding: 2px 2px 8px;
  border-bottom: 1px solid var(--ai-line);
}
.advisor-artifact-tab {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 14px 6px 10px;
  border: 1px solid var(--ai-line);
  border-radius: 999px;
  background: #fff;
  color: #475569;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease;
}
.advisor-artifact-tab:hover {
  border-color: #b9d6ff;
  background: #f7faff;
  color: #1677ff;
}
.advisor-artifact-tab.is-active {
  border-color: #91caff;
  background: #eef6ff;
  color: #0958d9;
  box-shadow: 0 0 0 2px rgba(22, 119, 255, .08);
}
.advisor-artifact-tab-label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.advisor-artifact-tab-ico {
  font-size: 13px;
  line-height: 1;
}
.advisor-artifact-tab-count {
  position: absolute;
  top: -5px;
  right: -4px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: #ff4d4f;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  font-style: normal;
  line-height: 16px;
  text-align: center;
  box-shadow: 0 0 0 2px #fff;
  pointer-events: none;
}
.advisor-artifacts-tabpanels {
  min-height: 0;
}
.advisor-artifact-tabpanel {
  min-height: 0;
}
.advisor-artifact-tabpanel[hidden] {
  display: none !important;
}
.advisor-artifact-tab-body {
  padding: 2px 2px 8px;
}
.advisor-artifact-tab-body--analysis .advisor-thread-detail-section + .advisor-thread-detail-section {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--ai-line);
}
.advisor-artifact-tab-body--analysis .advisor-thread-detail-section h6 {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 650;
  color: var(--ai-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.advisor-artifact-tab-body .advisor-insight-card-list {
  margin-top: 2px;
}
.beeai-advisor-artifacts-host .advisor-artifacts-panel {
  box-shadow: none;
}
.beeai-side-artifact-block + .beeai-side-artifact-block {
  margin-top: 0;
}
.beeai-turn-plan {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 10px;
  background: #fff;
  border: 1px dashed #cbd5e1;
}
.beeai-turn-plan.is-compact {
  margin-top: 6px;
  padding: 6px 8px;
  font-size: 11px;
}
.beeai-turn-plan-head {
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  margin-bottom: 6px;
}
.beeai-turn-plan-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.beeai-turn-plan-row {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 12px;
  line-height: 1.45;
  color: #475569;
}
.beeai-turn-plan-row.is-pending .beeai-turn-plan-mark { color: #d97706; }
.beeai-turn-plan-row.is-done { color: #64748b; }
.beeai-turn-plan-row.is-done .beeai-turn-plan-mark { color: #16a34a; }
.beeai-turn-plan-mark {
  flex: 0 0 auto;
  width: 14px;
  text-align: center;
  font-size: 11px;
}
.advisor-artifacts-panel.is-clarify .advisor-clarify-hint {
  margin: 8px 0 4px;
  font-size: 12px;
  color: var(--ai-muted);
}
.advisor-artifacts-panel.is-analysis .advisor-artifacts-body {
  padding-top: 4px;
}
.advisor-chat-cards.has-artifacts {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--ai-line);
}
.ai-advisor-float .advisor-chat-scroll.has-advisor-artifacts {
  scroll-padding-bottom: 24px;
}
.ai-compose-send.is-stop-mode.is-loading {
  background: #fef2f2;
  color: #b91c1c;
  border-color: #fecaca;
}
.advisor-inline-chip.is-approval {
  border-color: #fde68a;
  background: #fffbeb;
}
.ai-chat-context-status.is-active {
  color: var(--ai-accent);
  font-weight: 600;
}
.ai-chat-context-status.is-active::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 6px;
  border-radius: 50%;
  background: var(--ai-accent);
  vertical-align: middle;
  animation: advisorThinkingPulse 1.2s ease-in-out infinite;
}

.advisor-thread-row {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  max-width: min(92%, 720px);
}
.advisor-thread-row.is-user {
  align-self: flex-end;
  margin-left: auto;
}
.advisor-thread-row.is-assistant {
  align-self: flex-start;
}
.advisor-chat-avatar {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
}
.advisor-chat-avatar.is-assistant {
  display: grid;
  place-items: center;
  line-height: 0;
  border-radius: 50%;
  overflow: hidden;
  background: linear-gradient(180deg, #ffffff 0%, #f3f8ff 100%);
  border: 1px solid rgba(21, 94, 239, 0.18);
  color: #155eef;
  box-shadow: 0 2px 8px rgba(21, 94, 239, 0.08);
}
.advisor-chat-avatar.is-assistant svg {
  display: block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.advisor-chat-avatar.is-user,
span.advisor-chat-avatar.is-user {
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #83c1eb, #17578c);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  overflow: hidden;
}
img.advisor-chat-avatar.is-user.avatar-img {
  border-radius: 50%;
  object-fit: cover;
}
.advisor-thread-row .advisor-thread-msg {
  max-width: 100%;
  flex: 0 1 auto;
  min-width: 0;
}
.advisor-thread-row .advisor-thread-msg.is-user {
  align-self: auto;
  margin-left: 0;
}
.advisor-thread-row .advisor-thread-msg.is-assistant:not(.advisor-typing-bubble) {
  align-self: auto;
  max-width: 100%;
}
.advisor-thread-row .advisor-thread-role {
  display: none !important;
}
.advisor-msg-wrap:has(> .advisor-thread-row.is-assistant) {
  width: auto;
  max-width: min(92%, 720px);
}
.advisor-msg-wrap .advisor-thread-row .advisor-thread-msg.is-assistant {
  max-width: 100%;
}
.advisor-chat-thread .advisor-thread-msg, .ai-advisor-chat-scroll > .advisor-thread-msg,
.advisor-chat-thread .advisor-thread-row, .ai-advisor-chat-scroll > .advisor-thread-row {
  max-width: min(92%, 720px); font-size: 14px; line-height: 1.6; word-break: break-word;
}
.advisor-thread-msg .advisor-thread-role { display: none; }
.advisor-thread-msg time { display: block; margin-top: 6px; font-size: 11px; color: var(--ai-muted); }
.advisor-chat-thread .advisor-thread-msg.is-user, .ai-advisor-chat-scroll .advisor-thread-msg.is-user {
  align-self: flex-end; margin-left: auto; padding: 10px 14px; border-radius: 18px 18px 4px 18px;
  background: var(--ai-accent); color: #fff; box-shadow: 0 4px 14px rgba(22, 119, 255, 0.25);
}
.advisor-chat-thread .advisor-thread-msg.is-user time { color: rgba(255, 255, 255, 0.75); }
.advisor-chat-thread .advisor-thread-msg.is-assistant:not(.advisor-typing-bubble),
.ai-advisor-chat-scroll > .advisor-thread-msg.is-assistant:not(.advisor-typing-bubble) {
  align-self: flex-start;
  max-width: 88%;
  padding: 0;
  background: transparent;
  box-shadow: none;
}
.advisor-thread-msg.is-assistant.is-casual .advisor-thread-bubble,
.advisor-thread-msg.is-assistant.is-casual.advisor-typing-bubble {
  display: inline-block;
  padding: 10px 14px;
  border-radius: 18px 18px 18px 4px;
  background: var(--ai-surface);
  border: 1px solid var(--ai-line);
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.05);
  font-size: 14px;
  line-height: 1.6;
  color: var(--ai-text);
}
.advisor-thread-msg.is-assistant.is-casual.advisor-typing-bubble {
  min-width: 56px;
}
.advisor-thread-msg.is-assistant.is-casual .advisor-thread-role {
  display: block;
  font-size: 11px;
  color: var(--ai-muted);
  margin-bottom: 4px;
  font-weight: 600;
}
.advisor-chat-thread .advisor-thread-msg.is-assistant p { margin: 0; }

.advisor-chat-cards { display: flex; flex-direction: column; gap: 12px; align-items: stretch; max-width: 100%; width: 100%; }
.advisor-card, .advisor-insight-card {
  padding: 16px 18px; border-radius: 16px; border: 1px solid var(--ai-line);
  background: var(--ai-surface); box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
  font-size: 14px; line-height: 1.65;
}
.advisor-chat-card-bubble {
  background: var(--ai-surface); border-radius: 16px; border: 1px solid var(--ai-line);
  padding: 18px 20px; box-shadow: 0 2px 12px rgba(15, 23, 42, 0.05); width: 100%;
}
.advisor-chat-card-bubble .advisor-result { border: none; padding: 0; background: transparent; }
.advisor-chat-card-bubble .advisor-result-head h4 { font-size: 15px; font-weight: 650; color: var(--ai-text); margin-bottom: 4px; }
.advisor-chat-card-bubble .advisor-block h5 { font-size: 11px; font-weight: 650; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ai-muted); margin-bottom: 6px; }
.advisor-chat-card-bubble .advisor-lead {
  margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--ai-line); border-radius: 12px;
  background: linear-gradient(180deg, #f8fafc 0%, #fff 100%); font-size: 14px; line-height: 1.72;
}
.advisor-chat-card-bubble .advisor-section {
  margin: 0 0 14px; padding: 14px 16px; border: 1px solid var(--ai-line); border-radius: 12px;
  background: #fff; border-top: 1px solid var(--ai-line);
}
.advisor-chat-card-bubble .advisor-section:last-child { margin-bottom: 0; }
.advisor-chat-card-bubble .advisor-section-hd { margin-bottom: 10px; }
.advisor-chat-card-bubble .advisor-section-hd h5 { font-size: 13px; font-weight: 650; }
.advisor-chat-card-bubble .advisor-section-details {
  margin: 0 0 14px; padding: 12px 14px; border: 1px solid var(--ai-line); border-radius: 12px;
  background: #fafbfc; border-top: 1px solid var(--ai-line);
}
.advisor-chat-card-bubble .advisor-section-details > summary { font-size: 13px; }
.advisor-chat-card-bubble .advisor-rich-body { line-height: 1.72; }
.advisor-chat-card-bubble .advisor-rich-body p { margin-bottom: 10px; }
.advisor-chat-card-bubble .advisor-rich-body ul,
.advisor-chat-card-bubble .advisor-rich-body ol { margin: 8px 0 10px; }
.advisor-conflict-tip { margin: 0 0 10px; font-size: 12px; line-height: 1.55; color: var(--ai-muted, #64748b); font-weight: 400; text-transform: none; letter-spacing: 0; }
.advisor-conflict-tip strong { color: var(--ai-text, #0f172a); font-weight: 600; }
.advisor-conflict-card { padding: 10px 12px; border: 1px solid var(--ai-line, rgba(15,23,42,.08)); border-radius: 10px; margin-bottom: 8px; background: var(--ai-bg, #f4f6f9); }
.advisor-conflict-option { padding: 8px 0; border-top: 1px dashed var(--ai-line, rgba(15,23,42,.08)); cursor: pointer; }
.advisor-conflict-option:first-child { border-top: none; }
.advisor-conflict-option.is-selected { background: #eef6ff; border-radius: 8px; padding: 8px; margin: 4px 0; border: 1px solid rgba(21, 94, 239, 0.22); }
.advisor-conflict-empty { margin: 0 0 8px; font-size: 12px; color: var(--ai-muted, #64748b); }
.advisor-draft-row.is-conflict-inactive { opacity: 0.45; }
.advisor-conflict-option-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.advisor-conflict-adopt { font-size: 12px; padding: 4px 10px; height: auto; white-space: nowrap; }
.advisor-conflict-item.is-clickable {
  cursor: pointer;
  border-radius: 6px;
  padding: 2px 4px;
  margin-left: -4px;
}
.advisor-conflict-item.is-clickable:hover {
  background: rgba(21, 94, 239, 0.08);
  color: #155eef;
}
.advisor-conflict-next {
  margin: 8px 0 0;
  padding-top: 8px;
  border-top: 1px dashed var(--ai-line, rgba(15, 23, 42, 0.08));
  font-size: 11px;
  color: var(--ai-muted, #64748b);
  line-height: 1.45;
}
.advisor-draft-row.is-highlight {
  box-shadow: 0 0 0 2px rgba(21, 94, 239, 0.35);
  border-radius: 10px;
  transition: box-shadow 0.2s ease;
}
.advisor-chat-card-bubble .xm-ai-mode-tag { font-size: 10px; border-radius: 6px; padding: 2px 6px; }
.advisor-card-toolbar { display: flex; align-items: center; gap: 6px; margin: 0 0 12px; padding-bottom: 12px; border-bottom: 1px solid var(--ai-line); }
.advisor-tool-chip {
  display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 10px;
  border: 1px solid var(--ai-line); border-radius: 8px; background: var(--ai-bg);
  color: var(--ai-text); font: inherit; font-size: 12px; cursor: pointer; transition: background 0.12s, border-color 0.12s;
}
.advisor-tool-chip:hover { background: #eef6ff; border-color: rgba(22, 119, 255, 0.3); }
.advisor-tool-chip em { font-style: normal; font-size: 10px; padding: 1px 6px; border-radius: 999px; background: var(--ai-accent); color: #fff; }
.advisor-tool-chip.is-ghost { width: 28px; padding: 0; justify-content: center; background: transparent; border-color: transparent; color: var(--ai-muted); }
.advisor-tool-chip.is-ghost:hover { background: var(--ai-bg); border-color: var(--ai-line); }
.advisor-drafts-panel { margin-top: 14px; border: 1px solid var(--ai-line); border-radius: 14px; overflow: hidden; background: var(--ai-bg); box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04); }
.advisor-drafts-compact {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px 14px; border: none;
  background: transparent; font: inherit; font-size: 13px; color: var(--ai-text); cursor: pointer; text-align: left;
}
.advisor-drafts-compact:hover { background: rgba(22, 119, 255, 0.04); }
.advisor-drafts-compact-icon { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: #eef6ff; color: var(--ai-accent); font-size: 14px; }
.advisor-drafts-compact-text { flex: 1; font-weight: 550; }
.advisor-drafts-chevron { color: var(--ai-muted); transition: transform 0.2s; }
.advisor-drafts-panel.is-expanded .advisor-drafts-chevron { transform: rotate(90deg); }
.advisor-drafts-body { padding: 14px; border-top: 1px solid var(--ai-line); background: #f4f6f9; }
.advisor-drafts-body[hidden] { display: none !important; }
.advisor-drafts-body .advisor-deploy-main { width: 100%; border-radius: 10px; }
.advisor-chat-card-bubble .advisor-drafts-block { margin-top: 14px; }
.advisor-chat-card-bubble .advisor-drafts-block > h5 { display: none; }
.advisor-chat-card-bubble .advisor-drafts { display: flex; flex-direction: column; gap: 14px; }
.advisor-chat-card-bubble .advisor-draft-row.advisor-draft-card {
  margin-bottom: 0; padding: 16px 16px 14px; border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.1); background: #fff;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
}
.advisor-chat-card-bubble .advisor-draft-card-bar { margin-bottom: 10px; }
.advisor-chat-card-bubble .advisor-draft-index {
  display: inline-flex; align-items: center; height: 22px; padding: 0 8px;
  border-radius: 6px; background: #eef6ff; color: var(--ai-accent);
  font-size: 11px; font-weight: 650; letter-spacing: 0.02em;
}
.advisor-chat-card-bubble .advisor-draft-head { margin-bottom: 4px; }
.advisor-chat-card-bubble .advisor-draft-desc-wrap { margin-top: 4px; padding: 12px 14px; }
.advisor-chat-card-bubble .advisor-draft-desc-view { line-height: 1.65; }
.advisor-chat-card-bubble .advisor-deploy-actions { margin-top: 14px; padding-top: 2px; }

.advisor-lead { margin: 0 0 12px; padding-bottom: 12px; border-bottom: 1px solid var(--ai-line); font-size: 14px; line-height: 1.65; }
.advisor-section { margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--ai-line); }
.advisor-section-hd { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.advisor-section-hd h5 { margin: 0; font-size: 12px; font-weight: 650; color: var(--ai-text); text-transform: none; letter-spacing: 0; }
.advisor-section-ico { font-size: 14px; line-height: 1; }
.advisor-section-details { border: none; padding-top: 12px; border-top: 1px solid var(--ai-line); }
.advisor-section-details > summary { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 12px; font-weight: 650; color: var(--ai-muted); list-style: none; }
.advisor-section-details > summary::-webkit-details-marker { display: none; }
.advisor-section-details[open] > summary { color: var(--ai-text); margin-bottom: 8px; }
.advisor-next-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.advisor-next-chip {
  min-height: 34px;
  padding: 6px 12px;
  border: 1px solid rgba(21, 94, 239, .24);
  border-radius: 999px;
  background: #fff;
  color: #155eef;
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.advisor-next-chip:hover {
  background: #eef5ff;
  border-color: rgba(21, 94, 239, .42);
  box-shadow: 0 6px 16px rgba(21, 94, 239, .1);
}
.advisor-thread-row.is-extras { align-items: flex-start; margin-top: -4px; }
.advisor-thread-row.is-extras .advisor-chat-avatar { opacity: 0; pointer-events: none; }
.advisor-thread-extras { flex: 1; min-width: 0; max-width: min(100%, 720px); padding: 0 0 8px 2px; }
.advisor-inline-chips { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.advisor-inline-chip {
  display: flex; align-items: flex-start; gap: 8px; width: 100%; text-align: left;
  padding: 10px 12px; border: 1px solid var(--ai-line); border-radius: 12px;
  background: #fff; color: var(--ai-text); font: inherit; font-size: 13px; line-height: 1.5; cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.advisor-inline-chip.is-clarify { border-color: #c7ddff; background: #f8fbff; color: #0f172a; }
.advisor-inline-chip.is-clarify:hover { border-color: #91caff; background: #eef5ff; }
.advisor-inline-chip.is-next { border-color: rgba(21, 94, 239, .18); color: #155eef; }
.advisor-inline-chip.is-next:hover { background: #eef5ff; border-color: rgba(21, 94, 239, .35); }
.advisor-inline-chip-no {
  flex: 0 0 auto; width: 20px; height: 20px; border-radius: 999px; background: #dbeafe; color: #155eef;
  font-size: 11px; font-weight: 700; line-height: 20px; text-align: center;
}
.advisor-thread-details {
  border: 1px solid var(--ai-line); border-radius: 12px; background: #fafbfd; overflow: hidden;
}
.advisor-thread-details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 650;
  color: var(--ai-muted);
  list-style: none;
}
.advisor-thread-details > summary::-webkit-details-marker { display: none; }
.advisor-thread-details-arrow {
  flex: 0 0 auto;
  font-size: 16px;
  line-height: 1;
  color: var(--ai-muted);
  transition: transform .15s ease;
}
.advisor-thread-details[open] > summary .advisor-thread-details-arrow { transform: rotate(90deg); }
.advisor-thread-details[open] > summary { color: var(--ai-text); border-bottom: 1px solid var(--ai-line); }
.advisor-thread-details-bd { padding: 10px 12px 12px; }
.advisor-thread-detail-section + .advisor-thread-detail-section { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--ai-line); }
.advisor-thread-detail-section h6 { margin: 0 0 6px; font-size: 11px; font-weight: 650; color: var(--ai-muted); text-transform: uppercase; letter-spacing: .04em; }
.advisor-artifacts-bubble { width: 100%; }
.advisor-artifacts-panel {
  border: 1px solid var(--ai-line); border-radius: 14px; background: #fff; padding: 12px 14px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
}
.advisor-artifacts-head {
  display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 13px; font-weight: 650; color: var(--ai-text);
}
.advisor-artifacts-head em {
  font-style: normal; font-size: 11px; font-weight: 700; color: #155eef; background: #eef5ff;
  border-radius: 999px; padding: 2px 8px;
}
.advisor-tool-chip.is-hint { cursor: default; color: #0958d9; background: #e6f4ff; border-color: #91caff; }
#aiAdvisorDrawer .advisor-rich-body,
#aiAdvisorDrawer .advisor-thread-rich { font-size: 14px; line-height: 1.65; color: var(--ai-text); word-break: break-word; }
#aiAdvisorDrawer .advisor-rich-body p,
#aiAdvisorDrawer .advisor-thread-rich p { margin: 0 0 8px; }
#aiAdvisorDrawer .advisor-rich-body strong { color: #0f172a; font-weight: 650; }
#aiAdvisorDrawer .advisor-rich-body ul,
#aiAdvisorDrawer .advisor-rich-body ol { margin: 6px 0 8px; padding-left: 1.25em; }
#aiAdvisorDrawer .advisor-rich-body hr { border: none; border-top: 1px dashed var(--ai-line); margin: 10px 0; }
#aiAdvisorDrawer .advisor-rich-body table { width: 100%; border-collapse: collapse; margin: 8px 0; font-size: 13px; }
#aiAdvisorDrawer .advisor-rich-body th,
#aiAdvisorDrawer .advisor-rich-body td { border: 1px solid var(--ai-line); padding: 6px 8px; }
#aiAdvisorDrawer .advisor-rich-body th { background: #f8fafc; font-weight: 600; }
#aiAdvisorDrawer .advisor-task-ref-link {
  display: inline;
  padding: 0;
  border: 0;
  background: none;
  color: #1677ff;
  font: inherit;
  font-weight: 600;
  line-height: inherit;
  cursor: pointer;
  text-decoration: none;
  vertical-align: baseline;
}
#aiAdvisorDrawer .advisor-task-ref-link:hover,
#aiAdvisorDrawer .advisor-task-ref-link:focus-visible {
  color: #0958d9;
  text-decoration: underline;
}
.advisor-objective-list { margin: 0; padding-left: 1.1em; }
.advisor-insight-card-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.advisor-insight-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid var(--ai-line);
  background: #fff;
}
.advisor-insight-card-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  flex-shrink: 0;
}
.advisor-insight-card-action.is-detail {
  min-width: 58px;
  padding-inline: 10px;
}
.advisor-insight-card-action.is-detail svg {
  display: none;
}
.advisor-insight-detail {
  display: grid;
  gap: 14px;
}
.advisor-insight-detail-lead {
  display: grid;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid var(--ai-line);
  border-radius: 10px;
  background: #f8fafc;
}
.advisor-insight-detail-lead p {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: #334155;
}
.advisor-insight-detail-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0 2px;
}
.advisor-insight-detail-list-head b {
  font-size: 13px;
  color: #101828;
}
.advisor-insight-detail-list-head span {
  font-size: 11px;
  color: #667085;
}
.advisor-insight-task-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
}
.advisor-insight-task-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--ai-line);
  border-radius: 10px;
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.advisor-insight-task-row:hover {
  border-color: rgba(21, 94, 239, .34);
  background: #f8fbff;
  box-shadow: 0 6px 16px rgba(15, 35, 62, .06);
}
.advisor-insight-task-main {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.advisor-insight-task-main b {
  display: block;
  font-size: 13px;
  line-height: 1.35;
  color: #101828;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.advisor-insight-task-main small {
  display: block;
  font-size: 11px;
  line-height: 1.35;
  color: #667085;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.advisor-insight-task-go {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 600;
  color: #155eef;
}
.advisor-insight-card.xm-ai-level-high {
  border-left: 3px solid #f56c6c;
  background: linear-gradient(90deg, #fff1f0 0%, #fff 72px);
}
.advisor-insight-card.xm-ai-level-medium {
  border-left: 3px solid #e6a23c;
  background: linear-gradient(90deg, #fff7e6 0%, #fff 72px);
}
.advisor-insight-card.xm-ai-level-low {
  border-left: 3px solid #67c23a;
  background: linear-gradient(90deg, #f6ffed 0%, #fff 72px);
}
.advisor-insight-card-main {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.advisor-insight-card-top {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.advisor-insight-level {
  flex-shrink: 0;
  min-width: 22px;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.5;
}
.advisor-insight-level.is-high { color: #cf1322; background: #fff1f0; }
.advisor-insight-level.is-medium { color: #d46b08; background: #fff7e6; }
.advisor-insight-level.is-low { color: #389e0d; background: #f6ffed; }
.advisor-insight-card-title {
  min-width: 0;
  font-size: 13px;
  line-height: 1.35;
  color: var(--ai-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.advisor-insight-card-excerpt {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--ai-muted);
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.advisor-insight-card-action {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid rgba(22, 119, 255, .24);
  border-radius: 8px;
  color: var(--ai-accent);
  background: #eef6ff;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.advisor-insight-card-action:hover {
  border-color: rgba(22, 119, 255, .42);
  background: #f7fbff;
  box-shadow: 0 6px 14px rgba(22, 119, 255, .1);
}
.advisor-detail-sheet {
  display: grid;
  gap: 12px;
}
.advisor-detail-level {
  width: fit-content;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
}
.advisor-detail-level.is-high { color: #cf1322; background: #fff1f0; }
.advisor-detail-level.is-medium { color: #d46b08; background: #fff7e6; }
.advisor-detail-level.is-low { color: #389e0d; background: #f6ffed; }
.advisor-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 4px;
  border-top: 1px dashed var(--ai-line);
}
.advisor-risk-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.advisor-risk-item {
  padding: 12px 14px 12px 18px;
  border-radius: 10px;
  border: 1px solid var(--ai-line);
}
.advisor-risk-item.xm-ai-level-high {
  border-left: 3px solid #f56c6c;
  background: linear-gradient(90deg, #fff1f0 0%, #fff 72px);
}
.advisor-risk-item.xm-ai-level-medium {
  border-left: 3px solid #e6a23c;
  background: linear-gradient(90deg, #fff7e6 0%, #fff 72px);
}
.advisor-risk-item.xm-ai-level-low {
  border-left: 3px solid #67c23a;
  background: linear-gradient(90deg, #f6ffed 0%, #fff 72px);
}
.advisor-risk-copy b {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  color: var(--ai-text);
}
.advisor-risk-copy .advisor-rich-inline {
  font-size: 13px;
  line-height: 1.65;
  color: var(--ai-muted);
}
.advisor-chat-card-bubble .advisor-draft-assignees {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px 12px;
}
.advisor-chat-card-bubble .advisor-draft-assignees .xm-person-field { min-width: 0; }
.advisor-draft-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.advisor-draft-tags { display: flex; flex-wrap: wrap; gap: 8px 10px; margin-left: auto; justify-content: flex-end; }
.advisor-draft-tag { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--ai-muted); }
.advisor-draft-tag select.advisor-draft-field-sm {
  min-width: 76px;
  max-width: 112px;
  padding: 5px 24px 5px 8px;
  border: 1px solid var(--ai-line);
  border-radius: 8px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b' stroke-width='2'%3E%3Cpath stroke-linecap='round' d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 6px center/14px no-repeat;
  color: #101828;
  font-size: 12px;
  line-height: 1.2;
  appearance: none;
  cursor: pointer;
}
.advisor-draft-tag select.advisor-draft-field-sm:focus {
  outline: none;
  border-color: rgba(22, 119, 255, .45);
  box-shadow: 0 0 0 2px rgba(22, 119, 255, .12);
}
.advisor-draft-project {
  margin-left: auto;
  padding: 2px 8px;
  border-radius: 999px;
  background: #eef2ff;
  color: #4338ca;
  font-size: 11px;
  font-weight: 600;
}
.advisor-draft-card-bar {
  display: flex;
  align-items: center;
  gap: 8px;
}
.advisor-draft-assignees { display: flex; flex-direction: column; gap: 8px; }
#aiAdvisorDrawer .advisor-draft-assignees .xm-person-field { margin: 0; }
#aiAdvisorDrawer .advisor-draft-assignees .xm-person-field-label { font-size: 12px; font-weight: 600; color: var(--ai-muted); }
#aiAdvisorDrawer .advisor-draft-assignees .create-cc-hint { margin: 4px 0 0; font-size: 11px; color: #94a3b8; }
.advisor-draft-desc-wrap { border: 1px solid var(--ai-line); border-radius: 10px; background: #f8fafc; padding: 10px 12px; }
.advisor-draft-desc-wrap.is-editing-desc { background: #fff; border-color: rgba(22, 119, 255, 0.35); }
.advisor-draft-desc-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.advisor-draft-desc-label { font-size: 12px; font-weight: 600; color: var(--ai-muted); }
.advisor-draft-edit-btn {
  display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: none; border-radius: 8px;
  background: transparent; color: var(--ai-muted); cursor: pointer;
}
.advisor-draft-edit-btn:hover { background: #eef6ff; color: var(--ai-accent); }
.advisor-draft-desc-view { min-height: 24px; font-size: 13px; line-height: 1.55; }
.advisor-muted { color: #94a3b8; font-size: 13px; }
.advisor-draft-desc-wrap .advisor-draft-criteria { margin-top: 4px; min-height: 88px; background: #fff; }

.advisor-draft-row,
.coach-draft-row {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  margin-bottom: 8px;
  border: 1px solid var(--ai-line, rgba(15, 23, 42, 0.08));
  border-radius: 10px;
  background: var(--ai-surface, #fff);
}
.advisor-draft-row > input[type="checkbox"],
.coach-draft-row > input[type="checkbox"] {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin: 4px 0 0;
  cursor: pointer;
}
.advisor-draft-body,
.coach-draft-fields { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.advisor-draft-field,
.coach-draft-field {
  width: 100%;
  box-sizing: border-box;
  padding: 7px 10px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 8px;
  font: inherit;
  font-size: 13px;
  color: var(--ai-text, #0f172a);
  background: #fff;
}
.advisor-draft-field:focus,
.coach-draft-field:focus {
  outline: none;
  border-color: var(--ai-accent, #1677ff);
  box-shadow: 0 0 0 2px rgba(22, 119, 255, 0.12);
}
.advisor-draft-title,
.coach-draft-title { font-weight: 600; }
.advisor-draft-meta,
.coach-draft-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
  font-size: 12px;
  color: var(--ai-muted, #64748b);
}
.advisor-draft-meta label,
.coach-draft-meta label { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.advisor-draft-field-sm,
.coach-draft-field-sm { width: 72px; min-width: 64px; }
.advisor-draft-criteria,
.coach-draft-criteria { min-height: 52px; resize: vertical; line-height: 1.45; }
.coach-draft-required { font-size: 12px; }
.coach-draft-field-wrap { position: relative; min-width: 0; }
.coach-draft-field-wrap.is-sm { flex: 0 1 auto; }
.coach-draft-meta .coach-draft-field-wrap {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}
.coach-draft-meta-label {
  font-size: 12px;
  color: var(--ai-muted, #64748b);
  white-space: nowrap;
}
.coach-draft-view {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  min-height: 32px;
  padding: 6px 8px;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s ease;
}
.coach-draft-view:hover,
.coach-draft-view:focus-visible {
  background: rgba(22, 119, 255, 0.06);
  outline: none;
}
.coach-draft-view-text {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ai-text, #0f172a);
  word-break: break-word;
}
.coach-draft-title-wrap .coach-draft-view-text { font-weight: 600; font-size: 14px; }
.coach-draft-placeholder { color: var(--ai-muted, #94a3b8); font-weight: 400; }
.coach-draft-edit-icon {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  margin-top: 2px;
  opacity: 0;
  transition: opacity 0.15s ease;
  background: currentColor;
  color: var(--ai-muted, #94a3b8);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.coach-draft-view:hover .coach-draft-edit-icon,
.coach-draft-view:focus-visible .coach-draft-edit-icon,
.coach-draft-field-wrap.is-editing .coach-draft-edit-icon { opacity: 1; }
.coach-draft-field-wrap.is-editing .coach-draft-view { display: none; }
.coach-draft-field-wrap .coach-draft-edit[hidden] { display: none !important; }
.coach-draft-field-wrap.is-editing .coach-draft-edit { display: block !important; width: 100%; }
.coach-draft-meta .coach-draft-field-wrap.is-editing .coach-draft-edit { width: 88px; min-width: 72px; }
.coach-deployed-success {
  padding: 12px 14px;
  border: 1px solid rgba(34, 197, 94, 0.25);
  border-radius: 10px;
  background: rgba(34, 197, 94, 0.06);
}
.coach-deployed-head { margin: 0 0 10px; font-size: 13px; line-height: 1.5; color: var(--ai-text, #0f172a); }
.coach-deployed-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.coach-deployed-item { display: flex; flex-direction: column; gap: 2px; }
.coach-deployed-link {
  border: 0;
  background: none;
  padding: 0;
  text-align: left;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--ai-accent, #1677ff);
  cursor: pointer;
}
.coach-deployed-link:hover { text-decoration: underline; }
.coach-deployed-item small { font-size: 12px; color: var(--ai-muted, #64748b); }
.coach-drafts .advisor-deploy-actions,
.advisor-drafts + .advisor-deploy-actions { margin-top: 10px; }
.td-coach-body .advisor-draft-row { background: #fafbfc; }
.advisor-chat-card-bubble .advisor-deploy-actions .primary-button,
.advisor-chat-card-bubble .advisor-deploy-actions .secondary-button { font-size: 12px; padding: 8px 12px; height: auto; border-radius: 8px; }

.advisor-thread-msg.is-assistant.is-casual.is-streaming .advisor-thread-bubble {
  min-height: 1.6em;
}
.advisor-thread-msg.is-assistant.is-casual.is-streaming .advisor-thread-bubble::after {
  content: "";
  display: inline-block;
  width: 2px;
  height: 1em;
  margin-left: 2px;
  vertical-align: text-bottom;
  background: var(--ai-accent, #6366f1);
  animation: advisorStreamCaret 0.9s step-end infinite;
}
@keyframes advisorStreamCaret { 50% { opacity: 0; } }

.advisor-typing-bubble { padding: 8px 0 !important; }
.advisor-typing-dots { display: inline-flex; gap: 5px; height: 20px; align-items: center; }
.advisor-typing-dots span { width: 7px; height: 7px; border-radius: 50%; background: var(--ai-muted); animation: advisorTypingDot 1.2s ease-in-out infinite; opacity: 0.4; }
.advisor-typing-dots span:nth-child(2) { animation-delay: 0.15s; }
.advisor-typing-dots span:nth-child(3) { animation-delay: 0.3s; }
@keyframes advisorTypingDot { 0%, 60%, 100% { opacity: 0.35; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-4px); } }

.ai-advisor-foot { flex-shrink: 0; padding: 0 12px 10px; background: var(--ai-bg); }
.ai-chat-intent-hint { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding: 0 4px 8px; }
.ai-chat-intent-hint[hidden] { display: none !important; }
.ai-chat-intent-label { font-size: 11px; color: var(--ai-muted); }
.ai-compose-wrap { padding: 0; }
.ai-advisor-float:not(.is-beeai-expanded) .beeai-work-context { display: none !important; }
.ai-advisor-foot .beeai-compose-context,
.ai-advisor-foot > .beeai-work-context {
  flex-shrink: 0;
  padding: 0 0 8px;
  border-bottom: none;
  background: transparent;
  gap: 6px;
}
.beeai-work-context {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.beeai-work-context-active {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 0;
  min-height: 0;
  max-height: 64px;
  overflow-y: auto;
}
.beeai-work-context.is-picker-open {
  gap: 6px;
}
.beeai-work-context-picker {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid rgba(21, 94, 239, 0.18);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 35, 62, 0.08);
  overflow: hidden;
  max-height: min(42vh, 320px);
}
.beeai-work-context-picker[hidden] { display: none !important; }
.beeai-work-context-picker-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--ai-line);
  background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
  flex-shrink: 0;
}
.beeai-work-context-picker-head h4 {
  flex: 1;
  margin: 0;
  font-size: 12px;
  font-weight: 650;
  color: var(--ai-text);
}
.beeai-work-context-picker-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 10px;
}
.beeai-work-context-picker-body .beeai-context-subpanel {
  margin-top: 0;
  border: none;
  box-shadow: none;
  padding: 0;
  background: transparent;
  gap: 8px;
}
.beeai-work-context-picker-body .beeai-context-subpanel[hidden] { display: none !important; }
.beeai-work-context-picker-body .beeai-picker-list {
  max-height: min(28vh, 220px);
}
.beeai-context-desc {
  margin: 0;
  font-size: 11px;
  color: var(--ai-muted);
  line-height: 1.45;
}
.beeai-work-chip[data-beeai-chip-insert] {
  cursor: pointer;
}
.beeai-work-chip[data-beeai-chip-insert]:hover {
  border-color: rgba(21, 94, 239, 0.35);
  background: rgba(21, 94, 239, 0.1);
}
.beeai-work-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  padding: 4px 8px 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(21, 94, 239, 0.18);
  background: rgba(21, 94, 239, 0.06);
  font-size: 11px;
  color: var(--ai-text);
  white-space: nowrap;
  overflow: hidden;
  position: relative;
}
.beeai-work-chip-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: min(240px, 42vw);
}
.beeai-work-chip-label {
  flex-shrink: 0;
  font-weight: 700;
  color: #155eef;
  font-size: 10px;
}
.beeai-work-chip.is-note {
  white-space: normal;
  line-height: 1.35;
  max-width: 100%;
}
.beeai-work-chip.is-note .beeai-work-chip-text {
  white-space: normal;
  max-width: none;
}
.beeai-work-chip-remove {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-left: 2px;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.08);
  color: #64748b;
  font: inherit;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s, background 0.15s, color 0.15s;
}
.beeai-work-chip:hover .beeai-work-chip-remove,
.beeai-work-chip:focus-within .beeai-work-chip-remove {
  opacity: 1;
  pointer-events: auto;
}
.beeai-work-chip-remove:hover {
  background: rgba(220, 38, 38, 0.12);
  color: #dc2626;
}
.beeai-work-context-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0;
}
.beeai-work-context-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.beeai-work-context-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 28px;
  padding: 0 12px;
  border: 1px solid var(--ai-line);
  border-radius: 999px;
  background: #fff;
  color: var(--ai-text);
  font: inherit;
  font-size: 11px;
  font-weight: 650;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s, background 0.15s, box-shadow 0.15s;
  box-shadow: 0 1px 2px rgba(15, 35, 62, 0.04);
}
.beeai-work-context-btn:hover {
  border-color: rgba(22, 119, 255, 0.42);
  color: var(--ai-accent);
  background: rgba(22, 119, 255, 0.06);
  box-shadow: 0 4px 12px rgba(21, 94, 239, 0.1);
}
.beeai-work-context-btn.is-active {
  border-color: rgba(22, 119, 255, 0.5);
  color: var(--ai-accent);
  background: rgba(22, 119, 255, 0.1);
}
.beeai-context-side-panel {
  position: relative;
  width: var(--beeai-context-panel-w, min(360px, 42%));
  min-width: 240px;
  max-width: min(720px, 72vw);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--ai-line);
  background: #fff;
  min-height: 0;
  overflow: hidden;
  box-shadow: -8px 0 24px rgba(15, 35, 62, 0.06);
}
.beeai-context-side-resize {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 8px;
  cursor: col-resize;
  z-index: 3;
  touch-action: none;
}
.beeai-context-side-resize:hover,
.beeai-context-side-panel.is-resizing-context .beeai-context-side-resize {
  background: linear-gradient(90deg, rgba(21, 94, 239, 0.12), transparent);
}
.beeai-main-column.is-context-panel-open {
  --beeai-context-panel-w: var(--beeai-context-panel-w, 360px);
}
.beeai-context-side-body .beeai-picker-list {
  max-height: none;
  flex: 1;
  min-height: 0;
}
.beeai-context-side-body .beeai-context-subpanel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
  height: 100%;
}
.beeai-context-side-body .beeai-context-subpanel:not([hidden]) {
  flex: 1;
}
.beeai-context-side-panel[hidden] { display: none !important; }
.beeai-context-side-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--ai-line);
  background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
  flex-shrink: 0;
}
.beeai-context-side-head h3 {
  flex: 1;
  margin: 0;
  font-size: 13px;
  font-weight: 650;
  min-width: 0;
}
.beeai-context-side-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 12px;
}
.beeai-context-side-body .beeai-context-subpanel {
  margin-top: 0;
  border: none;
  box-shadow: none;
  padding: 0;
  background: transparent;
}
.beeai-context-side-body .beeai-context-subpanel[hidden] { display: none !important; }
.beeai-main-column.is-context-panel-open .ai-advisor-shell {
  border-right: none;
}
.beeai-work-context-panels { display: contents; }
.beeai-header-more-wrap { position: relative; z-index: 50; }
.beeai-header-popover {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 120;
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: 6px;
}
.beeai-header-popover[hidden] { display: none !important; }
.beeai-header-menu {
  min-width: 132px;
  padding: 4px;
  border: 1px solid var(--ai-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.16);
  flex-shrink: 0;
}
.beeai-header-flyout {
  width: min(280px, calc(100vw - 48px));
  padding: 12px 14px;
  border: 1px solid var(--ai-line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.16);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.beeai-header-flyout[hidden] { display: none !important; }
.beeai-header-popover.has-flyout .beeai-header-menu-item.is-active {
  background: rgba(22, 119, 255, 0.08);
  color: var(--ai-accent);
}
.beeai-flyout-desc {
  margin: 0;
  font-size: 12px;
  line-height: 1.55;
  color: var(--ai-muted);
}
.beeai-flyout-desc strong { color: var(--ai-text); font-weight: 600; }
.beeai-header-menu-item {
  display: block;
  width: 100%;
  padding: 8px 10px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--ai-text);
  font: inherit;
  font-size: 13px;
  text-align: left;
  cursor: pointer;
}
.beeai-header-menu-item:hover { background: rgba(15, 23, 42, 0.05); }

/* AI 设置中心（Phase G1） */
.beeai-settings-sheet {
  position: absolute;
  inset: 0;
  z-index: 60;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  pointer-events: none;
  border-radius: inherit;
  overflow: hidden;
}
.beeai-settings-sheet[hidden] { display: none !important; }
.beeai-settings-sheet.is-open { pointer-events: auto; }
.beeai-settings-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.42);
  backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.2s;
}
.beeai-settings-sheet.is-open .beeai-settings-backdrop { opacity: 1; }
.beeai-settings-panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  max-height: min(88vh, 720px);
  margin-top: auto;
  background: #fff;
  border-radius: 16px 16px 0 0;
  box-shadow: 0 -8px 40px rgba(15, 23, 42, 0.18);
  transform: translateY(100%);
  transition: transform 0.24s ease;
}
.beeai-settings-sheet.is-open .beeai-settings-panel { transform: translateY(0); }
.beeai-settings-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--ai-line);
}
.beeai-settings-head h3 {
  flex: 1;
  margin: 0;
  font-size: 15px;
  font-weight: 650;
  text-align: center;
}
.beeai-settings-tabs {
  display: flex;
  gap: 4px;
  padding: 8px 12px;
  overflow-x: auto;
  border-bottom: 1px solid var(--ai-line);
  -webkit-overflow-scrolling: touch;
}
.beeai-settings-tab {
  flex-shrink: 0;
  padding: 6px 12px;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: var(--ai-muted);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
  white-space: nowrap;
}
.beeai-settings-tab.is-active {
  background: rgba(22, 119, 255, 0.1);
  color: var(--ai-accent);
  font-weight: 600;
}
.beeai-settings-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 16px;
}
.beeai-settings-intro {
  margin: 0 0 14px;
  font-size: 13px;
  line-height: 1.55;
  color: var(--ai-muted);
}
.beeai-settings-intro strong { color: var(--ai-text); font-weight: 600; }
.beeai-settings-actions { margin-top: 12px; }
.beeai-settings-loading { margin: 0; font-size: 13px; color: var(--ai-muted); }
.beeai-settings-role-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  margin-bottom: 16px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(22, 119, 255, 0.08), rgba(22, 119, 255, 0.02));
  border: 1px solid rgba(22, 119, 255, 0.12);
}
.beeai-settings-role-badge {
  flex-shrink: 0;
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--ai-accent);
  color: #fff;
  font-size: 12px;
  font-weight: 650;
}
.beeai-settings-role-name { font-size: 14px; font-weight: 650; color: var(--ai-text); }
.beeai-settings-role-sub { margin-top: 2px; font-size: 12px; color: var(--ai-muted); }
.beeai-settings-section { margin-bottom: 18px; }
.beeai-settings-section h4 {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 650;
  color: var(--ai-text);
}
.beeai-settings-count {
  font-weight: 500;
  color: var(--ai-muted);
}
.beeai-settings-usage-row { margin-bottom: 10px; }
.beeai-settings-usage-meta {
  display: flex;
  justify-content: space-between;
  margin-bottom: 4px;
  font-size: 12px;
  color: var(--ai-muted);
}
.beeai-settings-usage-bar {
  height: 6px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.08);
  overflow: hidden;
}
.beeai-settings-usage-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--ai-accent);
  transition: width 0.2s;
}
.beeai-settings-usage-bar.is-warn span { background: #faad14; }
.beeai-settings-usage-bar.is-over span { background: #ff4d4f; }
.beeai-settings-note { margin: 0 0 8px; font-size: 12px; color: var(--ai-muted); }
.beeai-settings-feature-list,
.beeai-settings-tool-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.beeai-settings-feature-list li,
.beeai-settings-tool-list li {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  font-size: 13px;
}
.beeai-settings-feature-list li.is-on span:last-child { color: #389e0d; }
.beeai-settings-feature-list li.is-off span:last-child { color: var(--ai-muted); }
.beeai-settings-tool-list li.is-enabled span:first-child { color: var(--ai-text); }
.beeai-settings-tool-list.is-disabled li { opacity: 0.85; }
.beeai-settings-reason {
  flex-shrink: 0;
  max-width: 55%;
  text-align: right;
  font-size: 11px;
  line-height: 1.4;
  color: var(--ai-muted);
}
.beeai-settings-tag {
  flex-shrink: 0;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(250, 173, 20, 0.15);
  color: #ad6800;
  font-size: 10px;
}
.beeai-settings-empty { color: var(--ai-muted); font-size: 12px; }
.beeai-settings-placeholder {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.beeai-settings-placeholder-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px dashed var(--ai-line);
  font-size: 13px;
}
.beeai-settings-placeholder-item span { font-size: 12px; color: var(--ai-muted); }

.beeai-proactive-list { display: flex; flex-direction: column; gap: 12px; margin-bottom: 14px; }
.beeai-proactive-card {
  padding: 12px 14px;
  border: 1px solid var(--ai-line);
  border-radius: 12px;
  background: #fafbfc;
}
.beeai-proactive-card-head { margin-bottom: 6px; }
.beeai-proactive-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 650;
  color: var(--ai-text);
  cursor: pointer;
}
.beeai-proactive-toggle input { accent-color: var(--ai-accent); }
.beeai-proactive-desc { margin: 0 0 6px; font-size: 12px; line-height: 1.55; color: var(--ai-muted); }
.beeai-proactive-schedule { margin: 0 0 10px; font-size: 11px; color: var(--ai-muted); }
.beeai-proactive-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.beeai-proactive-fields label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--ai-muted); }
.beeai-proactive-fields input,
.beeai-proactive-fields select {
  padding: 6px 8px;
  border: 1px solid var(--ai-line);
  border-radius: 8px;
  font: inherit;
  font-size: 13px;
  background: #fff;
}
.beeai-proactive-actions { display: flex; flex-wrap: wrap; gap: 8px; }

.ai-compose-box {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  padding: 10px 10px 10px 12px;
  border-radius: 16px;
  border: 1px solid var(--ai-line);
  background: var(--ai-surface);
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.06);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.ai-compose-stack {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.ai-compose-input-wrap {
  position: relative;
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ai-compose-input-wrap textarea {
  flex: 0 0 auto;
  min-width: 0;
  width: 100%;
  min-height: 36px;
  max-height: 160px;
  height: 36px;
  border: none;
  background: transparent;
  padding: 8px 4px;
  font: inherit;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ai-text);
  resize: none;
  outline: none;
  overflow-y: hidden;
  box-sizing: border-box;
}
.ai-compose-stack textarea {
  flex: 0 0 auto;
  min-width: 0;
  min-height: 36px;
  max-height: 160px;
  height: 36px;
  border: none;
  background: transparent;
  padding: 8px 4px;
  font: inherit;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ai-text);
  resize: none;
  outline: none;
  overflow-y: hidden;
  box-sizing: border-box;
}
.beeai-compose-toolbar {
  position: static;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  padding: 0;
  flex-shrink: 0;
}
.beeai-compose-toolbar .beeai-compose-tools {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  padding: 0;
  margin: 0;
}
.beeai-compose-toolbar .beeai-tool-btn {
  padding: 4px 10px;
  font-size: 11px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.05);
  border: 1px solid rgba(15, 23, 42, 0.08);
}
.beeai-compose-toolbar .beeai-tool-btn.beeai-work-context-btn.is-active {
  border-color: rgba(21, 94, 239, 0.45);
  background: rgba(21, 94, 239, 0.1);
  color: #155eef;
}
.ai-advisor-float.is-beeai-expanded .ai-advisor-shell > .beeai-work-context {
  display: none !important;
}
.ai-advisor-foot .beeai-work-context[hidden],
.beeai-work-context.is-empty,
.beeai-work-context:not(:has(.beeai-work-chip)) {
  display: none !important;
  padding: 0;
  margin: 0;
  min-height: 0;
}
.beeai-work-context-active:not(:has(.beeai-work-chip)) {
  display: none;
}
.ai-compose-box textarea {
  flex: 0 0 auto; min-width: 0; min-height: 36px; max-height: 160px; height: 36px; border: none; background: transparent;
  padding: 8px 4px; font: inherit; font-size: 14px; line-height: 1.55; color: var(--ai-text); resize: none; outline: none; overflow-y: hidden; box-sizing: border-box;
}
.ai-compose-send svg { transform: translateX(1px); }
.ai-compose-box:focus-within { border-color: rgba(22, 119, 255, 0.45); box-shadow: 0 0 0 3px rgba(22, 119, 255, 0.12), 0 4px 16px rgba(15, 23, 42, 0.06); }
.ai-advisor-float.is-expanded:not(.is-custom-size) .ai-compose-input-wrap textarea,
.ai-advisor-float.is-custom-size .ai-compose-input-wrap textarea,
.ai-advisor-float.is-expanded:not(.is-custom-size) .ai-compose-stack textarea,
.ai-advisor-float.is-custom-size .ai-compose-stack textarea,
.ai-advisor-float.is-beeai-expanded .ai-compose-input-wrap textarea,
.ai-advisor-float.is-beeai-expanded .ai-compose-stack textarea {
  min-height: 44px;
  max-height: 200px;
}
.ai-advisor-float.is-expanded:not(.is-custom-size) .ai-compose-box,
.ai-advisor-float.is-custom-size .ai-compose-box,
.ai-advisor-float.is-beeai-expanded .ai-compose-box {
  align-items: flex-end;
  padding-top: 10px;
  padding-bottom: 10px;
}
.ai-compose-box textarea::placeholder { color: #94a3b8; }
.ai-compose-send {
  flex-shrink: 0; width: 36px; height: 36px; border: none; border-radius: 12px;
  background: linear-gradient(135deg, var(--ai-accent), var(--ai-accent-2)); color: #fff;
  cursor: pointer; display: grid; place-items: center; transition: opacity 0.15s, transform 0.15s;
}
.ai-compose-send:hover { transform: scale(1.04); }
.ai-compose-send:disabled, .ai-compose-send.is-loading { opacity: 0.45; cursor: wait; transform: none; }
#aiAdvisorDrawer .ai-advisor-compose-hint { margin: 6px 0 0; padding: 0 6px; font-size: 11px; color: #94a3b8; text-align: center; }

.ai-advisor-sheet { position: absolute; inset: 0; z-index: 20; display: flex; flex-direction: column; justify-content: flex-end; pointer-events: none; border-radius: inherit; overflow: hidden; }
.ai-advisor-sheet[hidden] { display: none !important; }
.ai-advisor-sheet.is-open { pointer-events: auto; }
.ai-advisor-sheet-backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, 0.4); backdrop-filter: blur(4px); opacity: 0; transition: opacity 0.2s; }
.ai-advisor-sheet.is-open .ai-advisor-sheet-backdrop { opacity: 1; }
.ai-advisor-sheet-panel {
  position: relative; z-index: 1; max-height: 82%; display: flex; flex-direction: column;
  background: var(--ai-surface); border-radius: 20px 20px 0 0; box-shadow: 0 -8px 32px rgba(15, 23, 42, 0.12);
  transform: translateY(100%); transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
}
.ai-advisor-sheet.is-open .ai-advisor-sheet-panel { transform: translateY(0); }
.ai-advisor-sheet-head { display: flex; align-items: center; gap: 8px; padding: 16px; border-bottom: 1px solid var(--ai-line); }
.ai-advisor-sheet-head h3 { flex: 1; margin: 0; font-size: 15px; font-weight: 650; text-align: center; }
.ai-advisor-sheet-back { border: none; background: transparent; color: var(--ai-accent); font-size: 18px; cursor: pointer; padding: 4px 8px; }
.ai-advisor-sheet-action { flex-shrink: 0; font-size: 12px; }
.ai-advisor-sheet-body { flex: 1; min-height: 0; overflow-y: auto; padding: 16px; }
.ai-advisor-sheet-intro { margin: 0 0 12px; font-size: 13px; color: var(--ai-muted); line-height: 1.5; }
.ai-advisor-options-sheet { display: flex; flex-direction: column; gap: 12px; }
.ai-advisor-option-field { display: flex; flex-direction: column; gap: 6px; }
.ai-advisor-option-field span { font-size: 12px; color: var(--ai-muted); font-weight: 600; }
.ai-advisor-option-field input { border: 1px solid var(--ai-line); border-radius: 10px; padding: 10px 12px; font: inherit; font-size: 14px; }
.ai-advisor-options-done { width: 100%; border-radius: 10px; margin-top: 4px; }
.ai-advisor-campaigns-sheet .advisor-campaign-card { border-radius: 12px; border: 1px solid var(--ai-line); margin-bottom: 10px; }
.ai-advisor-campaigns-sheet .advisor-campaign-head b { font-size: 14px; }

/* 工作顾问待办侧栏已并入 AI 对话内「待创建任务」，不再常驻边缘 Tab */
.ai-advisor-task-panel { display: none !important; }

/* BeeAI 放大窗口 · 居中固定上限，避免宽屏下 80vw 撑满整屏 */
.ai-advisor-float.is-beeai-expanded {
  position: fixed;
  top: max(24px, calc((100vh - min(760px, calc(100vh - 64px))) / 2)) !important;
  left: 0 !important;
  right: 0 !important;
  margin-left: auto;
  margin-right: auto;
  bottom: auto !important;
  width: min(860px, calc(100vw - 48px)) !important;
  height: min(720px, calc(100vh - 64px)) !important;
  max-width: none;
  border-radius: 16px;
  transform: none !important;
  opacity: 1;
  z-index: 56;
  box-shadow: 0 32px 80px -24px rgba(15, 23, 42, 0.28), 0 0 0 1px rgba(255, 255, 255, 0.65) inset;
  transition: width 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    height 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    top 0.28s ease, border-radius 0.28s ease, opacity 0.22s ease;
}
.ai-advisor-float.is-beeai-expanded.show {
  transform: none !important;
}
.ai-advisor-float.is-beeai-expanded.is-beeai-open-instant {
  transition: opacity 0.18s ease !important;
}
.ai-advisor-float.is-beeai-expanded .ai-advisor-chat-scroll {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 20px 12px 16px 20px;
}
.ai-advisor-float.is-beeai-expanded .advisor-chat-cards,
.ai-advisor-float.is-beeai-expanded .advisor-chat-thread {
  max-width: var(--beeai-chat-max-w, 768px);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
body.has-beeai-expanded { overflow: hidden; }
body.has-beeai-expanded::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 54;
  background: rgba(15, 23, 42, 0.32);
  backdrop-filter: blur(2px);
  pointer-events: none;
}
.ai-advisor-float.is-beeai-expanded .ai-advisor-resize-handles .ai-advisor-resize-handle { display: block; }
.ai-advisor-float.is-beeai-expanded .ai-chat-header { cursor: grab; }
.ai-advisor-float.is-beeai-expanded.is-beeai-panel-positioned {
  top: var(--beeai-panel-top) !important;
  left: var(--beeai-panel-left) !important;
  right: auto !important;
  margin-left: 0;
  margin-right: 0;
  width: var(--beeai-panel-w) !important;
  height: var(--beeai-panel-h) !important;
  bottom: auto !important;
}
.ai-advisor-float.is-beeai-expanded.is-dragging,
.ai-advisor-float.is-beeai-expanded.is-resizing,
.ai-advisor-float.is-beeai-expanded.is-beeai-layout-preserving {
  transition: none !important;
}
.ai-advisor-float.is-beeai-expanded.is-dragging .ai-chat-header,
.ai-advisor-float.is-beeai-expanded.is-dragging .beeai-sidebar-brand { cursor: grabbing; }
.ai-advisor-float.is-sidebar-collapsed.is-beeai-expanded.is-beeai-panel-positioned {
  width: var(--beeai-panel-w) !important;
}
.beeai-context-subpanel {
  margin-top: 8px;
  padding: 8px;
  border: 1px solid var(--ai-line);
  border-radius: 10px;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.beeai-context-subpanel[hidden] { display: none !important; }
.beeai-pin-editor-label {
  font-size: 11px;
  font-weight: 650;
  color: var(--ai-text);
}
.beeai-picker-search {
  width: 100%;
  height: 32px;
  padding: 0 10px;
  border: 1px solid var(--ai-line);
  border-radius: 8px;
  font: inherit;
  font-size: 12px;
}
.beeai-picker-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 180px;
  overflow-y: auto;
}
.beeai-picker-item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--ai-line);
  border-radius: 10px;
  background: #fff;
  color: var(--ai-text);
  font: inherit;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}
.beeai-picker-item-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
}
.beeai-picker-item-title {
  flex: 1;
  min-width: 0;
  font-weight: 650;
  line-height: 1.4;
  word-break: break-word;
}
.beeai-picker-status {
  flex-shrink: 0;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.35;
  white-space: nowrap;
}
.beeai-picker-status.is-done { background: rgba(22, 163, 74, 0.12); color: #15803d; }
.beeai-picker-status.is-risk { background: rgba(220, 38, 38, 0.1); color: #dc2626; }
.beeai-picker-status.is-review { background: rgba(234, 88, 12, 0.12); color: #c2410c; }
.beeai-picker-status.is-active { background: rgba(21, 94, 239, 0.1); color: #155eef; }
.beeai-picker-status.is-muted { background: rgba(100, 116, 139, 0.12); color: #64748b; }
.beeai-picker-item-meta,
.beeai-picker-item-snippet {
  font-size: 11px;
  color: var(--ai-muted);
  line-height: 1.45;
  word-break: break-word;
}
.beeai-picker-progress {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.beeai-picker-progress-bar {
  flex: 1;
  height: 4px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.08);
  overflow: hidden;
}
.beeai-picker-progress-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #155eef, #36a3ff);
}
.beeai-picker-progress small {
  flex-shrink: 0;
  font-size: 10px;
  color: var(--ai-muted);
}
.beeai-picker-item:hover { border-color: rgba(22, 119, 255, 0.35); background: rgba(22, 119, 255, 0.04); }
.beeai-picker-item.is-active { border-color: var(--ai-accent); background: #eef6ff; color: var(--ai-accent); }
.beeai-picker-item small { font-size: 10px; color: var(--ai-muted); line-height: 1.35; }
.beeai-picker-loading,
.beeai-picker-empty {
  margin: 0;
  padding: 8px 4px;
  font-size: 12px;
  color: var(--ai-muted);
  text-align: center;
}
.beeai-profile-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 11px;
  color: var(--ai-muted);
}
.beeai-profile-field span { font-weight: 650; }
.beeai-profile-field input,
.beeai-profile-field select,
.beeai-profile-field textarea {
  width: 100%;
  border: 1px solid var(--ai-line);
  border-radius: 8px;
  padding: 7px 8px;
  font: inherit;
  font-size: 12px;
  color: var(--ai-text);
  background: #fff;
}
.beeai-profile-field textarea { resize: vertical; min-height: 56px; }
.ai-advisor-float.is-fullscreen {
  /* 兼容旧 class：与 is-beeai-expanded 同尺寸 */
  position: fixed;
  top: max(24px, calc((100vh - min(760px, calc(100vh - 64px))) / 2)) !important;
  left: 0 !important;
  right: 0 !important;
  margin-left: auto;
  margin-right: auto;
  bottom: auto !important;
  width: min(860px, calc(100vw - 48px)) !important;
  height: min(720px, calc(100vh - 64px)) !important;
  max-width: none;
  border-radius: 16px;
  transform: none !important;
  opacity: 1;
  z-index: 56;
}
body.has-beeai-fullscreen { overflow: hidden; }
.ai-advisor-float.is-fullscreen .ai-advisor-resize-handles .ai-advisor-resize-handle { display: none; }
.ai-advisor-float.is-fullscreen .ai-chat-header { cursor: default; }
.beeai-layout {
  display: flex;
  flex: 1;
  min-height: 0;
  width: 100%;
  overflow: hidden;
}
.beeai-session-rail {
  width: 220px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--ai-line);
  background: #fafbfc;
  min-height: 0;
  overflow: hidden;
}
.beeai-sidebar-brand {
  padding: 14px 12px 10px;
  cursor: grab;
}
.beeai-sidebar-brand-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.beeai-sidebar-brand-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.beeai-sidebar-icon-btn {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--ai-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.beeai-sidebar-icon-btn:hover { background: rgba(15, 23, 42, 0.06); color: var(--ai-text); }
.ai-chat-header-center .beeai-sidebar-reopen {
  flex-shrink: 0;
  margin-right: 4px;
}
.ai-chat-header-center .beeai-sidebar-reopen[hidden] { display: none !important; }
.ai-advisor-float.is-sidebar-collapsed .ai-chat-header-center {
  flex-direction: row;
  align-items: center;
  gap: 6px;
}
.ai-advisor-float.is-sidebar-collapsed .ai-chat-header-center .beeai-sidebar-reopen { margin-right: 0; }
.ai-advisor-float.is-sidebar-collapsed .ai-chat-header-center .ai-chat-session-title { text-align: left; }
.ai-advisor-float.is-dragging .beeai-sidebar-brand { cursor: grabbing; }
.beeai-sidebar-logo { font-size: 18px; font-weight: 700; color: var(--ai-text); letter-spacing: -0.02em; }
.beeai-sidebar-agent { font-size: 11px; color: var(--ai-muted); }
.beeai-sidebar-actions { padding: 0 12px 10px; }
.beeai-sidebar-label {
  margin: 0 0 6px;
  padding: 0 2px;
  font-size: 11px;
  font-weight: 650;
  color: var(--ai-muted);
  letter-spacing: 0.02em;
}
.beeai-context-panel { display: none !important; }
.beeai-sidebar-links { display: none !important; }
.beeai-context-desc {
  margin: 0 0 8px;
  padding: 0 2px;
  font-size: 11px;
  line-height: 1.45;
  color: var(--ai-muted);
}
.beeai-context-panel {
  padding: 0 12px 10px;
  border-bottom: 1px solid var(--ai-line);
  flex-shrink: 0;
}
.beeai-context-nav {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.beeai-context-nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  padding: 7px 8px;
  border: 1px solid var(--ai-line);
  border-radius: 8px;
  background: #fff;
  color: var(--ai-text);
  font: inherit;
  font-size: 12px;
  text-align: center;
  cursor: pointer;
}
.beeai-context-nav-btn:hover { border-color: rgba(22, 119, 255, 0.35); color: var(--ai-accent); background: rgba(22, 119, 255, 0.04); }
.beeai-pin-hint {
  margin: 0;
  font-size: 10px;
  line-height: 1.4;
  color: var(--ai-muted);
}
.beeai-pin-hint.is-compact { margin: 4px 0 0; }
.beeai-context-pinned-wrap {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--ai-line);
}
.beeai-context-pinned {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.beeai-context-pinned-label {
  font-size: 10px;
  font-weight: 650;
  color: var(--ai-muted);
  letter-spacing: 0.02em;
}
.beeai-context-pinned-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.beeai-pin-badge,
.beeai-att-chip {
  display: inline-block;
  max-width: 100%;
  padding: 4px 8px;
  border-radius: 6px;
  background: rgba(22, 119, 255, 0.08);
  color: var(--ai-text);
  font-size: 11px;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.beeai-att-chip { background: rgba(15, 23, 42, 0.05); }
.beeai-att-more { font-size: 11px; color: var(--ai-muted); }
.beeai-session-list-wrap {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 8px 6px 8px;
  overflow: hidden;
}
.beeai-session-list-wrap:has(.beeai-session-row.is-menu-open),
.beeai-session-rail:has(.beeai-session-row.is-menu-open) {
  z-index: 30;
}
.beeai-session-list-wrap .beeai-sidebar-label {
  padding: 0 8px;
  margin-bottom: 4px;
}
.beeai-session-list {
  flex: 1;
  overflow-y: auto;
  padding: 0 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.beeai-session-row {
  position: relative;
  display: flex;
  align-items: center;
  gap: 2px;
  border-radius: 8px;
}
.beeai-session-row.is-menu-open { z-index: 40; }
.beeai-session-row:hover,
.beeai-session-row.is-menu-open { background: rgba(15, 23, 42, 0.04); }
.beeai-session-row.is-active { background: rgba(15, 23, 42, 0.07); }
.beeai-session-item {
  flex: 1;
  min-width: 0;
  text-align: left;
  border: none;
  background: transparent;
  color: var(--ai-text);
  padding: 8px 8px 8px 10px;
  border-radius: 8px;
  font: inherit;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  cursor: pointer;
}
.beeai-session-row.is-active .beeai-session-item { font-weight: 500; }
.beeai-session-title {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  overflow: hidden;
}
.beeai-session-title-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.beeai-session-pin-badge {
  flex-shrink: 0;
  display: inline-flex;
  color: #1677ff;
}
.beeai-session-row.is-pinned .beeai-session-title-text {
  font-weight: 600;
}
.beeai-session-rename-input {
  width: 100%;
  min-width: 0;
  height: 28px;
  padding: 0 8px;
  border: 1px solid rgba(22, 119, 255, .35);
  border-radius: 6px;
  background: #fff;
  color: var(--ai-text);
  font: inherit;
  font-size: 13px;
}
.beeai-session-row.is-renaming .beeai-session-more {
  opacity: 0;
  pointer-events: none;
}
.beeai-session-item {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.beeai-session-more {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border: none;
  background: transparent;
  color: var(--ai-muted);
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.12s ease;
}
.beeai-session-row:hover .beeai-session-more,
.beeai-session-row.is-active .beeai-session-more,
.beeai-session-row.is-menu-open .beeai-session-more { opacity: 1; }
.beeai-session-more:hover { background: rgba(15, 23, 42, 0.08); color: var(--ai-text); }
.beeai-session-menu-portal {
  position: fixed;
  z-index: 120;
  min-width: 136px;
  padding: 4px;
  border: 1px solid var(--ai-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.14);
}
.beeai-session-menu-portal[hidden] { display: none !important; }
.beeai-session-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  right: 4px;
  left: auto;
  z-index: 80;
  min-width: 136px;
  padding: 4px;
  border: 1px solid var(--ai-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.14);
}
.beeai-session-list:has(.beeai-session-row.is-menu-open) { overflow-y: auto; }
.beeai-session-dropdown[hidden] { display: none !important; }
.beeai-session-dropdown-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 8px 10px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--ai-text);
  font: inherit;
  font-size: 13px;
  text-align: left;
  cursor: pointer;
}
.beeai-session-dropdown-item:hover { background: rgba(15, 23, 42, 0.05); }
.beeai-session-dropdown-item.is-danger { color: #dc2626; }
.beeai-session-empty { padding: 12px 10px; font-size: 12px; color: var(--ai-muted); margin: 0; }
.beeai-main-column { flex: 1; min-width: 0; display: flex; flex-direction: row; min-height: 0; overflow: hidden; }
.ai-advisor-float.is-beeai-expanded .beeai-main-column .ai-advisor-shell { flex: 1; min-width: 0; }
.ai-advisor-float.is-beeai-expanded.is-sheet-open .beeai-inline-sheet { display: flex; }
.ai-advisor-float.is-fullscreen .beeai-main-column .ai-advisor-shell { flex: 1; min-width: 0; }
.beeai-sidebar-foot {
  flex-shrink: 0;
  padding: 10px 12px 12px;
  border-top: 1px solid var(--ai-line);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.beeai-sidebar-memory { font-size: 11px; color: var(--ai-muted); }
.beeai-sidebar-links { display: flex; gap: 8px; flex-wrap: wrap; }
.beeai-sidebar-link {
  border: none;
  background: transparent;
  padding: 0;
  font: inherit;
  font-size: 11px;
  color: var(--ai-accent);
  cursor: pointer;
  text-align: left;
}
.beeai-sidebar-link:hover { text-decoration: underline; }
.beeai-session-rail-head { padding: 12px; border-bottom: 1px solid var(--ai-line); }
.beeai-new-chat-btn {
  width: 100%;
  border: 1px dashed rgba(22, 119, 255, 0.35);
  background: rgba(22, 119, 255, 0.06);
  color: var(--ai-accent);
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.beeai-new-chat-btn:hover { background: rgba(22, 119, 255, 0.1); }
.beeai-branch-menu {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  max-width: 100%;
}
.beeai-branch-dropdown[hidden] {
  display: none !important;
}
.beeai-branch-trigger {
  border: 1px solid var(--ai-line);
  background: #fff;
  color: var(--ai-muted);
  border-radius: 999px;
  padding: 2px 10px;
  font-size: 11px;
  cursor: pointer;
  max-width: 220px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.beeai-branch-trigger.is-solo { border-style: dashed; }
.beeai-branch-trigger.is-open,
.beeai-branch-trigger:hover { border-color: rgba(22, 119, 255, 0.4); color: var(--ai-accent); }
.beeai-branch-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 20;
  min-width: 160px;
  padding: 6px;
  border-radius: 12px;
  border: 1px solid var(--ai-line);
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}
.beeai-branch-option {
  display: block;
  width: 100%;
  border: none;
  background: transparent;
  text-align: left;
  padding: 8px 10px;
  border-radius: 8px;
  font: inherit;
  font-size: 12px;
  color: var(--ai-text);
  cursor: pointer;
}
.beeai-branch-option.is-active { background: rgba(22, 119, 255, 0.1); color: var(--ai-accent); font-weight: 600; }
.beeai-branch-option:hover { background: rgba(15, 23, 42, 0.04); }
.beeai-branch-dropdown-divider { height: 1px; background: var(--ai-line); margin: 4px 0; }
.beeai-float-context {
  flex-shrink: 0;
  border-bottom: 1px solid var(--ai-line);
  background: #fafbfc;
}
.beeai-float-context-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 8px 14px;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  color: var(--ai-text);
  cursor: pointer;
}
.beeai-float-context-toggle.is-open { color: var(--ai-accent); }
.beeai-float-context-caret { font-size: 10px; color: var(--ai-muted); }
.beeai-float-context-body { padding: 0 12px 10px; }
.beeai-float-context-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.beeai-context-chip {
  border: 1px solid var(--ai-line);
  background: #fff;
  border-radius: 999px;
  padding: 4px 10px;
  font: inherit;
  font-size: 11px;
  color: var(--ai-text);
  cursor: pointer;
}
.beeai-context-chip:hover { border-color: rgba(22, 119, 255, 0.35); color: var(--ai-accent); }
.ai-advisor-float.is-beeai-expanded .beeai-float-context { display: none !important; }
.beeai-branch-bar {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  max-width: min(420px, 40vw);
  margin-right: 4px;
}
.beeai-branch-btn {
  border: 1px solid var(--ai-line);
  background: #fff;
  color: var(--ai-muted);
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 11px;
  cursor: pointer;
  max-width: 120px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.beeai-branch-btn.is-active { border-color: rgba(22, 119, 255, 0.45); color: var(--ai-accent); background: rgba(22, 119, 255, 0.08); }
.ai-advisor-float:not(.is-beeai-expanded):not(.is-fullscreen) .beeai-session-rail { display: none; }
.ai-advisor-float:not(.is-beeai-expanded):not(.is-fullscreen) .beeai-layout { display: contents; }
.ai-advisor-float:not(.is-beeai-expanded):not(.is-fullscreen) .beeai-main-column { display: contents; }
.beeai-confirm-bar {
  padding: 10px 12px 0;
  border-top: 1px solid var(--ai-line);
  background: #fffbeb;
}
.beeai-confirm-card {
  padding: 12px 14px;
  border: 1px solid #fde68a;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
}
.beeai-confirm-card.is-error { border-color: #ffa39e; background: #fff2f0; }
.beeai-confirm-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.beeai-confirm-card-head strong { font-size: 13px; color: var(--ai-text); }
.beeai-confirm-badge {
  flex-shrink: 0;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(22, 119, 255, 0.1);
  color: var(--ai-accent);
  font-size: 10px;
  font-weight: 650;
}
.beeai-confirm-summary { margin: 0 0 8px; font-size: 12px; line-height: 1.55; color: var(--ai-muted); }
.beeai-confirm-impact {
  margin: 0 0 10px;
  padding-left: 18px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--ai-text);
}
.beeai-confirm-impact li { margin-bottom: 4px; }
.beeai-confirm-details {
  margin-bottom: 10px;
  font-size: 11px;
  color: var(--ai-muted);
}
.beeai-confirm-details pre {
  margin: 6px 0 0;
  padding: 8px;
  border-radius: 8px;
  background: rgba(15, 23, 42, 0.04);
  overflow-x: auto;
  font-size: 10px;
  line-height: 1.45;
  max-height: 120px;
}
.beeai-confirm-error { margin: 0 0 8px; font-size: 12px; color: #cf1322; }
.beeai-confirm-actions { display: flex; gap: 8px; justify-content: flex-end; }
.beeai-confirm-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid #fde68a;
  border-radius: 12px;
  background: #fff;
}
.beeai-confirm-copy strong { display: block; font-size: 13px; margin-bottom: 4px; color: var(--ai-text); }
.beeai-confirm-copy p { margin: 0; font-size: 12px; line-height: 1.5; color: var(--ai-muted); }
.beeai-confirm-actions { display: flex; gap: 8px; flex-shrink: 0; }
.beeai-confirm-actions .primary-button,
.beeai-confirm-actions .secondary-button { font-size: 12px; padding: 6px 12px; height: auto; border-radius: 8px; }
.beeai-permission-notice,
.beeai-tool-result-notice {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 10px 0;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.5;
}
.beeai-permission-notice {
  background: #fff7e6;
  border: 1px solid #ffd591;
  color: #ad6800;
}
.beeai-permission-notice p,
.beeai-tool-result-notice p { margin: 4px 0 0; font-size: 12px; opacity: 0.9; }
.beeai-tool-result-notice {
  background: #f6ffed;
  border: 1px solid #b7eb8f;
  color: #389e0d;
}
.beeai-compose-tools {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  flex-wrap: wrap;
}
.beeai-tool-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 1px solid var(--ai-line);
  background: #fff;
  color: var(--ai-muted);
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 12px;
  cursor: pointer;
}
.beeai-tool-btn:hover { border-color: rgba(22, 119, 255, 0.35); color: var(--ai-accent); }
.beeai-tool-visual { background: linear-gradient(135deg, rgba(54,207,201,0.08), rgba(119,36,234,0.08)); }
.beeai-ref-preview {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 1px solid var(--ai-line);
  border-radius: 8px;
  padding: 2px 6px 2px 2px;
}
.beeai-ref-preview img { width: 28px; height: 28px; object-fit: cover; border-radius: 6px; }
.beeai-ref-preview button { border: none; background: transparent; cursor: pointer; color: var(--ai-muted); }
.beeai-image-bubble .beeai-image-card {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--ai-line);
  background: #fff;
}
.beeai-image-card img { display: block; width: 100%; max-height: 320px; object-fit: contain; background: #f8fafc; }
.beeai-image-card p { margin: 0; padding: 8px 10px; font-size: 12px; color: var(--ai-muted); }
.beeai-image-demo-tag { display: block; padding: 0 10px 8px; font-size: 11px; color: #b45309; }

.beeai-pin-bar { display: none; }
.beeai-pin-empty, .beeai-pin-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.beeai-import-brief-btn {
  display: block;
  width: calc(100% - 16px);
  margin: 8px;
  padding: 8px;
  border: 1px dashed var(--ai-line);
  background: transparent;
  border-radius: 8px;
  font-size: 12px;
  color: var(--ai-muted);
  cursor: pointer;
}
.beeai-import-brief-btn:hover { border-color: var(--ai-accent); color: var(--ai-accent); }

.xm-advisor-panel { display: none !important; }


.coach-badge { background: linear-gradient(135deg, #389e0d, #73d13d) !important; }
.td-ai-divider { border: none; border-top: 1px dashed #e8e8e8; margin: 14px 0; }
.td-coach-hint { margin: 0 0 10px; font-size: 12px; }
.td-coach-body { margin-bottom: 4px; }

.ai-gw-history-mode {
  padding: 1px 6px;
  border-radius: 4px;
  background: #f4f7fb;
}
@media (max-width: 1200px) {
  .ai-gw-layout, .ai-gw-logs-layout { grid-template-columns: 1fr; }
  .ai-gw-calls-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-gw-threshold-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ai-gw-threshold-row--2 { grid-template-columns: 1fr; }
  .ai-gw-threshold-row--3 { grid-template-columns: 1fr; }
  .ai-gw-field-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .ai-gw-threshold-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 工作汇报 */
.work-report-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 12px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid #ffe58f;
  background: #fffbe6;
  color: #874d00;
  font-size: 13px;
}
.work-report-banner[hidden] { display: none !important; }
.work-report-overlay {
  position: fixed;
  inset: 0;
  z-index: 70;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(4px);
}
.work-report-overlay.show { display: flex !important; }
body.work-report-open { overflow: hidden; }
.wr-shell {
  width: min(var(--panel-width), 96vw);
  max-height: min(88vh, 860px);
  display: flex;
  flex-direction: column;
  border-radius: 18px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.2);
  overflow: hidden;
}
.wr-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px 12px;
  border-bottom: 1px solid #f0f0f0;
}
.wr-head h2 { margin: 4px 0 0; font-size: 20px; }
.wr-head-actions { display: flex; align-items: center; gap: 10px; }
.wr-period-type { height: 34px; border-radius: 8px; border: 1px solid #d9d9d9; padding: 0 10px; }
.wr-tabs { display: flex; gap: 6px; padding: 0 20px 12px; border-bottom: 1px solid #f0f0f0; flex-wrap: wrap; }
.wr-tab {
  height: 34px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: #64748b;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.wr-tab.active { background: #eef6ff; border-color: #91caff; color: #1677ff; }
.wr-body { flex: 1; overflow-y: auto; padding: 16px 20px 20px; }
.wr-meta { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.wr-route { margin: 0 0 12px; font-size: 12px; color: #64748b; }
.wr-form { display: grid; gap: 12px; }
.wr-field { display: flex; flex-direction: column; gap: 6px; }
.wr-field span { font-size: 13px; font-weight: 600; color: #334155; }
.wr-field textarea {
  width: 100%;
  min-height: 96px;
  padding: 10px 12px;
  border: 1px solid #d9d9d9;
  border-radius: 10px;
  font: inherit;
  font-size: 14px;
  line-height: 1.55;
  resize: vertical;
}
.wr-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.wr-review { margin: 0 0 12px; padding: 12px; border-radius: 10px; background: #f6ffed; border: 1px solid #b7eb8f; }
.wr-review p { margin: 4px 0; font-size: 13px; line-height: 1.55; }
.wr-list { display: flex; flex-direction: column; gap: 12px; }
.wr-inbox-card { padding: 14px; border: 1px solid #f0f0f0; border-radius: 12px; background: #fafafa; }
.wr-inbox-card header { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.wr-inbox-body p { margin: 0 0 6px; font-size: 13px; line-height: 1.5; color: #475569; }
.wr-inbox-body em { font-style: normal; color: #1677ff; margin-right: 6px; font-size: 12px; }
.wr-inbox-actions { margin-top: 10px; }
.wr-summary-stats { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; font-size: 13px; color: #334155; }
.wr-block { margin-top: 14px; }
.wr-block h4 { margin: 0 0 8px; font-size: 14px; }
.wr-unsub { margin: 0 0 10px; font-size: 13px; line-height: 1.6; color: #64748b; }
.wr-gaps ul { margin: 0; padding-left: 18px; font-size: 13px; color: #64748b; }
.wr-list-row { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 1px dashed #f0f0f0; font-size: 13px; }

.task-ai-assist-bar {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 8px;
}
.task-ai-assist-bar .text-button {
  font-size: 12px;
  color: #1677ff;
}

.task-beeai-chip-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: 10px;
  background: linear-gradient(135deg, #f8fbff 0%, #f3f6ff 100%);
  border: 1px solid #e6efff;
}
.task-beeai-chip-label {
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-right: 4px;
}
.task-beeai-chip {
  appearance: none;
  border: 1px solid #cfe0ff;
  background: #fff;
  color: #1d4ed8;
  font-size: 12px;
  line-height: 1.2;
  padding: 5px 10px;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.task-beeai-chip:hover {
  background: #eff6ff;
  border-color: #93c5fd;
}
.task-beeai-chip:focus-visible {
  outline: 2px solid #93c5fd;
  outline-offset: 2px;
}

/* 全局界面升级 · 智能协作闭环指挥台 */
:root {
  --text: #172033;
  --muted: #53657c;
  --muted-strong: #3f5068;
  --muted-soft: #64748b;
  --line: #d8e2ee;
  --line-soft: #e5edf6;
  --surface: #fff;
  --bg: #f1f5f9;
  --blue: #155eef;
  --blue-soft: #eaf2ff;
  --green: #168a4a;
  --orange: #b54708;
  --red: #d92d20;
  --shadow: 0 14px 36px rgba(15, 35, 62, .08);
  --shadow-soft: 0 6px 18px rgba(15, 35, 62, .055);
}

body {
  color: var(--text);
  background: linear-gradient(180deg, rgba(255, 255, 255, .72) 0, rgba(255, 255, 255, 0) 220px), var(--bg);
}

.topbar {
  border-bottom-color: #d7e2ef;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 1px 0 rgba(15, 35, 62, .04), 0 12px 28px rgba(15, 35, 62, .045);
}

.topbar h1,
.page-title-row,
.xm-greeting h2,
.xm-manager-head h2 {
  color: #101828;
  font-weight: 700;
}

.eyebrow,
.panel-kicker {
  color: #4e5f78;
  font-size: 10px;
  letter-spacing: .11em;
}

.page-hint,
.xm-greeting p,
.xm-greeting-date,
.empty-tip,
.routine-stats-range,
.xm-ai-time,
.xm-ai-cache,
.xm-ai-scope,
.xm-ai-loading {
  color: var(--muted);
}

.search,
.topbar-actions .icon-button-bell,
.topbar-actions .icon-button-help,
.topbar-actions .icon-button-advisor,
.topbar-actions .icon-button-routine,
.topbar-actions .topbar-create-btn,
.topbar-user-wrap .user {
  border-color: #d4deea;
  background: #fff;
}

.topbar-actions .icon-button-advisor {
  border-color: rgba(21, 94, 239, .28);
  background: linear-gradient(180deg, #fff 0%, #eef5ff 100%);
  box-shadow: 0 8px 18px rgba(21, 94, 239, .12);
}

.topbar-actions .icon-button-advisor::after {
  content: "AI";
  position: absolute;
  right: -4px;
  bottom: -5px;
  padding: 1px 4px;
  border-radius: 999px;
  color: #fff;
  background: #155eef;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 14px;
  box-shadow: 0 0 0 2px #fff;
}

.search:focus-within,
.topbar-actions .search:focus-within {
  border-color: rgba(21, 94, 239, .55);
  box-shadow: 0 0 0 3px rgba(21, 94, 239, .12);
}

.view { padding: clamp(14px, .72vw + 10px, 22px); }

.panel,
.xm-panel,
.xm-side-card,
.metric-card,
.management-card,
.settings-main,
.task-card-table tr.task-card-row,
.task-card-grid-layout .task-work-card,
.hub-table-scroll,
.org-layout > .panel,
.eff-card,
.stats-panel {
  border-color: var(--line);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
}

.panel,
.xm-panel,
.xm-side-card,
.metric-card,
.task-card-table tr.task-card-row,
.task-card-grid-layout .task-work-card { border-radius: 10px; }

.panel-header,
.xm-panel-title,
.org-table-header,
.stats-panel-head,
.eff-panel-head,
.fb-aside-head,
.xm-ai-stats-card-head {
  border-bottom: 1px solid var(--line-soft);
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.panel-header h3,
.xm-panel-title h3,
.org-table-header h3,
.hub-section-head h3,
.eff-page-head h2,
.eff-panel-head h3,
.stats-panel-head h3,
.fb-aside-head h3 {
  color: #111827;
  font-weight: 700;
}

.panel-header h3 small,
.xm-panel-title h3 small,
.topbar-user-menu-item small,
.task-card-menu-item small,
.xm-view-card .xm-view-text small,
.xm-person small,
.task-mini small,
.routine-row small,
.xm-notice-row small,
.xm-activity-row small,
.xm-response-row small { color: var(--muted); }

table th,
.xm-table th,
.org-member-table th,
.kpi-detail-table th,
.eff-table-head,
.task-card-grid-head .th,
.audit-log-table th,
.ai-gw-push-table th,
.ai-gw-calls-table th {
  color: #45566e;
  font-size: 12px;
  font-weight: 700;
  background: #f8fafc;
}

table td,
.xm-table td,
.org-member-table td,
.eff-table-row,
.task-card-table tr.task-card-row td,
.audit-log-table td { color: #23324a; }

.xm-table td,
.xm-table th,
.org-member-table td,
.org-member-table th { border-bottom-color: var(--line-soft); }

.xm-view-switcher {
  border-color: #d8e2ee;
  background: #eaf0f7;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7);
}

.xm-view-switcher .xm-view-card { color: #24344d; }
.xm-view-switcher .xm-view-card:hover { background: #f8fafc; }
.xm-view-switcher .xm-view-card.active {
  border-color: rgba(21, 94, 239, .42);
  background: #fff;
  box-shadow: 0 8px 18px rgba(15, 35, 62, .08);
}

.xm-view-switcher .xm-view-text b,
.xm-view-card .xm-view-text b {
  color: #172033;
  font-size: 13px;
}

.xm-view-switcher .xm-view-text small {
  color: #53657c;
  font-size: 11px;
}

.xm-view-switcher .xm-view-card.active .xm-view-text b,
.xm-view-switcher .xm-view-card.active .xm-view-text small { color: #155eef; }

.xm-metrics article {
  border-color: #d7e4f2;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 35, 62, .06);
}

#employeeMetrics article > div > span:not(.xm-metric-icon),
#managerMetrics article > div > span:not(.xm-metric-icon),
#bossMetrics article > div > span:not(.xm-metric-icon) {
  color: #465871;
  font-size: 12px;
  font-weight: 700;
}

#employeeMetrics article > div > small,
#managerMetrics article > div > small,
#bossMetrics article > div > small,
.xm-chart-y-axis,
.xm-chart-panel .xm-chart-axis {
  color: #64748b;
  font-size: 11px;
}

.xm-bar,
.progress,
.xm-ai-project-track { background: #e4ebf4; }

.xm-tabs button,
.routine-dept-tab,
.secondary-button,
.xm-btn-ghost.secondary-button {
  color: #40516a;
  border-color: #d3deeb;
}

.xm-tabs button.active,
.routine-dept-tab.active,
.text-button,
.xm-link-btn { color: #155eef; }

.primary-button,
.xm-btn-primary.primary-button {
  background: #155eef;
  box-shadow: 0 8px 18px rgba(21, 94, 239, .22);
}

.tag,
.task-card-type-tag,
.xm-ai-tag,
.xm-ai-meta-row span { font-weight: 700; }

.xm-ai-panel,
.eff-card-ai {
  border-color: #cdddf1;
  background: linear-gradient(180deg, #f7fbff 0%, #fff 42%, #fff 100%);
  box-shadow: 0 14px 34px rgba(21, 94, 239, .09);
}

.xm-ai-panel .xm-panel-title {
  border-bottom-color: #dbe8f7;
  background: linear-gradient(180deg, #f8fbff 0%, #eef5ff 100%);
}

.xm-ai-badge { background: linear-gradient(135deg, #155eef 0%, #0f766e 100%); }

.xm-ai-mode-tag.is-llm {
  color: #0f3f9c;
  background: #dceaff;
}

.xm-ai-mode-tag.is-rules {
  color: #8a3d0a;
  background: #fff0d5;
}

.xm-ai-summary,
.xm-ai-list li small,
.xm-ai-stats-lead .xm-ai-summary,
.xm-ai-advisor-hint,
.xm-ai-advisor-hint--compact { color: #354761; }

.xm-ai-empty-advisor {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px dashed #c5d6ea;
  border-radius: 10px;
  background: linear-gradient(180deg, #fff 0%, #f7fbff 100%);
}

.xm-ai-empty-advisor b {
  color: #102033;
  font-size: 14px;
  font-weight: 800;
}

.xm-ai-empty-advisor p {
  margin: 0;
  color: #44566f;
  font-size: 12px;
  line-height: 1.55;
}

.xm-ai-list li,
.xm-ai-brief-card,
.xm-ai-stats-card,
.xm-ai-stats-kpi article,
.xm-ai-stats-lead,
.xm-ai-top-item,
.xm-ai-project-card {
  border-color: #dbe5f1;
  box-shadow: 0 6px 16px rgba(15, 35, 62, .045);
}

.xm-ai-top-item.xm-ai-level-high,
.xm-ai-level-high { border-left-color: var(--red); }

.xm-ai-top-item.xm-ai-level-medium,
.xm-ai-level-medium { border-left-color: var(--orange); }

.xm-ai-top-item.xm-ai-level-low,
.xm-ai-level-low { border-left-color: var(--green); }

.xm-ai-rank { background: #155eef; }

.xm-ai-top-main b,
.xm-ai-list li b,
.xm-ai-stats-title,
.xm-ai-stats-item-main b,
.xm-ai-project-card-head b { color: #101828; }

.xm-ai-top-main small,
.xm-ai-stats-item-main p,
.xm-ai-project-card-meta { color: #53657c; }

.xm-ai-top-main em,
.xm-ai-list li em,
.xm-ai-brief-owner {
  color: #155eef;
  font-weight: 700;
}

.task-card-grid-head {
  border: 1px solid #dbe5f1;
  border-radius: 10px;
  background: #f8fafc;
  box-shadow: none;
}

.task-card-table tr.task-card-row:hover,
.task-card-grid-layout .task-work-card:hover,
.org-member-table tbody tr:hover,
.eff-table-row:hover,
.xm-list-row:hover,
.xm-notice-row:hover,
.xm-activity-row:hover,
.xm-response-row:hover { background: #f6f9ff; }

.task-card-table tr.task-card-row:hover,
.task-card-grid-layout .task-work-card:hover {
  border-color: #bcd3f4;
  box-shadow: 0 12px 26px rgba(21, 94, 239, .1);
}

.sidebar-bottom small,
.user small { color: #b7c7d8; }

/* Global UI upgrade v2: high-frequency work surfaces */
:root {
  --ink: #0f1f33;
  --ink-2: #22324a;
  --muted-readable: #52647b;
  --panel-tint: #f8fbff;
  --focus-ring: 0 0 0 3px rgba(21, 94, 239, .14);
}

/* Login: left hero uses base dark glass styles; v2 polish applies to the form panel only */
.login-panel-title,
.login-card h2 { color: #0b1828; }

.login-panel-desc,
.login-panel-foot,
.login-sms-hint,
.login-wecom-foot,
.login-copyright { color: var(--muted-readable); }

.login-card {
  border: 1px solid #d8e2ee;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 22px 54px rgba(15, 35, 62, .12);
}

.login-tabs,
.login-method-tabs {
  border-color: #dbe5f1;
  background: #eef3f8;
}

.login-tab,
.login-method-tab {
  color: #40516a;
  font-weight: 700;
}

.login-tab.active,
.login-method-tab.active {
  color: #155eef;
  background: #fff;
  box-shadow: 0 8px 18px rgba(15, 35, 62, .08);
}

.login-form label span,
.login-legal-consent-text {
  color: #34465f;
  font-weight: 700;
}

.login-form input,
.login-form select,
.login-form textarea,
.create-task-form input,
.create-task-form select,
.create-task-form textarea,
.management-body input,
.management-body select,
.management-body textarea,
.settings-main input,
.settings-main select,
.settings-main textarea {
  color: #18273d;
  border-color: #cfdbea;
  background: #fff;
}

.login-form input:focus,
.login-form select:focus,
.login-form textarea:focus,
.create-task-form input:focus,
.create-task-form select:focus,
.create-task-form textarea:focus,
.management-body input:focus,
.management-body select:focus,
.management-body textarea:focus,
.settings-main input:focus,
.settings-main select:focus,
.settings-main textarea:focus {
  border-color: rgba(21, 94, 239, .58);
  box-shadow: var(--focus-ring);
  outline: none;
}

.login-inline-error {
  color: #b42318;
  background: #fff1f0;
  border: 1px solid #ffd2cc;
}

.sidebar {
  background: linear-gradient(180deg, #0d1b2c 0%, #13243a 54%, #0f2f2c 100%);
}

.nav-item,
.nav-sub-item,
.quick-link { color: #c9d6e5; }

.nav-item:hover,
.nav-sub-item:hover,
.quick-link:hover {
  color: #fff;
  background: rgba(255, 255, 255, .08);
}

.nav-item.active,
.nav-sub-item.active {
  color: #fff;
  background: rgba(255, 255, 255, .14);
  box-shadow: inset 3px 0 0 #5eead4;
}

.brand-name,
.sidebar-section-title { color: #fff; }
.sidebar-section-title { opacity: .78; }

.page-title-row h2,
.eff-page-head h2,
.settings-main-title,
.member-profile b,
.task-card-title,
.fb-card-title { color: #0f1f33; }

.page-hint,
.settings-main-desc,
.settings-title-desc,
.hub-section-head p,
.eff-trend-caption,
.fb-filter-hint,
.org-member-panel-hint { color: var(--muted-readable); }

.metric-card b,
.xm-metrics article b,
.eff-kpi-card b,
.stats-kpi .eff-kpi-card b { color: #0f1f33; }

.metric-card span,
.metric-card small,
.eff-kpi-card span,
.eff-kpi-card small,
.stats-kpi .eff-kpi-card span,
.stats-kpi .eff-kpi-card small { color: #4e6078; }

.task-card-grid-layout .task-work-card,
.task-card-table tr.task-card-row,
.fb-card-list .task-work-card,
.feedback-card,
.eff-table-row,
.org-member-table tbody tr { border-color: #dbe5f1; }

.task-card-grid-layout .task-work-card,
.fb-card-list .task-work-card,
.feedback-card { background: linear-gradient(180deg, #fff 0%, #fbfdff 100%); }

.task-card-grid-layout .task-work-card.is-overdue,
.task-card-table tr.task-card-row.is-overdue,
.fb-card-list .task-work-card.is-overdue { border-left: 3px solid #d92d20; }

.task-card-grid-layout .task-work-card.is-risk,
.task-card-table tr.task-card-row.is-risk { border-left: 3px solid #b54708; }

.task-card-grid-head,
.fb-list-columns,
.eff-table-head {
  color: #40516a;
  border-color: #d8e2ee;
  background: #f1f6fb;
}

#tasksView .task-card-grid-head-wrap,
#tasksView .task-card-grid-head-wrap .task-card-grid-head {
  color: inherit;
  border-color: rgba(226, 232, 240, 0.92);
  background: #fff;
  box-shadow: none;
}

.task-card-grid-head .th,
.fb-list-columns .th,
.eff-table-head span {
  color: #40516a;
  font-weight: 800;
}

.tag.red,
.task-card-priority-high,
.eff-alert-item--risk,
.is-warn { color: #b42318; }

.tag.orange,
.task-card-priority-medium,
.eff-health--follow { color: #9a4b0b; }

.tag.green,
.task-card-priority-low,
.eff-health--excellent { color: #067647; }

.feedback-layout,
.eff-board,
.org-layout,
.settings-layout { gap: 14px; }

.fb-page-aside,
.org-profile-panel,
.org-dept-panel,
.org-member-panel,
.settings-main,
.eff-card {
  border-color: #d8e2ee;
  box-shadow: 0 8px 22px rgba(15, 35, 62, .055);
}

.fb-aside-head,
.eff-panel-head,
.org-table-header,
.settings-main-head,
.settings-section > h4 { color: #0f1f33; }

.org-dept-row { border-radius: 8px; }

.org-dept-node.is-active > .org-dept-row {
  background: #eaf2ff;
  box-shadow: inset 3px 0 0 #155eef;
}

.org-dept-count,
.org-online-status,
.org-page-btn,
.settings-wizard-badge,
.routine-state {
  border-color: #d6e1ee;
  color: #40516a;
  background: #f6f9fc;
}

.settings-nav-item,
.settings-tab,
.hub-quick-card,
.management-card { border-color: #dbe5f1; }

.settings-nav-item.active,
.settings-tab.active {
  color: #155eef;
  background: #eef5ff;
  border-color: rgba(21, 94, 239, .32);
}

.empty-tip,
.stats-empty-tip,
.task-empty-tip,
.hub-empty {
  color: #53657c;
  background: #f8fbff;
  border: 1px dashed #cfdbea;
  border-radius: 10px;
}

.ai-advisor-float,
.ai-advisor-shell,
.ai-advisor-sheet-panel,
.ai-advisor-task-panel-sheet {
  border-color: #cdddf1;
  box-shadow: 0 28px 80px rgba(15, 35, 62, .18);
}

.ai-advisor-head,
.ai-advisor-sheet-head,
.ai-advisor-task-panel-head {
  background: linear-gradient(180deg, #f8fbff 0%, #eef5ff 100%);
  border-bottom-color: #dbe8f7;
}

.ai-advisor-compose textarea,
.ai-compose-box textarea,
.ai-compose-input-wrap textarea,
#aiAdvisorCompose {
  color: #172033;
  border: none;
  background: transparent;
  box-shadow: none;
}

.ai-advisor-compose textarea:focus,
.ai-compose-box textarea:focus,
.ai-compose-input-wrap textarea:focus,
#aiAdvisorCompose:focus {
  border: none;
  box-shadow: none;
  outline: none;
}

@media (max-width: 720px) {
  .login-hero { min-height: auto; }
  .view { padding: 12px; }
  .feedback-layout,
  .eff-board,
  .org-layout,
  .settings-layout { gap: 10px; }
}

/* AI operating layer: make advisor capability feel native to the workflow */
.task-beeai-chip-bar {
  align-items: center;
  padding: 8px;
  border: 1px solid #d9e6f2;
  border-radius: 8px;
  background: linear-gradient(180deg, #fbfdff 0%, #f4f8fc 100%);
}

.task-beeai-chip-label {
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  color: #0f766e;
  background: #e6fffb;
  font-size: 11px;
  font-weight: 800;
}

.task-beeai-chip {
  min-height: 28px;
  border-color: #cbd9ea;
  color: #1f3858;
  background: #fff;
  font-weight: 700;
  box-shadow: 0 1px 2px rgba(15, 35, 62, .04);
}

.task-beeai-chip:hover {
  border-color: rgba(21, 94, 239, .42);
  color: #155eef;
  background: #f4f8ff;
  box-shadow: 0 8px 18px rgba(21, 94, 239, .1);
}

.ai-advisor-float {
  --ai-accent: #155eef;
  --ai-text: #142033;
  --ai-muted: #52647b;
  --ai-line: #d8e5f2;
  border-radius: 12px;
  background: #f8fbff;
}

.ai-chat-header {
  border-bottom-color: #d9e6f2;
  background: linear-gradient(180deg, #fff 0%, #f2f7ff 100%);
}

.ai-chat-header-center {
  align-items: center;
  text-align: left;
  gap: 4px;
}

.ai-chat-context-status {
  width: 100%;
  min-width: 0;
}

.ai-chat-context-summary {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
  margin-top: 0;
}

.ai-chat-context-summary span {
  display: none;
}

.ai-chat-context-summary b {
  display: none;
}

.ai-chat-context-summary small {
  display: none;
}

.ai-context-stat-line {
  margin: 0;
  color: #94a3b8;
  font-size: 11px;
  line-height: 1.45;
  text-align: center;
}

.ai-advisor-chat-scroll.is-welcome-only {
  justify-content: flex-start;
  align-items: stretch;
  padding: 0;
  overflow: visible;
}

.ai-advisor-shell.is-advisor-welcome {
  background: #f5f6f8;
}

.advisor-welcome-canvas {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  min-height: 0;
  width: 100%;
  padding: clamp(28px, 11vh, 88px) 28px 24px;
  box-sizing: border-box;
  overflow-y: auto;
}

.advisor-welcome-canvas > .ai-advisor-chat-scroll {
  flex: 0 0 auto;
  width: 100%;
  max-width: 680px;
  min-height: 0;
  overflow: visible;
  background: transparent;
}

.advisor-welcome-canvas > .ai-advisor-foot {
  flex: 0 0 auto;
  width: 100%;
  max-width: 680px;
  border-top: none;
  padding: 20px 0 0;
  margin: 0;
  background: transparent;
}

.advisor-welcome-canvas > .advisor-welcome-skills-dock {
  flex: 0 0 auto;
  width: 100%;
  max-width: 680px;
  margin: 0;
}

.advisor-chat-thread.is-welcome-only {
  flex: 0 0 auto;
  gap: 0;
  width: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.advisor-welcome-stage {
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  padding: 0;
}

.advisor-welcome-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
  padding: 0 8px 4px;
}

.advisor-welcome-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.advisor-welcome-avatar,
.advisor-welcome-mark {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  line-height: 0;
  color: #155eef;
  box-shadow: 0 10px 24px rgba(21, 94, 239, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

.advisor-welcome-avatar {
  width: 80px;
  height: 80px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: linear-gradient(180deg, #ffffff 0%, #eef4ff 100%);
}

.advisor-welcome-mark {
  width: 56px;
  height: 56px;
  border: 1px solid rgba(21, 94, 239, 0.18);
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff 0%, #f3f8ff 100%);
}

.advisor-welcome-avatar svg,
.advisor-welcome-mark svg {
  display: block;
  flex-shrink: 0;
  margin: 0;
}

.advisor-welcome-avatar svg {
  width: 54px;
  height: 54px;
}

.advisor-welcome-mark svg {
  width: 24px;
  height: 24px;
}

.advisor-welcome-brand-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
}

.advisor-welcome-brand-name,
.advisor-welcome-kicker {
  margin: 0;
  font-size: clamp(24px, 2.8vw, 30px);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: #101828;
}

.advisor-welcome-kicker {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border: 1px solid rgba(21, 94, 239, 0.16);
  border-radius: 999px;
  color: #155eef;
  background: rgba(21, 94, 239, 0.07);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.advisor-welcome-tagline,
.advisor-welcome-lede {
  margin: 0;
  max-width: 24em;
  font-size: 14px;
  line-height: 1.5;
  color: #64748b;
}

.advisor-welcome-greeting,
.advisor-welcome-title {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  color: #475569;
}

.advisor-welcome-title {
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #101828;
}

.advisor-welcome-compose-host,
.advisor-welcome-canvas > .ai-advisor-foot,
.ai-advisor-shell.is-advisor-welcome > .ai-advisor-foot {
  width: 100%;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.advisor-welcome-compose-host .ai-compose-wrap,
.advisor-welcome-canvas > .ai-advisor-foot .ai-compose-wrap,
.ai-advisor-shell.is-advisor-welcome > .ai-advisor-foot .ai-compose-wrap {
  padding: 0;
}

.advisor-welcome-compose-host .ai-compose-box,
.advisor-welcome-canvas > .ai-advisor-foot .ai-compose-box,
.ai-advisor-shell.is-advisor-welcome > .ai-advisor-foot .ai-compose-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: end;
  gap: 10px 12px;
  min-height: 136px;
  padding: 16px 16px 14px;
  border-radius: 22px;
  border-color: #e8edf2;
  background: #fff;
  box-shadow: 0 8px 32px rgba(15, 35, 62, 0.06);
}

.advisor-welcome-compose-host .ai-compose-stack,
.advisor-welcome-canvas > .ai-advisor-foot .ai-compose-stack,
.ai-advisor-shell.is-advisor-welcome > .ai-advisor-foot .ai-compose-stack {
  display: contents;
}

.advisor-welcome-compose-host .ai-compose-input-wrap,
.advisor-welcome-canvas > .ai-advisor-foot .ai-compose-input-wrap,
.ai-advisor-shell.is-advisor-welcome > .ai-advisor-foot .ai-compose-input-wrap {
  display: contents;
}

.advisor-welcome-compose-host .ai-compose-input-wrap textarea,
.advisor-welcome-canvas > .ai-advisor-foot .ai-compose-input-wrap textarea,
.ai-advisor-shell.is-advisor-welcome > .ai-advisor-foot .ai-compose-input-wrap textarea {
  grid-column: 1 / -1;
  grid-row: 1;
  min-height: 64px;
  max-height: 160px;
  padding: 2px 4px 4px;
  font-size: 15px;
}

.advisor-welcome-compose-host .beeai-compose-toolbar,
.advisor-welcome-canvas > .ai-advisor-foot .beeai-compose-toolbar,
.ai-advisor-shell.is-advisor-welcome > .ai-advisor-foot .beeai-compose-toolbar {
  grid-column: 1;
  grid-row: 2;
  align-self: end;
  min-width: 0;
}

.advisor-welcome-compose-host .ai-compose-send,
.advisor-welcome-canvas > .ai-advisor-foot .ai-compose-send,
.ai-advisor-shell.is-advisor-welcome > .ai-advisor-foot .ai-compose-send {
  grid-column: 2;
  grid-row: 2;
  align-self: end;
  width: 40px;
  height: 40px;
  margin-top: 0;
  border-radius: 50%;
}

.advisor-welcome-skills-dock {
  flex-shrink: 0;
  padding: 10px 0 0;
  border-top: none;
  background: transparent;
}

.advisor-welcome-skills-dock[hidden] {
  display: none !important;
}

.advisor-welcome-skills-inner {
  width: 100%;
  display: grid;
  gap: 12px;
}

.advisor-welcome-skill-pages {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 20px;
  padding: 0 2px;
}

.advisor-welcome-page-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  color: #64748b;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.3;
  cursor: pointer;
  transition: color 0.15s ease;
  box-shadow: none;
}

.advisor-welcome-page-tab-label {
  white-space: nowrap;
}

.advisor-welcome-page-tab.is-active {
  color: #101828;
  font-weight: 800;
  background: transparent;
  box-shadow: none;
}

.advisor-welcome-page-tab:not(.is-active):hover,
.advisor-welcome-page-tab:not(.is-active):focus-visible {
  color: #155eef;
  outline: none;
}

.advisor-welcome-skill-pages-body {
  min-height: 0;
}

.advisor-welcome-skill-page[hidden] {
  display: none !important;
}

.advisor-welcome-skill-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.advisor-welcome-skill-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
  min-height: 88px;
  padding: 14px 38px 14px 14px;
  border: 1px solid #e8edf2;
  border-radius: 14px;
  color: #172033;
  text-align: left;
  background: #fff;
  box-shadow: 0 2px 8px rgba(15, 35, 62, 0.04);
  cursor: pointer;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease, background 0.18s ease;
}

.advisor-welcome-skill-card-head {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  max-width: 100%;
}

.advisor-welcome-skill-card-icon {
  flex: 0 0 auto;
  font-size: 14px;
  line-height: 1;
  color: #475569;
}

.advisor-welcome-skill-card:hover,
.advisor-welcome-skill-card:focus-visible {
  border-color: rgba(21, 94, 239, 0.32);
  background: #f8fbff;
  box-shadow: 0 8px 20px rgba(21, 94, 239, 0.1);
  outline: none;
  transform: translateY(-1px);
}

.advisor-welcome-skill-card-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  color: #155eef;
  background: #eef4ff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
}

.advisor-welcome-skill-card-title {
  display: block;
  width: 100%;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  color: #101828;
}

.advisor-welcome-skill-card-desc {
  display: -webkit-box;
  width: 100%;
  margin: 0;
  overflow: hidden;
  font-size: 12px;
  line-height: 1.5;
  color: #64748b;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.advisor-welcome-skill-card-go {
  position: absolute;
  right: 12px;
  bottom: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  color: #94a3b8;
  background: #f8fafc;
  transition: color 0.15s ease, background 0.15s ease;
}

.advisor-welcome-skill-card:hover .advisor-welcome-skill-card-go,
.advisor-welcome-skill-card:focus-visible .advisor-welcome-skill-card-go {
  color: #155eef;
  background: #eef4ff;
}

.advisor-welcome-skill-card b {
  font-size: 14px;
  font-weight: 700;
  color: #101828;
}

.advisor-welcome-skill-card small {
  font-size: 12px;
  line-height: 1.5;
  color: #64748b;
}

.advisor-welcome-skill-section {
  display: grid;
  gap: 10px;
}

.advisor-welcome-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 18px;
  padding: 0 4px;
}

.advisor-welcome-tab {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0;
  border: none;
  background: transparent;
  color: #64748b;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: color 0.15s ease;
}

.advisor-welcome-tab.is-active {
  color: #101828;
  font-weight: 800;
  cursor: default;
}

.advisor-welcome-tab:not(.is-active):hover,
.advisor-welcome-tab:not(.is-active):focus-visible {
  color: #155eef;
  outline: none;
}

.advisor-welcome-skill-panel {
  min-height: 0;
  padding: 0;
}

.advisor-welcome-skills-label,
.advisor-welcome-section-label {
  margin: 0;
  padding: 0 2px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #64748b;
}

.advisor-welcome-skill-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.advisor-welcome-skill-chips .ai-suggest-chip {
  min-height: 26px;
  padding: 0 9px;
  border-radius: 999px;
  font-size: 11px;
}

.advisor-welcome-starters {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.advisor-welcome-foot {
  margin: 0;
  padding-top: 4px;
}

.ai-advisor-chat-scroll .ai-chat-starter-grid {
  max-width: none;
  width: 100%;
}

.ai-chat-starter-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.ai-chat-starter-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
  min-height: 118px;
  padding: 14px 14px 12px 18px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  color: #172033;
  text-align: left;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 35, 62, 0.04);
  cursor: pointer;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease, background 0.18s ease;
  overflow: hidden;
}

.ai-chat-starter-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  bottom: 14px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(180deg, #155eef 0%, #36cfc9 100%);
}

.ai-chat-starter-card[data-starter-index="2"]::before {
  background: linear-gradient(180deg, #0f766e 0%, #14b8a6 100%);
}

.ai-chat-starter-card[data-starter-index="3"]::before {
  background: linear-gradient(180deg, #7c3aed 0%, #a855f7 100%);
}

.ai-chat-starter-card:hover,
.ai-chat-starter-card:focus-visible {
  border-color: rgba(21, 94, 239, 0.32);
  background: #f8fbff;
  box-shadow: 0 10px 24px rgba(21, 94, 239, 0.1);
  outline: none;
  transform: translateY(-1px);
}

.ai-chat-starter-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  color: #0f766e;
  background: #ecfdf5;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.35;
  white-space: nowrap;
}

.ai-chat-starter-card[data-starter-index="1"] .ai-chat-starter-tag {
  color: #155eef;
  background: #eef4ff;
}

.ai-chat-starter-card[data-starter-index="3"] .ai-chat-starter-tag {
  color: #7c3aed;
  background: #f5f3ff;
}

.ai-chat-starter-title {
  min-width: 0;
  margin: 0;
  color: #101828;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.ai-chat-starter-desc {
  min-width: 0;
  margin: 0;
  color: #64748b;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

@media (max-width: 900px) {
  .ai-chat-starter-grid {
    grid-template-columns: 1fr;
  }

  .ai-chat-starter-card {
    min-height: 0;
  }
}

.ai-chat-context-summary em,
.ai-chat-context-summary .ai-context-pill {
  min-height: 22px;
  padding: 2px 9px;
  border: 1px solid #d5e1ee;
  border-radius: 999px;
  color: #40516a;
  background: rgba(255, 255, 255, .82);
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
}

.ai-chat-context-summary .ai-context-pill.is-hint {
  color: #155eef;
  border-color: rgba(21, 94, 239, 0.22);
  background: rgba(21, 94, 239, 0.07);
  max-width: min(100%, 280px);
  overflow: hidden;
  text-overflow: ellipsis;
}

.advisor-welcome-greeting .advisor-msg-hover-bar,
.advisor-welcome-greeting .advisor-msg-feedback {
  display: none;
}

.advisor-welcome-greeting .advisor-thread-role {
  display: none;
}

.advisor-welcome-greeting .advisor-thread-msg.is-assistant.is-casual .advisor-thread-bubble {
  display: block;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-size: 14px;
  line-height: 1.65;
  color: var(--ai-text);
}

.ai-advisor-float.is-beeai-expanded .ai-chat-header-center {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  text-align: left;
}
.ai-advisor-float.is-beeai-expanded .ai-chat-session-title {
  flex-shrink: 0;
  max-width: none;
}

.ai-chat-context-status:empty {
  display: none;
}

.ai-advisor-float.is-beeai-expanded .ai-chat-context-status {
  display: none;
}
.ai-advisor-shell > .beeai-work-context:empty {
  display: none;
}
.ai-advisor-foot .beeai-compose-context:empty {
  display: none;
  padding: 0;
}

.ai-chat-header-brand-mini .ai-chat-mark,
.beeai-sidebar-logo {
  color: #155eef;
}

.ai-chat-session-title,
.advisor-welcome-title,
.advisor-chat-card-bubble .advisor-result-head h4,
.beeai-settings-head h3 {
  color: #101828;
}

.ai-chat-empty-hero p,
.ai-chat-suggestions-label,
.beeai-sidebar-agent,
.beeai-sidebar-label,
.beeai-context-desc,
.advisor-chat-card-bubble .advisor-lead,
.beeai-settings-intro,
.beeai-proactive-desc {
  color: #53657c;
}

.ai-chat-suggestions {
  justify-content: flex-start;
}

.ai-chat-suggestions button,
.beeai-context-nav-btn,
.beeai-context-chip,
.beeai-branch-trigger,
.beeai-branch-btn,
.beeai-tool-btn {
  border-color: #d5e1ee;
  color: #253955;
  background: #fff;
  font-weight: 700;
}

.ai-chat-suggestions button:hover,
.beeai-context-nav-btn:hover,
.beeai-context-chip:hover,
.beeai-branch-trigger:hover,
.beeai-branch-btn:hover,
.beeai-tool-btn:hover {
  border-color: rgba(21, 94, 239, .4);
  color: #155eef;
  background: #f3f7ff;
}

.advisor-chat-thread .advisor-thread-msg.is-user,
.ai-advisor-chat-scroll .advisor-thread-msg.is-user {
  background: linear-gradient(135deg, #155eef 0%, #0f766e 100%);
}

.advisor-chat-thread .advisor-thread-msg.is-assistant:not(.advisor-typing-bubble):not(.is-casual),
.ai-advisor-chat-scroll > .advisor-thread-msg.is-assistant:not(.advisor-typing-bubble):not(.is-casual),
.advisor-chat-card-bubble {
  border-color: #d9e6f2;
  background: #fff;
  box-shadow: 0 10px 26px rgba(15, 35, 62, .07);
}

.ai-compose-box {
  border-color: #cfddea;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 35, 62, .08);
}

.ai-compose-box:focus-within {
  border-color: rgba(21, 94, 239, .58);
  box-shadow: 0 0 0 3px rgba(21, 94, 239, .13), 0 14px 30px rgba(15, 35, 62, .1);
}

.ai-compose-box textarea,
.ai-compose-stack textarea,
.ai-compose-input-wrap textarea {
  color: #172033;
}

.ai-compose-send {
  background: linear-gradient(135deg, #155eef 0%, #0f766e 100%);
  box-shadow: 0 8px 16px rgba(21, 94, 239, .22);
}

.beeai-session-rail {
  border-right-color: #dbe7f4;
  background: linear-gradient(180deg, #f8fbff 0%, #eef5f7 100%);
}

.beeai-session-row {
  border-radius: 8px;
}

.beeai-session-row.is-active {
  background: #eaf2ff;
  box-shadow: inset 3px 0 0 #155eef;
}

.beeai-new-chat-btn {
  border: 1px solid rgba(21, 94, 239, .28);
  color: #155eef;
  background: #eef5ff;
  font-weight: 800;
}

.beeai-new-chat-btn:hover {
  background: #e1edff;
}

.beeai-proactive-card,
.beeai-settings-role-card,
.beeai-settings-placeholder-item,
.beeai-confirm-card,
.beeai-context-subpanel {
  border-color: #d9e6f2;
  background: #fff;
  box-shadow: 0 6px 16px rgba(15, 35, 62, .045);
}

#settingsView .ai-gw-settings { --ai-accent: #155eef; }

.ai-gw-intro {
  border-color: #d8e6f3;
  background: linear-gradient(135deg, #fff 0%, #f2f7ff 58%, #f1fbf7 100%);
  box-shadow: 0 14px 34px rgba(15, 35, 62, .08);
}

.ai-gw-kicker {
  color: #155eef;
  letter-spacing: .1em;
}

.ai-gw-intro-copy h4,
.ai-gw-panel-head h5,
.ai-gw-push-table td b,
.ai-gw-stat b,
.ai-gw-history-row h5 {
  color: #101828;
}

.ai-gw-intro-copy p,
.ai-gw-panel-head p,
.ai-gw-threshold-group-desc,
.ai-gw-muted,
.ai-gw-field-hint,
.ai-gw-foot-hint,
.ai-gw-history-row p,
.ai-gw-url,
.ai-gw-key {
  color: #53657c;
}

.ai-gw-subtab,
.ai-gw-panel,
.ai-gw-history-row,
.ai-gw-kv > div,
.ai-gw-stat,
.ai-gw-mini-list li {
  border-color: #dbe7f4;
  background: #fff;
}

.ai-gw-subtab.is-active,
.ai-gw-history-tab.is-active {
  color: #155eef;
  border-color: rgba(21, 94, 239, .34);
  background: #eef5ff;
}

.ai-gw-status.is-on,
.ai-gw-key-tag.is-ok,
.ai-gw-badge.is-ready {
  color: #067647;
  background: #ecfdf3;
  border-color: #b7ebc6;
}

.ai-gw-status.is-warn,
.ai-gw-badge.is-demo {
  color: #9a4b0b;
  background: #fff7ed;
  border-color: #fed7aa;
}

.ai-gw-key-tag.is-missing,
.ai-gw-badge.is-off,
.ai-gw-key.is-missing {
  color: #b42318;
  background: #fff1f0;
}

.ai-gw-push-table th,
.ai-gw-calls-table th {
  color: #40516a;
  background: #f1f6fb;
}

.ai-gw-push-table td,
.ai-gw-calls-table td {
  color: #22324a;
}

@media (max-width: 720px) {
  .task-beeai-chip-bar { padding: 7px; }
  .task-beeai-chip { flex: 1 1 auto; justify-content: center; }
  .ai-advisor-float { border-radius: 10px 10px 0 0; }
  .ai-advisor-float.is-beeai-expanded .beeai-session-rail {
    display: none;
  }
  .ai-advisor-float.is-beeai-expanded .beeai-main-column,
  .ai-advisor-float.is-beeai-expanded .beeai-main-column .ai-advisor-shell {
    width: 100%;
    min-width: 0;
  }
  .beeai-main-column.is-context-panel-open {
    position: relative;
  }
  .beeai-context-side-panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(100%, 320px);
    min-width: 0;
    z-index: 30;
  }
  .advisor-artifacts-hint-text {
    display: none;
  }
  .beeai-advisor-artifacts-host .advisor-artifacts-panel {
    box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
  }
  .ai-chat-header {
    grid-template-columns: 32px minmax(0, 1fr) auto;
    padding: 9px 10px;
  }
  .ai-chat-context-summary small {
    white-space: normal;
  }
  .advisor-welcome-canvas {
    padding: 20px 16px 16px;
  }
  .advisor-welcome-stage {
    gap: 0;
    padding: 0;
  }
  .advisor-welcome-brand {
    flex-direction: column;
    align-items: center;
  }
  .advisor-welcome-brand-text {
    align-items: center;
    text-align: center;
  }
  .advisor-welcome-skill-cards {
    grid-template-columns: 1fr;
  }
  .advisor-welcome-canvas > .ai-advisor-foot .ai-compose-box,
  .advisor-welcome-compose-host .ai-compose-box,
  .ai-advisor-shell.is-advisor-welcome > .ai-advisor-foot .ai-compose-box {
    min-height: 120px;
    border-radius: 18px;
  }
  .advisor-welcome-tabs {
    gap: 2px 12px;
  }
  .ai-chat-starter-grid {
    grid-template-columns: 1fr;
  }
  .ai-chat-starter-card {
    min-height: 0;
  }
}

@media (max-width: 980px) {
  .td-focus-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .td-focus-item:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  #taskDrawer .drawer-body,
  #feedbackDrawer .drawer-body,
  .task-subtask-drawer-body,
  .task-comments-drawer-body {
    padding: 12px;
  }
  .td-sec-title {
    padding: 15px 14px;
  }
  .td-focus-strip {
    grid-template-columns: 1fr;
    margin-top: 12px;
  }
  .td-focus-item:last-child {
    grid-column: auto;
  }
  .td-focus-item b {
    white-space: normal;
  }
  .td-detail-tabs {
    gap: 4px;
    padding: 6px;
    overflow-x: auto;
  }
  .td-detail-tab {
    flex: 1 0 0;
    min-width: 0;
    height: 32px;
    padding: 0 8px;
    font-size: 12px;
    white-space: nowrap;
  }
  .td-detail-panel .td-sec-desc .td-desc,
  .td-detail-panel[data-task-detail-panel="collab"] .td-sec-comments,
  .td-detail-panel[data-task-detail-panel="records"] .td-sec-log {
    max-height: none;
  }
}

/* Global UI upgrade v3: operational cockpit clarity */
.task-card-grid-wrap,
.task-list-panel,
.task-page-main {
  background: #f6f9fc;
}

.task-card-grid-head {
  position: sticky;
  top: 0;
  z-index: 5;
  min-height: 42px;
  border: 1px solid #d9e4f1;
  border-radius: 8px 8px 0 0;
  background: linear-gradient(180deg, #f8fbff 0%, #edf4fb 100%);
  box-shadow: 0 8px 18px rgba(15, 35, 62, .05);
}
#tasksView .task-card-grid-head-wrap .task-card-grid-head {
  position: static;
  top: auto;
  z-index: auto;
  min-height: 0;
  border: none;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.task-card-grid-layout .task-work-card {
  position: relative;
  border: 1px solid #dbe6f2;
  border-left-width: 4px;
  border-left-color: #cfdbea;
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(15, 35, 62, .045);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}

.task-card-grid-layout .task-work-card:hover {
  border-color: #bfd0e4;
  border-left-color: #155eef;
  background: #fff;
  box-shadow: 0 14px 32px rgba(15, 35, 62, .08);
  transform: translateY(-1px);
}

.task-card-grid-layout .task-work-card.is-active {
  border-color: rgba(21, 94, 239, .42);
  border-left-color: #155eef;
  background: linear-gradient(180deg, #fff 0%, #f4f8ff 100%);
  box-shadow: 0 0 0 3px rgba(21, 94, 239, .1), 0 16px 34px rgba(15, 35, 62, .09);
}

.task-card-grid-layout .task-work-card.is-overdue,
.task-card-grid-layout .task-work-card.has-fr-violation,
.task-card-grid-layout .task-work-card.has-review-reject {
  border-left-color: #d92d20;
  background: linear-gradient(90deg, #fff5f3 0%, #fff 24%, #fbfdff 100%);
}

.task-card-grid-layout .task-work-card.has-due-soon:not(.is-overdue) {
  border-left-color: #f79009;
  background: linear-gradient(90deg, #fff8ec 0%, #fff 24%, #fbfdff 100%);
}

.task-card-grid-layout .task-work-card.is-done {
  border-left-color: #12b76a;
  background: #fbfdfb;
}

.priority-badge {
  box-shadow: 0 1px 2px rgba(15, 35, 62, .08);
}

.priority-badge.p0 {
  color: #fff;
  background: #c0102f;
}

.priority-badge.p1 {
  color: #7a2e0e;
  background: #ffedd5;
}

.priority-badge.p2 {
  color: #174ea6;
  background: #e8f1ff;
}

.priority-badge.p3 {
  color: #52647b;
  background: #eef3f8;
}

.task-work-title-text {
  color: #101828;
  line-height: 1.35;
  letter-spacing: 0;
}

.task-work-subline,
.task-meta-foot,
.task-work-tags,
.task-deadline-line,
.task-status-line {
  color: #53657c;
}

.task-work-col-owner,
.task-work-col-project,
.task-work-col-deadline,
.task-work-col-status {
  color: #253955;
}

.task-status-stack {
  gap: 8px;
}

.task-more-btn {
  min-height: 30px;
  border-color: #d5e1ee;
  color: #253955;
  background: #fff;
  font-weight: 800;
}

.task-more-btn:hover,
.task-card-menu-wrap.is-open .task-more-btn {
  color: #155eef;
  border-color: rgba(21, 94, 239, .36);
  background: #eef5ff;
}

.task-aside-panel {
  border-color: #dbe6f2;
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  box-shadow: 0 8px 20px rgba(15, 35, 62, .05);
}

.task-aside-head h3 {
  color: #101828;
}

.task-schedule-item,
.task-aside-filter-chip,
.task-aside-action {
  border-color: #d9e4f1;
  color: #253955;
  background: #fff;
}

.task-schedule-item:hover,
.task-aside-action:hover {
  border-color: rgba(21, 94, 239, .34);
  background: #f4f8ff;
}

.xm-ai-empty-advisor {
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid #d7e4f2;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(21, 94, 239, .08) 0%, rgba(15, 118, 110, .07) 100%),
    #fff;
  box-shadow: 0 10px 24px rgba(15, 35, 62, .06);
  text-align: left;
}

.xm-ai-empty-advisor b {
  color: #101828;
  font-size: 14px;
}

.xm-ai-empty-advisor p {
  margin: 0;
  color: #53657c;
  line-height: 1.55;
}

.xm-ai-brief-card,
.xm-ai-stats-card,
.xm-ai-project-card,
.xm-ai-stats-lead,
.xm-ai-brief-lead {
  border-color: #dbe6f2;
  background: #fff;
  box-shadow: 0 8px 20px rgba(15, 35, 62, .045);
}

.xm-ai-stats-item {
  border-color: #e0e8f2;
  background: #fbfdff;
}

.xm-ai-stats-item.is-high,
.xm-ai-stats-item.high {
  border-left-color: #d92d20;
  background: #fff8f6;
}

.xm-ai-stats-item.is-medium,
.xm-ai-stats-item.medium {
  border-left-color: #f79009;
  background: #fffaf0;
}

.xm-ai-top-item {
  border-color: #dbe6f2;
  background: #fff;
}

.xm-ai-top-item.is-high,
.xm-ai-top-item.high {
  border-left-color: #d92d20;
}

.xm-ai-top-item.is-medium,
.xm-ai-top-item.medium {
  border-left-color: #f79009;
}

.xm-ai-rank {
  color: #155eef;
  background: #eef5ff;
}

.xm-ai-meta-row span {
  color: #40516a;
  background: #f2f6fb;
  border-color: #dbe6f2;
}

@media (max-width: 720px) {
  .task-card-grid-head {
    position: static;
  }
  #tasksView .task-card-grid-head-wrap {
    position: static;
  }
  .task-card-grid-layout .task-work-card {
    border-left-width: 3px;
  }
  .xm-ai-empty-advisor {
    padding: 12px;
  }
  .td-ai-advisor-action-list {
    grid-template-columns: 1fr;
  }
  .fb-ai-advisor-action-list {
    grid-template-columns: 1fr;
  }
  .stats-ai-advisor-action-list {
    grid-template-columns: 1fr;
  }
}

/* Dashboard cockpit v1: role-aware AI command center */
.xm-home {
  color: #172033;
}

.xm-home-main {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  gap: 14px;
}

.xm-greeting {
  padding: 0 0 6px;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.xm-greeting-copy h2,
.xm-manager-head h2 {
  color: #101828;
  letter-spacing: 0;
}

.xm-greeting-date,
.xm-greeting-sub,
.xm-manager-head p {
  color: #52647b;
}

.xm-view-switcher {
  gap: 8px;
  flex-shrink: 0;
  max-width: min(100%, 520px);
}

.xm-view-card {
  border-color: #d8e4f1;
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 6px 16px rgba(15, 35, 62, .045);
}

.xm-view-card:hover {
  border-color: rgba(21, 94, 239, .34);
  background: #f4f8ff;
}

.xm-view-card.active {
  border-color: rgba(21, 94, 239, .44);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(21, 94, 239, .1), 0 12px 28px rgba(15, 35, 62, .08);
}

.xm-view-text b {
  color: #101828;
}

.xm-view-text small {
  color: #53657c;
}

.xm-command-center {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid #d7e4f2;
  border-radius: var(--dash-card-radius);
  background:
    linear-gradient(135deg, rgba(15, 118, 110, .06) 0%, rgba(21, 94, 239, .05) 100%),
    #fff;
  box-shadow: 0 8px 24px rgba(15, 35, 62, .06);
  overflow: hidden;
}

.xm-command-center-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  grid-column: 1 / -1;
  min-width: 0;
}

.xm-command-center-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.xm-command-advisor-open {
  font-size: 12px;
  font-weight: 650;
  color: #155eef;
}

.xm-command-collapsed-strip {
  grid-column: 1 / -1;
  min-width: 0;
}

.xm-command-strip-text {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: #52647b;
}

.xm-command-center.is-collapsed .xm-command-expanded {
  display: none !important;
}

.xm-command-center:not(.is-collapsed) .xm-command-collapsed-strip {
  display: none;
}

.xm-command-expanded {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: stretch;
  min-width: 0;
}

.xm-command-expanded[hidden] {
  display: none;
}

.xm-command-expanded > .xm-command-insight {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
}

.xm-command-deck-stack {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 200px;
  align-self: stretch;
}

.xm-command-insight {
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid rgba(207, 221, 234, .92);
  border-radius: 8px;
  background: rgba(255, 255, 255, .88);
}

.xm-command-insight[hidden] {
  display: none !important;
}

.xm-command-center-copy {
  display: grid;
  align-content: start;
  gap: 4px;
  min-width: 0;
}

.xm-command-center.is-collapsed {
  align-items: center;
  padding: 9px 12px;
}

.xm-command-priority-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 380px);
  gap: 12px;
  align-items: stretch;
  min-width: 0;
}

.xm-command-priority-row--followups-only {
  grid-template-columns: minmax(260px, 380px);
  justify-content: end;
}

.xm-command-followups-slot {
  min-width: 0;
  align-self: stretch;
}

.xm-command-followups-slot:empty {
  display: none;
}

.xm-command-priority-row--followups-only .xm-command-followups-slot:empty {
  display: none;
}

.xm-command-priority-row:not(:has(.xm-command-priority)):not(:has(.xm-command-followups-panel)):not(:has(.xm-command-aside)) {
  display: none;
}

.xm-command-priority-row:not(.xm-command-priority-row--followups-only):not(:has(.xm-command-followups-panel)):not(:has(.xm-command-aside)) {
  grid-template-columns: 1fr;
}

.xm-command-toggle {
  justify-self: end;
  min-height: 32px;
  padding: 6px 12px;
  border: 1px solid rgba(21, 94, 239, .3);
  border-radius: 8px;
  color: #155eef;
  background: #eef5ff;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 6px 14px rgba(21, 94, 239, .08);
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease, transform .16s ease;
}

.xm-command-toggle:hover,
.xm-command-toggle:focus-visible {
  border-color: rgba(21, 94, 239, .5);
  background: #f7fbff;
  box-shadow: 0 10px 20px rgba(21, 94, 239, .12);
  transform: translateY(-1px);
  outline: none;
}

.xm-command-kicker {
  width: fit-content;
  padding: 2px 7px;
  border: 1px solid rgba(15, 118, 110, .24);
  border-radius: 999px;
  color: #0f766e;
  background: #ecfdf3;
  font-size: 11px;
  font-weight: 900;
}

.xm-command-center h3 {
  margin: 0;
  color: #101828;
  font-size: 15px;
  line-height: 1.3;
}

.xm-command-center p {
  margin: 0;
  max-width: 520px;
  color: #52647b;
  font-size: 12px;
  line-height: 1.45;
}

.xm-command-deck {
  display: none;
  grid-template-columns: 1fr;
  gap: 10px;
  width: 100%;
}

.xm-command-deck.is-active {
  display: grid;
}

.xm-command-insight .xm-ai-brief-shell.is-compact {
  margin: 0;
}

.xm-command-insight .xm-ai-head--compact {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 4px;
}

.xm-command-summary-only,
.xm-command-insight-body .xm-command-summary {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: #334155;
}

.xm-command-insight-body {
  display: grid;
  gap: 10px;
}

.xm-command-insight-body .xm-command-summary {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.xm-command-signals {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.xm-command-signal {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid #d7e4f2;
  border-radius: 999px;
  background: #fff;
  color: #334155;
  font: inherit;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.xm-command-signal.is-static {
  cursor: default;
}

.xm-command-signal b {
  font-size: 12px;
  font-weight: 700;
}

.xm-command-signal span {
  font-size: 11px;
  color: #64748b;
}

.xm-command-signal.is-danger {
  border-color: #fecaca;
  background: #fff5f5;
  color: #b42318;
}

.xm-command-signal.is-danger span {
  color: #d92d20;
}

.xm-command-signal.is-warn {
  border-color: #fde68a;
  background: #fffbeb;
  color: #b45309;
}

.xm-command-signal.is-warn span {
  color: #d97706;
}

.xm-command-signal.is-info {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

.xm-command-signal:not(.is-static):hover,
.xm-command-signal:not(.is-static):focus-visible {
  border-color: rgba(21, 94, 239, .34);
  box-shadow: 0 4px 12px rgba(21, 94, 239, .08);
}

.xm-command-priority {
  padding: 8px 10px;
  border: 1px solid #e2ebf5;
  border-radius: 8px;
  background: linear-gradient(180deg, #fbfdff 0%, #fff 100%);
}

.xm-command-priority-title {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: none;
  color: #64748b;
}

.xm-command-priority-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.xm-command-priority-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-height: 34px;
}

.xm-command-priority-rank {
  display: inline-grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  background: #155eef;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}

.xm-command-priority-copy {
  min-width: 0;
}

.xm-command-priority-copy b {
  display: block;
  overflow: hidden;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
  color: #0f172a;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.xm-command-priority-copy small {
  display: block;
  overflow: hidden;
  margin-top: 1px;
  font-size: 11px;
  line-height: 1.35;
  color: #64748b;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.xm-command-next-btn {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 650;
  color: #155eef;
}

.xm-command-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.xm-command-quick-btn {
  min-height: 28px;
  padding: 0 12px;
  border: 1px dashed #c7d7ea;
  border-radius: 999px;
  background: rgba(255, 255, 255, .92);
  color: #155eef;
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease;
}

.xm-command-quick-btn:hover,
.xm-command-quick-btn:focus-visible {
  border-color: rgba(21, 94, 239, .42);
  background: #eef5ff;
}

.xm-command-insight-empty {
  margin: 0;
  font-size: 12px;
  color: #64748b;
}

.xm-command-followups:empty,
.xm-command-followups[hidden] {
  display: none !important;
}

.xm-command-insight .xm-ai-head {
  margin-bottom: 8px;
  align-items: center;
}

.xm-command-insight .xm-command-insight-refresh {
  margin-left: auto;
  font-size: 12px;
}

.xm-command-insight .xm-command-insight-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.xm-command-insight .xm-ai-head--brief .xm-command-insight-actions {
  flex-shrink: 0;
}

.xm-command-insight .xm-ai-summary {
  margin: 0 0 8px;
  font-size: 13px;
  line-height: 1.55;
}

.xm-command-insight .xm-ai-block--priority h4 {
  margin: 0 0 6px;
  font-size: 12px;
}

.xm-command-insight .xm-ai-loading {
  margin: 0;
  color: #53657c;
  font-size: 12px;
}

.xm-command-deck button {
  display: grid;
  gap: 4px;
  align-content: center;
  min-width: 0;
  width: 100%;
  min-height: 64px;
  padding: 10px 12px;
  border: 1px solid #cfddea;
  border-radius: 8px;
  color: #172033;
  text-align: left;
  background: rgba(255, 255, 255, .9);
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(15, 35, 62, .055);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.xm-command-deck button:hover,
.xm-command-deck button:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(21, 94, 239, .42);
  background: #f7fbff;
  box-shadow: 0 14px 28px rgba(21, 94, 239, .12);
  outline: none;
}

.xm-command-deck button:active {
  transform: translateY(0);
  box-shadow: 0 8px 18px rgba(15, 35, 62, .07);
}

.xm-command-deck b {
  min-width: 0;
  color: #101828;
  font-size: 13px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.xm-command-deck span {
  min-width: 0;
  color: #53657c;
  font-size: 11px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.xm-command-followups-panel,
.xm-command-aside {
  display: grid;
  gap: 8px;
  height: 100%;
  min-height: 88px;
  padding: 10px 12px;
  border: 1px solid rgba(207, 221, 234, .92);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(248, 251, 255, .96) 0%, rgba(255, 255, 255, .92) 100%);
}

.xm-command-aside-head,
.xm-command-followups-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0;
}

.xm-command-aside-head span,
.xm-command-followups-head span {
  color: #101828;
  font-size: 13px;
  font-weight: 900;
}

.xm-command-aside-head small,
.xm-command-followups-head small {
  color: #53657c;
  font-size: 12px;
  font-weight: 700;
}

.xm-command-aside-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.xm-command-aside-list li {
  display: grid;
  gap: 3px;
  padding: 8px 10px;
  border: 1px solid rgba(207, 221, 234, .85);
  border-radius: 8px;
  background: rgba(255, 255, 255, .82);
}

.xm-command-aside-list b {
  color: #101828;
  font-size: 12px;
  line-height: 1.3;
}

.xm-command-aside-list span {
  color: #53657c;
  font-size: 11px;
  line-height: 1.45;
}

.xm-command-followups:empty {
  display: none;
}

.xm-command-followups-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  max-height: 176px;
  overflow: auto;
  padding-right: 2px;
}

.xm-command-followup-item,
.xm-command-followups-empty {
  min-width: 0;
  border: 1px solid rgba(207, 221, 234, .9);
  border-radius: 8px;
  background: rgba(255, 255, 255, .78);
}

.xm-command-followup-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 8px 9px;
}

.xm-command-followup-main {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.xm-command-followup-main b {
  color: #101828;
  font-size: 12px;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.xm-command-followup-main span {
  color: #53657c;
  font-size: 11px;
  line-height: 1.35;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.xm-command-followup-main small {
  color: #697b91;
  font-size: 10px;
  font-weight: 800;
}

.xm-command-followup-actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.xm-command-followup-open,
.xm-command-followup-done {
  min-height: 25px;
  padding: 3px 8px;
  border: 1px solid #cfddea;
  border-radius: 7px;
  background: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
  white-space: nowrap;
}

.xm-command-followup-open {
  color: #155eef;
  border-color: rgba(21, 94, 239, .28);
  background: #eef5ff;
}

.xm-command-followup-done {
  color: #0f766e;
  border-color: rgba(15, 118, 110, .24);
  background: #ecfdf3;
}

.xm-command-followup-open:hover,
.xm-command-followup-done:hover {
  filter: brightness(.98);
  box-shadow: 0 8px 16px rgba(15, 35, 62, .08);
}

.xm-role-panel.active {
  display: grid;
  gap: 0;
}
.xm-role-panel[data-role-panel="manager"].active,
.xm-role-panel[data-role-panel="boss"].active,
.xm-role-panel[data-role-panel="employee"].active {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.xm-panel,
.xm-manager-head {
  border-color: #dbe6f2;
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  box-shadow: 0 8px 22px rgba(15, 35, 62, .055);
}

.xm-panel-title h3,
.xm-panel-title-row h3 {
  color: #101828;
  letter-spacing: 0;
}

.xm-panel-title small,
.xm-list-body small,
.xm-priority-row small,
.command-row small {
  color: #53657c;
}

.xm-metrics article {
  border-color: #d7e4f2;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 35, 62, .06);
}

#employeeMetrics article,
#managerMetrics article,
#bossMetrics article {
  border-radius: var(--dash-card-radius);
  overflow: hidden;
}

.xm-metrics article:hover {
  border-color: rgba(21, 94, 239, .3);
  box-shadow: 0 12px 26px rgba(15, 35, 62, .075);
}

.xm-metric-label,
.xm-metrics article small {
  color: #53657c;
}

.xm-metrics article b {
  color: #101828;
}

.xm-ai-panel {
  border-color: rgba(21, 94, 239, .22);
}

.xm-ai-badge {
  color: #155eef;
  background: #eef5ff;
  border-color: rgba(21, 94, 239, .22);
}

.xm-priority-row,
.xm-response-row,
.xm-notice-row,
.xm-activity-row,
.xm-list-row,
.command-row,
.xm-project-row,
.rank-row {
  border-color: #dbe6f2;
  background: #fff;
}

.xm-priority-row:hover,
.xm-response-row:hover,
.xm-notice-row:hover,
.xm-activity-row:hover,
.xm-list-row:hover,
.command-row:hover,
.xm-project-row:hover,
.rank-row:hover {
  border-color: rgba(21, 94, 239, .3);
  background: #f7fbff;
}

.xm-table table th {
  color: #40516a;
  background: #f1f6fb;
}

.xm-table table td {
  color: #22324a;
}

@media (max-width: 1180px) {
  .xm-command-center {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .xm-command-expanded {
    grid-template-columns: 1fr;
  }
  .xm-command-expanded > .xm-command-insight,
  .xm-command-deck-stack {
    grid-column: 1;
    grid-row: auto;
  }
  .xm-command-deck-stack {
    min-width: 0;
  }
  .xm-command-deck.is-active {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xm-command-priority-row {
    grid-template-columns: 1fr;
  }
  .xm-command-priority-row--followups-only {
    grid-template-columns: 1fr;
    justify-content: stretch;
  }
  .xm-command-followups-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: 160px;
  }
}

@media (max-width: 820px) {
  .xm-command-deck {
    grid-template-columns: 1fr;
  }
  .xm-command-deck button {
    min-height: 70px;
  }
  .xm-command-followups-list {
    grid-template-columns: 1fr;
  }
  .xm-command-followup-item {
    grid-template-columns: 1fr;
  }
  .xm-command-followup-actions {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

@media (max-width: 720px) {
  .xm-command-center {
    border-radius: 8px;
    grid-template-columns: 1fr;
    padding: 12px;
  }
  .xm-command-toggle {
    justify-self: stretch;
  }
}

.app-version-panel { display: grid; gap: 12px; }
.app-version-hero { display: grid; gap: 8px; }
.app-version-badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: fit-content; min-width: 72px; padding: 8px 14px; border-radius: 999px;
  font-size: 22px; font-weight: 700; letter-spacing: .02em;
  color: #0f4c9a; background: linear-gradient(135deg, #e8f2ff, #f5f9ff);
  border: 1px solid #c8dcfb;
}
.app-version-markdown { color: var(--text); font-size: 14px; line-height: 1.65; }
.app-version-markdown h2, .app-version-markdown h3 { margin: 0 0 8px; font-size: 16px; }
.app-version-markdown ul { margin: 0; padding-left: 1.2em; }
.app-version-markdown li + li { margin-top: 4px; }
.app-version-plain {
  margin: 0; padding: 12px; border-radius: 8px; background: #f6f8fb;
  border: 1px solid var(--line); white-space: pre-wrap; font-size: 13px;
}
.app-version-history { display: grid; gap: 10px; }
.app-version-history-item {
  padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff;
}
.app-version-history-item header {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 6px;
}
.app-version-history-item header time { color: var(--muted); font-size: 12px; }
.app-version-history-item ul { margin: 0; padding-left: 1.2em; color: var(--muted); font-size: 13px; }
.app-version-hint code {
  padding: 1px 6px; border-radius: 4px; background: #eef3f8; font-size: 12px;
}
.topbar-user-menu-version {
  display: block; width: 100%; margin: 0; padding: 8px 14px 4px;
  border: 0; background: transparent; text-align: left;
  color: var(--muted); font-size: 12px; cursor: pointer;
}
.topbar-user-menu-version:hover { color: var(--primary); }
