/* 经营总览：沿用线上同构 UI 的灰阶、边线和节点语义色。 */
#view-analytics .dashboard-shell {
  --dashboard-brand: var(--ui-brand, #3e5abd);
  --dashboard-blue-muted: hsl(214 51% 45%);
  --dashboard-cyan: hsl(190 51% 35%);
  --dashboard-violet: hsl(260 51% 49%);
  --dashboard-amber: hsl(34 51% 36%);
  --dashboard-green: hsl(155 51% 32%);
  --dashboard-brand-soft: hsl(227 55% 96%);
  --dashboard-blue-muted-soft: hsl(214 45% 96%);
  --dashboard-cyan-soft: hsl(190 45% 95%);
  --dashboard-violet-soft: hsl(260 45% 96%);
  --dashboard-amber-soft: hsl(34 55% 95%);
  --dashboard-green-soft: hsl(155 42% 95%);
  --dashboard-brand-line: hsl(227 42% 80%);
  --dashboard-blue-muted-line: hsl(214 38% 80%);
  --dashboard-cyan-line: hsl(190 38% 76%);
  --dashboard-violet-line: hsl(260 38% 81%);
  --dashboard-amber-line: hsl(34 42% 76%);
  --dashboard-green-line: hsl(155 34% 76%);
  width: 100%;
  min-height: 100%;
  color: var(--ca-ink, #17191c);
  font-family: var(--ca-font-sans, "AIOS UI", "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif);
}

#view-analytics .dashboard-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 64px;
  margin-bottom: 16px;
}

#view-analytics .dashboard-heading-title {
  display: flex;
  align-items: center;
  gap: 10px;
}

#view-analytics .dashboard-heading h1 {
  margin: 0;
  color: var(--ca-ink, #17191c);
  font-size: 18px;
  line-height: 24px;
  font-weight: 700;
  letter-spacing: -.035em;
}

#view-analytics .dashboard-heading p {
  margin: 5px 0 0;
  color: var(--ui-text-muted, #697386);
  font-size: 12px;
  line-height: 18px;
}

.dashboard-heading-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.dashboard-scope {
  display: inline-flex;
  align-items: center;
  padding: 3px;
  border: 1px solid #e0e5ee;
  border-radius: 9px;
  background: #f5f6f8;
}

.dashboard-scope button {
  min-width: 58px;
  height: 30px;
  padding: 0 12px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #697386;
  font: inherit;
  font-size: var(--type-meta, 12px);
  font-weight: 500;
  cursor: pointer;
}

.dashboard-scope button:hover,
.dashboard-scope button:focus-visible {
  color: #17191c;
  outline: none;
}

.dashboard-scope button.is-active {
  border: 1px solid var(--dashboard-brand-line);
  background: #fff;
  color: var(--dashboard-brand);
  box-shadow: 0 1px 3px rgba(20, 33, 61, .06);
  font-weight: 600;
}

.dashboard-kpi-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.dashboard-kpi {
  min-height: 106px;
  padding: 16px 18px;
  border: 1px solid var(--ui-border, #e5e7eb);
  border-radius: 11px;
  background: #fff;
}

.dashboard-kpi span,
.dashboard-kpi small {
  display: block;
}

.dashboard-kpi span {
  color: var(--ui-text-muted, #697386);
  font-size: var(--type-body, 14px);
}

.dashboard-kpi strong {
  display: block;
  margin-top: 9px;
  color: #17191c;
  font-size: 28px;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
}

.dashboard-kpi small {
  margin-top: 8px;
  color: #8791a1;
  font-size: var(--type-meta, 12px);
  line-height: 18px;
}

.dashboard-kpi-primary strong { color: var(--dashboard-brand); }
.dashboard-kpi-warning strong { color: var(--dashboard-amber); }
.dashboard-kpi-success strong { color: var(--dashboard-green); }
.dashboard-kpi-focus strong { color: var(--dashboard-violet); }

.dashboard-grid {
  display: grid;
  gap: 16px;
  margin-bottom: 16px;
}

.dashboard-primary-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.dashboard-secondary-grid { grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); }

.dashboard-panel {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--ui-border, #e5e7eb);
  border-radius: 12px;
  background: #fff;
}

.dashboard-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px 13px;
  border-bottom: 1px solid #eef0f3;
}

.dashboard-panel-head h2 {
  margin: 0;
  color: #17191c;
  font-size: var(--type-section, 16px);
  line-height: 22px;
}

.dashboard-panel-head p {
  margin: 4px 0 0;
  color: #8791a1;
  font-size: var(--type-meta, 12px);
  line-height: 20px;
}

.dashboard-route-bars {
  display: grid;
  gap: 16px;
  padding: 18px 18px 8px;
}

.dashboard-route-bar-label {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8px;
  color: #343a40;
  font-size: var(--type-body, 14px);
}

.dashboard-route-bar-label b {
  color: #17191c;
  font-size: var(--type-body, 14px);
  font-weight: 600;
}

.dashboard-route-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--dashboard-route-color);
}

.dashboard-progress-track {
  height: 8px;
  margin-top: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #edf0f4;
}

.dashboard-progress-track i {
  display: block;
  height: 100%;
  min-width: 4px;
  border-radius: inherit;
}

.dashboard-route-bar > small {
  display: block;
  margin-top: 4px;
  color: #8791a1;
  font-size: var(--type-meta, 12px);
  text-align: right;
}

.dashboard-total-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 10px 18px 18px;
  padding-top: 13px;
  border-top: 1px solid #eef0f3;
  color: #697386;
  font-size: var(--type-meta, 12px);
}

.dashboard-total-line strong { color: #17191c; font-size: var(--type-body, 14px); }

.dashboard-team-table { padding: 0 18px 14px; }
.dashboard-team-head,
.dashboard-team-row {
  display: grid;
  grid-template-columns: minmax(110px, 1.3fr) minmax(120px, 1.3fr) 70px 70px;
  align-items: center;
  gap: 12px;
}

.dashboard-team-head {
  min-height: 35px;
  border-bottom: 1px solid #eef0f3;
  color: #8791a1;
  font-size: var(--type-meta, 12px);
}

.dashboard-team-row {
  min-height: 43px;
  border-bottom: 1px solid #f0f2f5;
  color: #697386;
  font-size: var(--type-body, 14px);
}

.dashboard-team-row:last-child { border-bottom: 0; }
.dashboard-team-row strong { color: #343a40; font-weight: 600; }
.dashboard-team-row b { display: flex; align-items: center; gap: 8px; color: #343a40; font-weight: 500; white-space: nowrap; }
.dashboard-team-row b i { display: block; flex: 0 0 var(--dashboard-team-width, 0%); width: var(--dashboard-team-width, 0%); height: 6px; border-radius: 99px; background: var(--dashboard-brand); }
.dashboard-team-row .dashboard-warning-count.is-warning { color: var(--dashboard-amber); font-weight: 700; }

.dashboard-dimension-panel { margin-bottom: 16px; }
.dashboard-dimension-switch { display: inline-flex; gap: 3px; padding: 3px; border: 1px solid #e3e7ee; border-radius: 8px; background: #f7f8fa; }
.dashboard-dimension-switch button { min-height: 28px; padding: 0 12px; border-radius: 6px; color: #697386; font-size: var(--type-meta, 12px); font-weight: 600; }
.dashboard-dimension-switch button.is-active { background: #fff; color: var(--dashboard-brand); box-shadow: 0 2px 8px rgba(27, 43, 75, .08); }
.dashboard-dimension-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid #eef0f3; }
.dashboard-dimension-kpis > div { min-width: 0; padding: 15px 18px; border-right: 1px solid #eef0f3; }
.dashboard-dimension-kpis > div:last-child { border-right: 0; }
.dashboard-dimension-kpis span { display: block; color: #8791a1; font-size: var(--type-meta, 12px); }
.dashboard-dimension-kpis strong { display: block; margin-top: 5px; color: #17191c; font-size: 18px; font-weight: 700; }
.dashboard-dimension-panel .dashboard-route-bars { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dashboard-dimension-panel .dashboard-route-bar-label strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.dashboard-stage-list { display: grid; gap: 18px; padding: 14px 18px 16px; }
.dashboard-stage-track { min-width: 0; }
.dashboard-stage-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; color: #343a40; font-size: var(--type-body, 14px); }
.dashboard-stage-title span { color: #697386; font-size: var(--type-meta, 12px); }
.dashboard-stage-nodes { display: flex; align-items: flex-start; min-width: 0; padding-top: 2px; }
.dashboard-stage-node { position: relative; min-width: 68px; flex: 1; border-radius: 6px; outline: none; cursor: help; text-align: center; }
.dashboard-stage-node:not(:last-child)::after { content: ""; position: absolute; z-index: 0; top: 8px; left: calc(50% + 8px); width: calc(100% - 16px); height: 1px; background: var(--dashboard-node-line); }
.dashboard-stage-node-dot { position: relative; z-index: 1; display: block; width: 16px; height: 16px; margin: 0 auto 6px; border: 2px solid var(--dashboard-node-color); border-radius: 50%; background: #fff; transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease; }
.dashboard-stage-node.is-populated .dashboard-stage-node-dot { background: var(--dashboard-node-color); color: #fff; }
.dashboard-stage-node.is-current .dashboard-stage-node-dot { background: var(--dashboard-node-color); color: #fff; box-shadow: 0 0 0 4px var(--dashboard-node-soft); animation: dashboard-current-node-in .55s cubic-bezier(.16, 1, .3, 1) both; }
.dashboard-stage-node.is-current small { color: var(--dashboard-node-color); font-weight: 700; }
.dashboard-stage-node small { display: block; color: #697386; font-size: var(--type-meta, 12px); line-height: 18px; white-space: nowrap; }
.dashboard-stage-node:hover .dashboard-stage-node-dot,
.dashboard-stage-node.is-hovered .dashboard-stage-node-dot,
.dashboard-stage-node:focus-visible .dashboard-stage-node-dot { transform: scale(1.16); box-shadow: 0 0 0 4px var(--dashboard-node-soft); }
.dashboard-stage-node:hover small,
.dashboard-stage-node.is-hovered small,
.dashboard-stage-node:focus-visible small { color: var(--dashboard-node-color); font-weight: 600; }
.dashboard-stage-tooltip { position: absolute; z-index: 3; bottom: calc(100% + 7px); left: 50%; width: max-content; max-width: 210px; padding: 6px 8px; border: 1px solid var(--ca-line-strong, #d3d7de); border-radius: 7px; background: var(--ca-surface, #fff); box-shadow: var(--ca-shadow-card, 0 4px 14px rgba(16, 24, 40, .08)); color: var(--ca-ink-2, #343a40); font-size: 11px; line-height: 16px; opacity: 0; pointer-events: none; transform: translate(-50%, 4px); transition: opacity .14s ease, transform .14s ease; white-space: normal; }
.dashboard-stage-node:first-child .dashboard-stage-tooltip { left: 0; transform: translateY(4px); }
.dashboard-stage-node:last-child .dashboard-stage-tooltip { right: 0; left: auto; transform: translateY(4px); }
.dashboard-stage-node:hover .dashboard-stage-tooltip,
.dashboard-stage-node.is-hovered .dashboard-stage-tooltip,
.dashboard-stage-node:focus-visible .dashboard-stage-tooltip { opacity: 1; transform: translate(-50%, 0); }
.dashboard-stage-node:first-child:hover .dashboard-stage-tooltip,
.dashboard-stage-node:first-child.is-hovered .dashboard-stage-tooltip,
.dashboard-stage-node:first-child:focus-visible .dashboard-stage-tooltip,
.dashboard-stage-node:last-child:hover .dashboard-stage-tooltip,
.dashboard-stage-node:last-child.is-hovered .dashboard-stage-tooltip,
.dashboard-stage-node:last-child:focus-visible .dashboard-stage-tooltip { transform: translateY(0); }

@keyframes dashboard-current-node-in {
  from { box-shadow: 0 0 0 8px transparent; }
  to { box-shadow: 0 0 0 4px var(--dashboard-node-soft); }
}

@media (prefers-reduced-motion: reduce) {
  .dashboard-stage-node-dot,
  .dashboard-stage-tooltip { transition: none; animation: none; }
}

.dashboard-note-list { display: grid; gap: 0; padding: 2px 18px 15px; }
.dashboard-note-list div { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 46px; border-bottom: 1px solid #f0f2f5; color: #697386; font-size: var(--type-body, 14px); }
.dashboard-note-list div:last-child { border-bottom: 0; }
.dashboard-note-list strong { color: #343a40; font-size: var(--type-body, 14px); font-weight: 600; }

.dashboard-risk-panel { margin-bottom: 16px; }
.dashboard-text-button { padding: 4px 0; border: 0; background: transparent; color: var(--dashboard-brand); font: inherit; font-size: var(--type-meta, 12px); cursor: pointer; white-space: nowrap; }
.dashboard-text-button:hover { color: var(--ui-brand-hover, #334ca9); text-decoration: underline; }
.dashboard-risk-table { overflow-x: auto; }
.dashboard-risk-head,
.dashboard-risk-row { display: grid; grid-template-columns: minmax(180px, 1.35fr) 90px 92px 118px minmax(160px, 1.25fr) 72px 68px; align-items: center; gap: 12px; min-width: 910px; padding: 0 18px; }
.dashboard-risk-head { min-height: 40px; background: #fbfcfe; color: #697386; font-size: var(--type-meta, 12px); }
.dashboard-risk-row { min-height: 60px; border-top: 1px solid #f0f2f5; color: #697386; font-size: var(--type-body, 14px); }
.dashboard-risk-row strong { overflow: hidden; color: #343a40; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-risk-row > span:nth-child(5) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-node-chip,
.dashboard-risk-chip { display: inline-flex; align-items: center; width: max-content; min-height: 26px; padding: 0 8px; border-radius: 6px; background: var(--dashboard-node-soft); color: var(--dashboard-node-color); font-size: var(--type-meta, 12px); font-weight: 600; white-space: nowrap; }
.dashboard-risk-chip { background: #f5f6f8; color: #697386; }
.dashboard-risk-warning { background: var(--dashboard-amber-soft); color: var(--dashboard-amber); }
.dashboard-risk-danger { background: #fff0ef; color: #c4322a; }
.dashboard-risk-重点 { background: var(--dashboard-violet-soft); color: var(--dashboard-violet); }
.dashboard-risk-muted { background: #f5f6f7; color: #8791a1; }

.dashboard-empty { padding: 28px 18px; color: #697386; font-size: var(--type-body, 14px); text-align: center; }

.route-card.is-dashboard-locked .route-switch { cursor: not-allowed; }
.route-card.is-dashboard-locked .route-switch::after { content: "经营总览请使用右上角切换"; display: block; grid-column: 1 / -1; padding: 5px 4px 2px; color: var(--ca-ink-3, #697386); font-size: var(--type-meta, 12px); line-height: 18px; text-align: center; }

@media (max-width: 1180px) {
  .dashboard-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-primary-grid,
  .dashboard-secondary-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
  #view-analytics .dashboard-heading { flex-direction: column; }
  .dashboard-heading-actions { width: 100%; justify-content: flex-start; }
  .dashboard-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .dashboard-kpi { min-height: 96px; padding: 13px; }
  .dashboard-kpi strong { font-size: 23px; }
  .dashboard-stage-nodes { overflow-x: auto; padding-bottom: 4px; }
  .dashboard-stage-node { min-width: 82px; }
  .dashboard-team-table { overflow-x: auto; }
  .dashboard-team-head, .dashboard-team-row { min-width: 460px; }
  .dashboard-dimension-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-dimension-kpis > div:nth-child(2) { border-right: 0; }
  .dashboard-dimension-panel .dashboard-route-bars { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 460px) {
  .dashboard-kpi-grid { grid-template-columns: 1fr 1fr; }
  .dashboard-kpi span { font-size: 12px; }
  .dashboard-kpi strong { font-size: 21px; }
  .dashboard-scope { width: 100%; }
  .dashboard-scope button { flex: 1; }
}

/* Business overview v5: customer resource and proposal propagation */
.dashboard-v5 { --v5-border: #e7eaf0; --v5-soft: #f7f8fb; --v5-ink: #242a36; }
.dashboard-v5 .dashboard-panel { overflow: hidden; border-color: var(--v5-border); border-radius: 10px; box-shadow: 0 1px 2px rgba(27, 35, 52, .03); }
.dashboard-v5 .dashboard-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; min-height: 68px; padding: 15px 18px 13px; border-bottom: 1px solid var(--v5-border); }
.dashboard-v5 .dashboard-panel-head h2 { margin: 0; color: var(--v5-ink); font-size: 15px; line-height: 22px; }
.dashboard-v5 .dashboard-panel-head p { margin: 3px 0 0; color: #858d9b; font-size: 12px; line-height: 18px; }
.dashboard-v5 .dashboard-panel-head > span { padding-top: 2px; color: #697386; font-size: 12px; white-space: nowrap; }

.dashboard-v5-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.dashboard-v5-kpis .dashboard-kpi { min-height: 112px; padding: 16px 17px; }
.dashboard-v5-kpis .dashboard-kpi > span { color: #697386; }
.dashboard-v5-kpis .dashboard-kpi > strong { margin-top: 7px; color: var(--v5-ink); font-size: 28px; line-height: 34px; }
.dashboard-v5-kpis .dashboard-kpi > small { margin-top: 5px; color: #8a93a1; }
.dashboard-v5-kpis .dashboard-kpi-primary { border-top: 2px solid #516bcc; }
.dashboard-v5-kpis .dashboard-kpi-success { border-top: 2px solid #32936f; }
.dashboard-v5-kpis .dashboard-kpi-warning { border-top: 2px solid #cf8d25; }
.dashboard-v5-kpis .dashboard-kpi-focus { border-top: 2px solid #7b5cc7; }

.dashboard-v5-management { display: grid; grid-template-columns: minmax(680px, 1.65fr) minmax(300px, .72fr); gap: 14px; margin-bottom: 14px; }
.dashboard-v5-team-head,
.dashboard-v5-team-row { display: grid; grid-template-columns: minmax(150px, 1.1fr) 76px minmax(120px, .9fr) minmax(105px, .8fr) minmax(118px, .88fr) 72px; align-items: center; gap: 12px; min-width: 720px; padding: 0 18px; }
.dashboard-v5-team-head { min-height: 38px; background: #fafbfc; color: #89919f; font-size: 11px; }
.dashboard-v5-team-list { max-height: 384px; overflow: auto; }
.dashboard-v5-team-row { width: 100%; min-height: 64px; border: 0; border-top: 1px solid #f0f2f5; background: #fff; color: #697386; font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
.dashboard-v5-team-row:hover { background: #f8f9fd; }
.dashboard-v5-team-row.is-selected { background: #f2f4fc; box-shadow: inset 3px 0 #5068c6; }
.dashboard-v5-team-row > span > strong { display: block; color: var(--v5-ink); font-size: 13px; font-weight: 650; }
.dashboard-v5-team-row > span > small { display: block; margin-top: 3px; color: #9299a5; font-size: 11px; }
.dashboard-v5-owner { display: flex; align-items: center; gap: 9px; min-width: 0; }
.dashboard-v5-owner > b { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; border-radius: 50%; background: #e9edfb; color: #4059b7; font-size: 12px; }
.dashboard-v5-owner > span { min-width: 0; }
.dashboard-v5-owner strong,
.dashboard-v5-owner small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-v5-team-row i { display: block; width: 100%; height: 4px; margin-top: 5px; overflow: hidden; border-radius: 999px; background: #edf0f4; }
.dashboard-v5-team-row i b { display: block; height: 100%; border-radius: inherit; background: #536cc9; }
.dashboard-v5-rate { color: #4059b7; font-weight: 700; }
.dashboard-v5-rate.is-warning { color: #bd7312; }

.dashboard-v5-owner-detail .dashboard-panel-head > strong { color: #4059b7; font-size: 25px; line-height: 28px; text-align: right; }
.dashboard-v5-owner-detail .dashboard-panel-head > strong small { display: block; color: #8a93a1; font-size: 10px; font-weight: 500; line-height: 15px; }
.dashboard-v5-owner-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #edf0f4; }
.dashboard-v5-owner-kpis > div { min-height: 70px; padding: 12px 15px; background: #fff; }
.dashboard-v5-owner-kpis span { display: block; color: #8a93a1; font-size: 11px; }
.dashboard-v5-owner-kpis strong { display: block; margin-top: 6px; color: var(--v5-ink); font-size: 17px; }
.dashboard-v5-owner-states { padding: 5px 15px 3px; }
.dashboard-v5-owner-states > div { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 10px 0; border-bottom: 1px solid #f0f2f5; }
.dashboard-v5-owner-states span { color: #505866; font-size: 12px; }
.dashboard-v5-owner-states strong { color: var(--v5-ink); font-size: 13px; }
.dashboard-v5-owner-states small { grid-column: 1 / -1; color: #989fab; font-size: 10px; }
.dashboard-v5-owner-states .is-warning strong { color: #bd7312; }
.dashboard-v5-owner-states .is-danger strong { color: #c54943; }
.dashboard-v5-detail-action { width: calc(100% - 30px); min-height: 36px; margin: 9px 15px 15px; border: 1px solid #cfd6ee; border-radius: 7px; background: #f5f7ff; color: #4059b7; font: inherit; font-size: 12px; font-weight: 650; cursor: pointer; }
.dashboard-v5-detail-action:hover { border-color: #9ba9dc; background: #edf1ff; }

.dashboard-v5-bottom,
.dashboard-v5-personal-top { display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(360px, .84fr); gap: 14px; margin-bottom: 14px; }
.dashboard-v5-alerts > div:last-child,
.dashboard-v5-tasks > div:last-child { padding: 4px 17px 8px; }
.dashboard-v5-alerts button,
.dashboard-v5-tasks button { display: grid; width: 100%; min-height: 50px; align-items: center; gap: 10px; padding: 8px 0; border: 0; border-bottom: 1px solid #f0f2f5; background: transparent; color: #697386; font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
.dashboard-v5-alerts button { grid-template-columns: 24px 76px 1fr auto; }
.dashboard-v5-alerts button:last-child,
.dashboard-v5-tasks button:last-child { border-bottom: 0; }
.dashboard-v5-alerts button:hover,
.dashboard-v5-tasks button:hover { background: #fafbfe; }
.dashboard-v5-alerts button > i,
.dashboard-v5-tasks button > i { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 6px; background: #e9edfb; color: #4059b7; font-size: 11px; font-style: normal; font-weight: 800; }
.dashboard-v5-alerts button > i.is-warning,
.dashboard-v5-tasks button > i.is-warning { background: #fff3df; color: #b66b09; }
.dashboard-v5-alerts button > i.is-danger,
.dashboard-v5-tasks button > i.is-danger { background: #fff0ef; color: #c54943; }
.dashboard-v5-alerts button > strong { color: var(--v5-ink); font-size: 12px; }
.dashboard-v5-alerts button > b,
.dashboard-v5-tasks button > b { color: #4059b7; font-size: 11px; white-space: nowrap; }

.dashboard-v5-flow { display: flex; align-items: center; gap: 9px; padding: 22px 18px 18px; }
.dashboard-v5-flow-step { flex: 0 0 auto; min-width: 72px; text-align: center; }
.dashboard-v5-flow-step strong { display: block; color: var(--v5-ink); font-size: 21px; line-height: 27px; }
.dashboard-v5-flow-step span { display: block; margin-top: 3px; color: #7e8795; font-size: 11px; }
.dashboard-v5-flow > i { position: relative; height: 1px; flex: 1; background: #dfe4ed; }
.dashboard-v5-flow > i::after { content: ""; position: absolute; top: -3px; right: 0; width: 6px; height: 6px; border-top: 1px solid #aab3c1; border-right: 1px solid #aab3c1; transform: rotate(45deg); }
.dashboard-v5-rates { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--v5-border); background: #fafbfc; }
.dashboard-v5-rates > div { min-height: 62px; padding: 11px 16px; border-right: 1px solid var(--v5-border); }
.dashboard-v5-rates > div:last-child { border-right: 0; }
.dashboard-v5-rates span { display: block; color: #8a93a1; font-size: 10px; }
.dashboard-v5-rates strong { display: block; margin-top: 4px; color: #4059b7; font-size: 16px; }

.dashboard-v5-tasks > div:last-child { padding-top: 3px; }
.dashboard-v5-tasks button { grid-template-columns: 24px 1fr auto; min-height: 58px; }
.dashboard-v5-tasks button span strong { display: block; color: var(--v5-ink); font-size: 12px; }
.dashboard-v5-tasks button span small { display: block; margin-top: 3px; color: #8c94a1; font-size: 11px; }

.dashboard-v5-customers { overflow-x: auto; }
.dashboard-v5-customer-head,
.dashboard-v5-customer-row { display: grid; grid-template-columns: minmax(170px, 1.25fr) 86px 86px minmax(130px, 1fr) 100px minmax(190px, 1.4fr) 70px; align-items: center; gap: 12px; min-width: 920px; padding: 0 18px; }
.dashboard-v5-customer-head { min-height: 38px; background: #fafbfc; color: #89919f; font-size: 11px; }
.dashboard-v5-customer-row { min-height: 58px; border-top: 1px solid #f0f2f5; color: #697386; font-size: 12px; }
.dashboard-v5-customer-row > strong,
.dashboard-v5-customer-row > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-v5-customer-row > strong { color: var(--v5-ink); font-weight: 650; }
.dashboard-v5-customer-row > b { width: max-content; padding: 4px 7px; border-radius: 5px; background: #f1f3f6; color: #697386; font-size: 10px; font-weight: 650; }
.dashboard-v5-customer-row > b.is-shared { background: #eef1fb; color: #4059b7; }
.dashboard-v5-customer-row > b.is-opened { background: #eaf7f2; color: #287d60; }
.dashboard-v5-customer-row > button { border: 0; background: transparent; color: #4059b7; font: inherit; font-size: 11px; font-weight: 650; cursor: pointer; }

@media (max-width: 1180px) {
  .dashboard-v5-management,
  .dashboard-v5-bottom,
  .dashboard-v5-personal-top { grid-template-columns: minmax(0, 1fr); }
  .dashboard-v5-team-list { max-height: 330px; }
}

@media (max-width: 760px) {
  .dashboard-v5-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-v5-team { overflow-x: auto; }
  .dashboard-v5-flow { overflow-x: auto; }
  .dashboard-v5-flow-step { min-width: 78px; }
}

/* Business overview v5.1 typography system */
#view-analytics .dashboard-v5 {
  --v5-type-caption: 13px;
  --v5-type-body: 14px;
  --v5-type-emphasis: 14px;
  --v5-type-section: 16px;
  --v5-type-title: 24px;
  --v5-type-metric: 32px;
  --v5-font: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif;
  font-family: var(--v5-font);
  font-size: var(--v5-type-body);
  line-height: 20px;
  text-rendering: auto;
  -webkit-font-smoothing: auto;
}

#view-analytics .dashboard-v5 :is(strong, b) {
  font-synthesis: none;
}

#view-analytics .dashboard-v5 :is(.dashboard-kpi strong, .dashboard-v5-owner-detail .dashboard-panel-head > strong, .dashboard-v5-owner-kpis strong, .dashboard-v5-team-row > span > strong, .dashboard-v5-flow-step strong, .dashboard-v5-rates strong, .dashboard-v5-owner-states strong) {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
}

#view-analytics .dashboard-v5 .dashboard-heading {
  min-height: 70px;
  margin-bottom: 16px;
}

#view-analytics .dashboard-v5 .dashboard-heading h1 {
  font-size: var(--v5-type-title);
  font-weight: 700;
  line-height: 30px;
}

#view-analytics .dashboard-v5 .dashboard-heading p {
  margin-top: 4px;
  color: #536174;
  font-size: var(--v5-type-body);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5 .dashboard-scope button {
  min-width: 62px;
  height: 32px;
  font-size: var(--v5-type-body);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5 .dashboard-scope button.is-active {
  font-weight: 700;
}

#view-analytics .dashboard-v5 [data-dashboard-refresh] {
  min-height: 38px;
  font-size: var(--v5-type-body) !important;
  font-weight: 700;
  line-height: 20px !important;
}

#view-analytics .dashboard-v5-kpis .dashboard-kpi {
  min-height: 118px;
  padding: 17px 18px 16px;
}

#view-analytics .dashboard-v5-kpis .dashboard-kpi > span {
  color: #536174;
  font-size: var(--v5-type-body);
  font-weight: 700;
  line-height: 20px;
}

#view-analytics .dashboard-v5-kpis .dashboard-kpi > strong {
  margin-top: 6px;
  font-size: var(--v5-type-metric);
  font-weight: 700;
  line-height: 38px;
}

#view-analytics .dashboard-v5-kpis .dashboard-kpi > small {
  margin-top: 4px;
  color: #536174;
  font-size: var(--v5-type-caption);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5 .dashboard-panel-head {
  min-height: 72px;
  padding: 16px 18px 14px;
}

#view-analytics .dashboard-v5 .dashboard-panel-head h2 {
  font-size: var(--v5-type-section);
  font-weight: 700;
  line-height: 24px;
}

#view-analytics .dashboard-v5 .dashboard-panel-head p {
  margin-top: 2px;
  color: #536174;
  font-size: var(--v5-type-caption);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5 .dashboard-panel-head > span {
  color: #536174;
  font-size: var(--v5-type-caption);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5-team-head,
#view-analytics .dashboard-v5-customer-head {
  color: #536174;
  font-size: var(--v5-type-caption);
  font-weight: 700;
  line-height: 20px;
}

#view-analytics .dashboard-v5-team-head {
  min-height: 40px;
}

#view-analytics .dashboard-v5-team-row {
  min-height: 68px;
  color: #536174;
  font-size: var(--v5-type-body);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5-team-row > span > strong {
  font-size: var(--v5-type-emphasis);
  font-weight: 700;
  line-height: 20px;
}

#view-analytics .dashboard-v5-team-row > span > small,
#view-analytics .dashboard-v5-owner small {
  color: #536174;
  font-size: var(--v5-type-caption);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5-owner > b {
  font-size: var(--v5-type-body);
  font-weight: 700;
  line-height: 20px;
}

#view-analytics .dashboard-v5-rate {
  font-size: var(--v5-type-body);
  font-weight: 700;
  line-height: 20px;
}

#view-analytics .dashboard-v5-owner-detail .dashboard-panel-head > strong {
  font-size: 24px;
  font-weight: 700;
  line-height: 34px;
}

#view-analytics .dashboard-v5-owner-detail .dashboard-panel-head > strong small {
  font-size: var(--v5-type-caption);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5-owner-kpis span {
  color: #536174;
  font-size: var(--v5-type-caption);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5-owner-kpis strong {
  margin-top: 5px;
  font-size: 20px;
  font-weight: 700;
  line-height: 25px;
}

#view-analytics .dashboard-v5-owner-states span {
  color: #536174;
  font-size: var(--v5-type-body);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5-owner-states strong {
  font-size: var(--v5-type-emphasis);
  font-weight: 700;
  line-height: 20px;
}

#view-analytics .dashboard-v5-owner-states small {
  color: #536174;
  font-size: var(--v5-type-caption);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5-detail-action {
  font-size: var(--v5-type-body);
  font-weight: 700;
  line-height: 20px;
}

#view-analytics .dashboard-v5-alerts button,
#view-analytics .dashboard-v5-tasks button {
  color: #536174;
  font-size: var(--v5-type-body);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5-alerts button > strong,
#view-analytics .dashboard-v5-tasks button span strong {
  color: var(--v5-ink);
  font-size: var(--v5-type-body);
  font-weight: 700;
  line-height: 20px;
}

#view-analytics .dashboard-v5-tasks button span strong {
  font-size: var(--v5-type-emphasis);
}

#view-analytics .dashboard-v5-tasks button span small {
  color: #536174;
  font-size: var(--v5-type-caption);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5-alerts button > b,
#view-analytics .dashboard-v5-tasks button > b {
  font-size: var(--v5-type-caption);
  font-weight: 700;
  line-height: 20px;
}

#view-analytics .dashboard-v5-flow-step strong {
  font-size: 24px;
  font-weight: 700;
  line-height: 30px;
}

#view-analytics .dashboard-v5-flow-step span {
  color: #536174;
  font-size: var(--v5-type-caption);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5-rates span {
  color: #536174;
  font-size: var(--v5-type-caption);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5-rates strong {
  font-size: 18px;
  font-weight: 700;
  line-height: 24px;
}

#view-analytics .dashboard-v5-customer-head {
  min-height: 40px;
}

#view-analytics .dashboard-v5-customer-row {
  min-height: 62px;
  color: #536174;
  font-size: var(--v5-type-body);
  font-weight: 400;
  line-height: 20px;
}

#view-analytics .dashboard-v5-customer-row > strong {
  font-size: var(--v5-type-emphasis);
  font-weight: 700;
  line-height: 20px;
}

#view-analytics .dashboard-v5-customer-row > b {
  font-size: var(--v5-type-caption);
  font-weight: 700;
  line-height: 20px;
}

#view-analytics .dashboard-v5-customer-row > button {
  font-size: var(--v5-type-caption);
  font-weight: 700;
  line-height: 20px;
}

#view-analytics .dashboard-v5 .dashboard-empty {
  color: #536174;
  font-size: var(--v5-type-body);
  font-weight: 400;
  line-height: 20px;
}

@media (max-width: 760px) {
  #view-analytics .dashboard-v5 {
    --v5-type-title: 24px;
    --v5-type-metric: 32px;
  }

  #view-analytics .dashboard-v5 .dashboard-heading h1 { line-height: 28px; }
  #view-analytics .dashboard-v5-kpis .dashboard-kpi { min-height: 108px; padding: 14px; }
  #view-analytics .dashboard-v5-kpis .dashboard-kpi > strong { line-height: 34px; }
}

/* One family and role scale for Chinese text, digits, and controls. */
#view-analytics .dashboard-v5, #view-analytics .dashboard-v5 * {
  font-family: var(--v5-font) !important;
  font-synthesis: none;
  -webkit-font-smoothing: auto;
  text-rendering: auto;
}
#view-analytics .dashboard-v5 { color: #243247; }
#view-analytics .dashboard-v5 .dashboard-resource-filters label { font-size: var(--v5-type-caption); line-height: 20px; color: #536174; }
#view-analytics .dashboard-v5 .dashboard-resource-filters :is(select,button) { font-size: var(--v5-type-body); line-height: 22px; font-weight: 400; }
#view-analytics .dashboard-v5 .dashboard-heading h1 { line-height: 34px; }
#view-analytics .dashboard-v5 :is(.dashboard-kpi > strong,.dashboard-v5-owner-detail .dashboard-panel-head > strong,.dashboard-v5-owner-kpis strong,.dashboard-v5-flow-step strong) { letter-spacing: 0; }
@media(max-width:640px) { #view-analytics .dashboard-v5 .dashboard-resource-filters select { font-size: 16px; } }
