.static-menu-page #rag-app .graph-kb-page {
  --graph-accent: var(--menu-accent, #f06b4f);
  --graph-accent-soft: rgba(240, 107, 79, .1);
  --graph-positive: #267155;
  --graph-positive-soft: #e8f4ee;
  --graph-warning: #95620f;
  --graph-warning-soft: #fff4df;
  --graph-muted-soft: #f1f3f6;
}

.static-menu-page #rag-app .graph-kb-page .page-heading {
  margin-bottom: 18px;
}

.static-menu-page #rag-app .graph-kb-page .page-heading h1 {
  letter-spacing: -.025em;
}

.static-menu-page #rag-app .graph-kb-page .page-heading p:not(.breadcrumb) {
  max-width: 70ch;
}

/* 图谱构建列表实际只有 6 列：图谱 / 范围 / 输入规模 / 质量 / 状态 / 操作。
   原第 7 条规则是残留（本表无第 7 列），且与 styles.css 的 6 列宽度叠加后
   使各列宽度之和大于 100%，操作列被挤到 181px，按钮被迫折行。
   [KS 修正 2026-09-15 / A3] 删除空转的第 7 条，让 6 列按既有比例分配。 */
.graph-kb-table th:nth-child(1) { width: 4%; }
.graph-kb-table th:nth-child(2) { width: 24%; }
.graph-kb-table th:nth-child(3) { width: 13%; }
.graph-kb-table th:nth-child(4) { width: 10%; }
.graph-kb-table th:nth-child(5) { width: 14%; }
.graph-kb-table th:nth-child(6) { width: 17%; }

.graph-scope-table th:nth-child(1) { width: 20%; }
.graph-scope-table th:nth-child(2) { width: 22%; }
.graph-scope-table th:nth-child(3) { width: 13%; }
.graph-scope-table th:nth-child(4) { width: 14%; }
.graph-scope-table th:nth-child(5) { width: 12%; }
.graph-scope-table th:nth-child(6) { width: 10%; }
.graph-scope-table th:nth-child(7) { width: 9%; }

.graph-heading-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.graph-kb-table .kb-row-action,
.graph-document-table .kb-row-action,
.graph-scope-table .kb-row-action {
  padding-right: 8px !important;
  padding-left: 8px !important;
}

/* 图谱构建列表「操作」列按钮组（[KS 2026-09-15 / A3]）
   原实现把多个 <button> 直接放进 <td>，td 为 table-cell 无 gap 能力，
   按钮之间间距为 0、宽度各异（70.9px vs 48.9px），只能靠折行导致参差。
   作用域仅限本页本表：.graph-kb-page .graph-build-action。 */
.graph-kb-page .graph-build-action {
  white-space: normal;
}

.graph-kb-page .graph-build-action .kb-action-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
}

.graph-kb-page .graph-build-action .kb-action-group > .button {
  flex: 0 0 auto;
  min-width: 76px;
  min-height: 30px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .58rem;
  line-height: 1;
  white-space: nowrap;
}

.graph-kb-table .kb-row-action .button,
.graph-document-table .kb-row-action .button,
.graph-scope-table .kb-row-action .button {
  max-width: 100%;
  min-height: 29px;
  padding: 3px 7px;
  font-size: .56rem;
}

.graph-kb-table td strong,
.graph-document-table td strong,
.graph-scope-table td strong {
  display: block;
  color: var(--console-ink, var(--ink));
}

.graph-kb-table td small,
.graph-document-table td small,
.graph-scope-table td small {
  display: block;
  margin-top: 3px;
  color: var(--console-muted, var(--ink-soft));
  font-size: .58rem;
  line-height: 1.45;
}

.graph-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 23px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--graph-muted-soft);
  color: #626875;
  font-size: .58rem;
  font-weight: 650;
  white-space: nowrap;
}

.graph-status-pill::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
}

.graph-status-pill.ready,
.graph-status-pill.available {
  background: var(--graph-positive-soft);
  color: var(--graph-positive);
}

.graph-status-pill.partial,
.graph-status-pill.changed,
.graph-status-pill.processing {
  background: var(--graph-warning-soft);
  color: var(--graph-warning);
}

.graph-status-pill.blocked {
  background: #fdeae7;
  color: #a74839;
}

.graph-readiness-cell {
  min-width: 115px;
}

.graph-readiness-meter {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  margin-top: 5px;
}

.graph-readiness-meter > span {
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: #e9ecef;
}

.graph-readiness-meter > span i {
  display: block;
  width: var(--progress, 0%);
  height: 100%;
  border-radius: inherit;
  background: var(--graph-accent);
}

.graph-readiness-meter b {
  color: var(--console-muted, var(--ink-soft));
  font-size: .56rem;
  font-weight: 650;
}

.graph-context-strip {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) repeat(4, minmax(120px, 1fr));
  margin: 0 0 16px;
  overflow: hidden;
  border: 1px solid var(--console-line, var(--line));
  border-radius: 8px;
  background: var(--console-panel, #fff);
  box-shadow: var(--console-shadow-soft, 0 4px 14px rgba(32, 37, 43, .04));
}

.graph-context-strip article {
  min-width: 0;
  padding: 13px 15px;
  border-right: 1px solid var(--console-line, var(--line));
}

.graph-context-strip article:last-child { border-right: 0; }
.graph-context-strip span { display: block; color: var(--console-muted, var(--ink-soft)); font-size: .56rem; }
.graph-context-strip strong { display: block; margin-top: 3px; font-size: .72rem; line-height: 1.35; }
.graph-context-strip small { display: block; margin-top: 3px; color: var(--console-muted, var(--ink-soft)); font-size: .55rem; }

.graph-decision-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(260px, .7fr);
  align-items: start;
  gap: 16px;
}

.graph-summary-card,
.graph-next-card,
.graph-snapshot-card {
  overflow: hidden;
  border: 1px solid var(--console-line, var(--line));
  border-radius: 8px;
  background: var(--console-panel, #fff);
  box-shadow: var(--console-shadow-soft, 0 4px 14px rgba(32, 37, 43, .04));
}

.graph-summary-card > header,
.graph-next-card > header,
.graph-snapshot-card > header {
  padding: 15px 17px 12px;
  border-bottom: 1px solid var(--console-line, var(--line));
}

.graph-summary-card h2,
.graph-next-card h2,
.graph-snapshot-card h2 {
  margin: 0;
  font-size: .78rem;
}

.graph-summary-card header p,
.graph-next-card header p,
.graph-snapshot-card header p {
  margin: 4px 0 0;
  color: var(--console-muted, var(--ink-soft));
  font-size: .6rem;
}

.graph-readiness-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding: 0 17px;
}

.graph-readiness-grid article {
  min-width: 0;
  padding: 16px 12px 14px 0;
}

.graph-readiness-grid article + article {
  padding-left: 12px;
  border-left: 1px solid var(--console-line, var(--line));
}

.graph-readiness-grid span { display: block; color: var(--console-muted, var(--ink-soft)); font-size: .56rem; }
.graph-readiness-grid strong { display: block; margin-top: 4px; font-size: 1.05rem; line-height: 1; }
.graph-readiness-grid small { display: block; margin-top: 5px; color: var(--console-muted, var(--ink-soft)); font-size: .55rem; line-height: 1.45; }

.graph-summary-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 17px;
  border-top: 1px solid var(--console-line, var(--line));
  background: #fafbfc;
}

.graph-summary-actions p { margin: 0; color: var(--console-muted, var(--ink-soft)); font-size: .6rem; }
.graph-summary-actions > div { display: flex; gap: 8px; }

.graph-stage-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.graph-stage-list li {
  position: relative;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 10px;
  padding: 13px 17px;
  border-bottom: 1px solid var(--console-line, var(--line));
}

.graph-stage-list li:last-child { border-bottom: 0; }
.graph-stage-list i { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid #d7dce2; border-radius: 6px; color: #7c828e; font-style: normal; font-size: .52rem; }
.graph-stage-list li.current i { border-color: rgba(240, 107, 79, .5); background: var(--graph-accent-soft); color: var(--graph-accent); }
.graph-stage-list strong { display: block; font-size: .66rem; }
.graph-stage-list small { display: block; margin-top: 2px; color: var(--console-muted, var(--ink-soft)); font-size: .55rem; line-height: 1.45; }
.graph-next-card > footer { padding: 13px 17px; border-top: 1px solid var(--console-line, var(--line)); }
.graph-next-card > footer .button { width: 100%; }

.graph-snapshot-list {
  display: grid;
  margin: 0;
  padding: 0;
}

.graph-snapshot-list > div {
  display: grid;
  grid-template-columns: minmax(150px, .7fr) minmax(0, 1.3fr) minmax(110px, .5fr);
  gap: 14px;
  align-items: center;
  padding: 13px 17px;
  border-bottom: 1px solid var(--console-line, var(--line));
}

.graph-snapshot-list > div:last-child { border-bottom: 0; }
.graph-snapshot-list dt { color: var(--console-muted, var(--ink-soft)); font-size: .6rem; }
.graph-snapshot-list dd { margin: 0; font-size: .64rem; }
.graph-snapshot-list code { color: #59606d; font: 600 .57rem Consolas, monospace; }

.graph-document-status-cell { min-width: 115px; }
.graph-document-table th:nth-child(1) { width: 26%; }
.graph-document-table th:nth-child(2) { width: 10%; }
.graph-document-table th:nth-child(3),
.graph-document-table th:nth-child(4) { width: 10%; }
.graph-document-table th:nth-child(5) { width: 12%; }
.graph-document-table th:nth-child(6) { width: 20%; }
.graph-document-table th:nth-child(7) { width: 12%; }

.graph-readonly-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
  padding: 11px 14px;
  border: 1px solid #dfe3e8;
  border-radius: 7px;
  background: #fafbfc;
  color: var(--console-muted, var(--ink-soft));
  font-size: .61rem;
}

.graph-readonly-note strong { color: var(--console-ink, var(--ink)); }

.static-menu-page #tier-2-subnav .graph-scope-back {
  margin-bottom: 7px;
  color: rgba(255, 255, 255, .74);
  font-size: .6rem;
}

.static-menu-page #tier-2-subnav .graph-scope-back:hover {
  color: #fff;
}

.graph-scope-nav-context {
  display: grid;
  gap: 3px;
  margin: 3px 11px 8px 29px;
  padding: 9px 10px;
  border-left: 2px solid var(--accent, #e76f00);
  background: rgba(255, 255, 255, .06);
  color: rgba(255, 255, 255, .68);
}

.graph-scope-nav-context span,
.graph-scope-nav-context small {
  font-size: .54rem;
  line-height: 1.35;
}

.graph-scope-nav-context strong {
  overflow: hidden;
  color: #fff;
  font-size: .64rem;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.graph-empty-workbench {
  display: grid;
  justify-items: center;
  max-width: 720px;
  margin: 28px auto 0;
  padding: 54px 40px;
  border: 1px solid var(--console-line, var(--line));
  border-radius: 7px;
  background: var(--console-surface, #fff);
  box-shadow: var(--console-shadow, 0 4px 14px rgba(36, 38, 48, .05));
  text-align: center;
}

.graph-empty-glyph {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: 16px;
  border-radius: 6px;
  background: color-mix(in srgb, var(--accent, #e76f00) 10%, #fff);
  color: var(--accent, #e76f00);
  font-size: .8rem;
  font-weight: 800;
}

.graph-empty-workbench h2,
.graph-empty-workbench p {
  margin: 0;
}

.graph-empty-workbench h2 {
  color: var(--console-ink, var(--ink));
  font-size: 1rem;
}

.graph-empty-workbench p {
  max-width: 560px;
  margin: 10px 0 22px;
  color: var(--console-muted, var(--ink-soft));
  font-size: .68rem;
  line-height: 1.75;
}

@media (max-width: 1100px) {
  .static-menu-page #rag-app .graph-kb-page .kb-table-scroll:has(.graph-kb-table),
  .static-menu-page #rag-app .graph-kb-page .kb-table-scroll:has(.graph-document-table) { overflow: visible; }
  .graph-kb-page .graph-kb-table,
  .graph-kb-page .graph-document-table,
  .graph-kb-page .graph-kb-table tbody,
  .graph-kb-page .graph-document-table tbody,
  .graph-kb-page .graph-kb-table tr,
  .graph-kb-page .graph-document-table tr,
  .graph-kb-page .graph-kb-table td,
  .graph-kb-page .graph-document-table td {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .static-menu-page #rag-app .graph-kb-page .graph-kb-table,
  .static-menu-page #rag-app .graph-kb-page .graph-document-table {
    width: 100%;
    min-width: 0;
  }
  .graph-kb-page .graph-kb-table thead,
  .graph-kb-page .graph-document-table thead { display: none; }
  .graph-kb-page .graph-kb-table tbody,
  .graph-kb-page .graph-document-table tbody { padding: 0 14px; }
  .graph-kb-page .graph-kb-table tbody tr,
  .graph-kb-page .graph-document-table tbody tr {
    margin: 14px 0;
    padding: 6px 0;
    border: 1px solid var(--console-line, var(--line));
    border-radius: 6px;
  }
  .graph-kb-page .graph-kb-table td,
  .graph-kb-page .graph-document-table td {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 10px;
    padding: 7px 12px;
    border-bottom: 0;
  }
  .graph-kb-page .graph-kb-table td::before,
  .graph-kb-page .graph-document-table td::before {
    content: attr(data-label);
    color: var(--console-muted, var(--ink-soft));
    font-size: .6rem;
  }
  .graph-kb-page .graph-kb-table .kb-row-action,
  .graph-kb-page .graph-document-table .kb-row-action {
    display: block;
    padding: 10px 12px 7px !important;
    text-align: left;
  }
  .graph-kb-page .graph-kb-table .kb-row-action::before,
  .graph-kb-page .graph-document-table .kb-row-action::before { display: none; }
  .graph-kb-page .graph-kb-table .kb-row-action .button,
  .graph-kb-page .graph-document-table .kb-row-action .button { width: 100%; }
}

@media (max-width: 1050px) {
  .graph-context-strip { grid-template-columns: 1.35fr repeat(2, 1fr); }
  .graph-context-strip article { border-bottom: 1px solid var(--console-line, var(--line)); }
  .graph-context-strip article:nth-child(3) { border-right: 0; }
  .graph-context-strip article:nth-last-child(-n+2) { border-bottom: 0; }
  .graph-decision-layout { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .graph-context-strip { grid-template-columns: 1fr 1fr; }
  .graph-context-strip article:nth-child(3) { border-right: 1px solid var(--console-line, var(--line)); }
  .graph-context-strip article:nth-child(2n) { border-right: 0; }
  .graph-context-strip article:nth-last-child(-n+2) { border-bottom: 0; }
  .graph-context-strip article:first-child { grid-column: 1 / -1; border-right: 0; }
  .graph-readiness-grid { grid-template-columns: 1fr 1fr; }
  .graph-readiness-grid article:nth-child(3) { border-left: 0; }
  .graph-readiness-grid article:nth-child(n+3) { border-top: 1px solid var(--console-line, var(--line)); }
  .graph-summary-actions { align-items: flex-start; flex-direction: column; }
  .graph-summary-actions > div { width: 100%; }
  .graph-summary-actions .button { flex: 1; }
  .graph-snapshot-list > div { grid-template-columns: 1fr; gap: 4px; }
}

@media (max-width: 431px) {
  .graph-context-strip { grid-template-columns: 1fr; }
  .graph-context-strip article,
  .graph-context-strip article:nth-child(3),
  .graph-context-strip article:nth-last-child(-n+2) { grid-column: auto; border-right: 0; border-bottom: 1px solid var(--console-line, var(--line)); }
  .graph-context-strip article:last-child { border-bottom: 0; }
  .graph-readiness-grid { grid-template-columns: 1fr; }
  .graph-readiness-grid article,
  .graph-readiness-grid article + article { padding: 12px 0; border-left: 0; border-top: 1px solid var(--console-line, var(--line)); }
  .graph-readiness-grid article:first-child { border-top: 0; }
  .graph-summary-actions > div { display: grid; grid-template-columns: 1fr; }
  .graph-readonly-note { align-items: flex-start; flex-direction: column; }
}

.graph-select-column {
  width: 42px;
  text-align: center;
}

.graph-select-column input {
  width: 16px;
  height: 16px;
  accent-color: var(--accent, #e76f00);
  cursor: pointer;
}

.graph-kb-table tr.is-selected td {
  background: color-mix(in srgb, var(--accent, #e76f00) 6%, transparent);
}

.graph-scope-table tr.is-highlighted td {
  background: color-mix(in srgb, var(--graph-positive, #267155) 7%, transparent);
}

.graph-scope-selection {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(320px, 440px) auto;
  align-items: end;
  gap: 22px;
  margin: 0 24px 20px;
  padding: 18px 20px;
  border: 1px solid var(--console-line, var(--line));
  border-left: 3px solid var(--accent, #e76f00);
  border-radius: 6px;
  background: var(--console-surface-muted, #f7f8f9);
}

.graph-scope-selection h3,
.graph-scope-selection p {
  margin: 0;
}

.graph-scope-selection h3 {
  color: var(--console-ink, var(--ink));
  font-size: .82rem;
}

.graph-scope-selection p {
  margin-top: 6px;
  color: var(--console-muted, var(--ink-soft));
  font-size: .68rem;
  line-height: 1.6;
}

.graph-scope-name-field {
  display: grid;
  gap: 7px;
}

.graph-scope-name-field span {
  color: var(--console-muted, var(--ink-soft));
  font-size: .64rem;
  font-weight: 700;
}

.graph-scope-name-field input {
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid var(--console-line-strong, #c7ccd1);
  border-radius: 4px;
  background: var(--console-surface, #fff);
  color: var(--console-ink, var(--ink));
  font: inherit;
  font-size: .72rem;
}

.graph-scope-selection .button {
  min-height: 38px;
  white-space: nowrap;
}

/* 专题概览：围绕“发布准备”组织信息，助手作为解释与导航侧栏。 */
.graph-topic-overview-page .graph-overview-heading { margin-bottom: 12px; }
.graph-overview-hero {
  display: grid;
  grid-template-columns: minmax(220px, 1.15fr) minmax(420px, 1.7fr) auto;
  align-items: stretch;
  gap: 18px;
  margin-bottom: 16px;
  padding: 18px 20px;
  border: 1px solid var(--console-line, var(--line));
  border-left: 3px solid var(--graph-accent, #f06b4f);
  border-radius: 8px;
  background: var(--console-panel, #fff);
  box-shadow: var(--console-shadow-soft, 0 4px 14px rgba(32, 37, 43, .04));
}
.graph-overview-kicker { color: var(--console-muted, var(--ink-soft)); font-size: .57rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.graph-overview-hero-copy h2 { margin: 7px 0 4px; font-size: 1.18rem; letter-spacing: -.02em; }
.graph-overview-hero-copy p { margin: 0; color: var(--console-muted, var(--ink-soft)); font-size: .66rem; line-height: 1.55; }
.graph-poc-label { display: inline-block; margin-top: 11px; color: var(--console-muted, var(--ink-soft)); font-size: .55rem; }
.graph-overview-hero-facts { display: grid; grid-template-columns: repeat(3, minmax(120px, 1fr)); align-items: center; border-left: 1px solid var(--console-line, var(--line)); }
.graph-overview-hero-facts > div { min-width: 0; padding: 0 15px; border-right: 1px solid var(--console-line, var(--line)); }
.graph-overview-hero-facts > div:last-child { border-right: 0; }
.graph-overview-hero-facts span { display: block; color: var(--console-muted, var(--ink-soft)); font-size: .56rem; }
.graph-overview-hero-facts strong { display: block; margin-top: 5px; font-size: .78rem; line-height: 1.35; }
.graph-overview-hero-facts small { display: block; margin-top: 4px; color: var(--console-muted, var(--ink-soft)); font-size: .56rem; line-height: 1.4; }
.graph-overview-primary-action { align-self: center; min-width: 138px; white-space: nowrap; }
.graph-overview-blocker { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; padding: 12px 16px; border: 1px solid #f0d9a8; border-left: 3px solid var(--graph-warning, #95620f); border-radius: 7px; background: var(--graph-warning-soft, #fff4df); }
.graph-overview-blocker strong { color: var(--graph-warning, #95620f); font-size: .68rem; white-space: nowrap; }
.graph-overview-blocker p { flex: 1; margin: 0; color: #72501f; font-size: .61rem; line-height: 1.45; }
.graph-overview-blocker .button { white-space: nowrap; }
.graph-overview-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(286px, .72fr); align-items: start; gap: 16px; }
.graph-overview-main { display: grid; gap: 16px; min-width: 0; }
.graph-release-path, .graph-scope-compact, .graph-assistant-panel { overflow: hidden; border: 1px solid var(--console-line, var(--line)); border-radius: 8px; background: var(--console-panel, #fff); box-shadow: var(--console-shadow-soft, 0 4px 14px rgba(32, 37, 43, .04)); }
.graph-release-path > header, .graph-scope-compact > header, .graph-assistant-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 14px 16px 11px; border-bottom: 1px solid var(--console-line, var(--line)); }
.graph-release-path h2, .graph-scope-compact h2, .graph-assistant-panel h2 { margin: 4px 0 0; font-size: .8rem; }
.graph-release-path > header > p { max-width: 250px; margin: 4px 0 0; color: var(--console-muted, var(--ink-soft)); font-size: .58rem; line-height: 1.45; text-align: right; }
.graph-release-path ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.graph-release-step { display: grid; grid-template-columns: 26px minmax(0, 1fr) minmax(90px, auto) auto auto; align-items: center; gap: 10px; min-height: 60px; padding: 8px 14px; border-bottom: 1px solid var(--console-line, var(--line)); }
.graph-release-step:last-child { border-bottom: 0; }
.graph-release-step-index { display: grid; place-items: center; width: 23px; height: 23px; border-radius: 50%; background: var(--graph-muted-soft, #f1f3f6); color: var(--console-muted, var(--ink-soft)); font-size: .6rem; font-weight: 700; }
.graph-release-step-copy { min-width: 0; }
.graph-release-step-copy strong { display: block; font-size: .68rem; }
.graph-release-step-copy small { display: block; margin-top: 3px; color: var(--console-muted, var(--ink-soft)); font-size: .57rem; line-height: 1.4; }
.graph-release-step-count { color: var(--console-muted, var(--ink-soft)); font-size: .59rem; white-space: nowrap; }
.graph-release-step .button { min-height: 28px; padding: 3px 9px; font-size: .57rem; white-space: nowrap; }
.graph-scope-compact > header { align-items: center; }
.graph-scope-compact > header p { margin: 4px 0 0; color: var(--console-muted, var(--ink-soft)); font-size: .58rem; }
.graph-scope-compact-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.graph-scope-compact-items article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 10px; padding: 12px 15px; border-right: 1px solid var(--console-line, var(--line)); }
.graph-scope-compact-items article:nth-child(2n) { border-right: 0; }
.graph-scope-compact-items article:nth-child(n+3) { border-top: 1px solid var(--console-line, var(--line)); }
.graph-scope-compact-items strong { min-width: 0; overflow: hidden; font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
.graph-scope-compact-items small { grid-column: 1 / -1; color: var(--console-muted, var(--ink-soft)); font-size: .55rem; }
.graph-scope-compact-items .graph-status-pill { grid-row: 1; grid-column: 2; }
.graph-assistant-panel { position: sticky; top: 16px; }
.graph-assistant-panel > header { align-items: center; background: #fafbfc; }
.graph-assistant-toggle { border: 0; background: transparent; color: var(--console-muted, var(--ink-soft)); cursor: pointer; font: inherit; font-size: .59rem; }
.graph-assistant-body { padding: 14px 15px 13px; }
.graph-assistant-current { display: grid; gap: 5px; margin: 0 0 13px; padding: 10px 11px; border-left: 2px solid var(--graph-accent, #f06b4f); background: var(--graph-accent-soft, rgba(240, 107, 79, .1)); }
.graph-assistant-current strong { font-size: .61rem; }
.graph-assistant-current span { color: var(--console-ink, var(--ink)); font-size: .62rem; line-height: 1.5; }
.graph-assistant-nav { justify-self: start; border: 0; padding: 0; background: transparent; color: var(--graph-positive, #267155); cursor: pointer; font: inherit; font-size: .57rem; font-weight: 700; }
.graph-assistant-list { display: grid; gap: 9px; margin: 0 0 13px; }
.graph-assistant-list div { display: grid; grid-template-columns: 55px 1fr; gap: 8px; }
.graph-assistant-list dt { color: var(--console-muted, var(--ink-soft)); font-size: .57rem; }
.graph-assistant-list dd { margin: 0; font-size: .59rem; line-height: 1.45; }
.graph-assistant-prompts { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 13px; }
.graph-assistant-prompts > span { width: 100%; margin-bottom: 1px; color: var(--console-muted, var(--ink-soft)); font-size: .56rem; }
.graph-assistant-prompts button { border: 1px solid var(--console-line, var(--line)); border-radius: 999px; padding: 5px 8px; background: #fff; color: var(--console-ink, var(--ink)); cursor: pointer; font: inherit; font-size: .56rem; }
.graph-assistant-form { display: grid; gap: 6px; }
.graph-assistant-form label { color: var(--console-muted, var(--ink-soft)); font-size: .56rem; }
.graph-assistant-form > div { display: flex; gap: 6px; }
.graph-assistant-form input { min-width: 0; flex: 1; height: 31px; padding: 0 9px; border: 1px solid var(--console-line-strong, #c7ccd1); border-radius: 4px; color: var(--console-ink, var(--ink)); font: inherit; font-size: .59rem; }
.graph-assistant-form .button { min-height: 31px; padding: 3px 10px; font-size: .57rem; }
.graph-assistant-footnote { margin: 11px 0 0; color: var(--console-muted, var(--ink-soft)); font-size: .52rem; line-height: 1.4; }

/* 专题概览收敛为工作台：状态只做定位，动作承担主视觉。 */
.graph-topic-overview-page .graph-overview-heading { margin-bottom: 8px; }
.graph-overview-hero {
  grid-template-columns: minmax(220px, .9fr) minmax(420px, 1.8fr) auto;
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border-left-width: 2px;
  border-radius: 6px;
  box-shadow: none;
}
.graph-overview-hero-copy h2 { margin: 4px 0 2px; font-size: .96rem; }
.graph-overview-hero-copy p { font-size: .59rem; line-height: 1.4; }
.graph-poc-label { display: none; }
.graph-overview-hero-facts { grid-template-columns: repeat(3, minmax(96px, 1fr)); }
.graph-overview-hero-facts > div { padding: 0 10px; }
.graph-overview-hero-facts strong { margin-top: 3px; font-size: .7rem; }
.graph-overview-hero-facts small { margin-top: 2px; font-size: .53rem; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.graph-overview-primary-action { min-width: 124px; }
.graph-overview-blocker { gap: 10px; margin-bottom: 12px; padding: 9px 12px; border-radius: 5px; }
.graph-overview-blocker strong { font-size: .62rem; }
.graph-overview-blocker p { font-size: .57rem; }
.graph-overview-layout { grid-template-columns: minmax(0, 1fr) minmax(240px, .34fr); gap: 12px; }
.graph-overview-main { gap: 12px; }
.graph-release-path, .graph-scope-compact, .graph-assistant-panel { border-radius: 6px; box-shadow: none; }
.graph-release-path > header, .graph-scope-compact > header, .graph-assistant-panel > header { padding: 10px 12px 8px; }
.graph-release-path h2, .graph-scope-compact h2, .graph-assistant-panel h2 { margin-top: 3px; font-size: .72rem; }
.graph-release-path > header > p { max-width: 180px; font-size: .53rem; }
.graph-release-step { grid-template-columns: 22px minmax(0, 1fr) minmax(72px, auto) auto auto; gap: 8px; min-height: 48px; padding: 6px 10px; }
.graph-release-step-index { width: 20px; height: 20px; font-size: .54rem; }
.graph-release-step-copy strong { font-size: .62rem; }
.graph-release-step-copy small { margin-top: 2px; font-size: .52rem; line-height: 1.25; }
.graph-release-step-count { font-size: .54rem; }
.graph-release-step .button { min-height: 25px; padding: 2px 7px; font-size: .53rem; }
.graph-scope-compact > header p { font-size: .53rem; }
.graph-scope-compact-items article { padding: 9px 11px; }
.graph-scope-compact-items strong { font-size: .59rem; }
.graph-scope-compact-items small { font-size: .52rem; }
.graph-assistant-panel { position: static; }
.graph-assistant-body { padding: 10px 11px; }
.graph-assistant-current { margin-bottom: 9px; padding: 8px 9px; }
.graph-assistant-current span { font-size: .58rem; line-height: 1.35; }
.graph-assistant-list { gap: 6px; margin-bottom: 9px; }
.graph-assistant-list div { grid-template-columns: 48px 1fr; gap: 6px; }
.graph-assistant-list dt, .graph-assistant-list dd { font-size: .54rem; }
.graph-assistant-prompts { gap: 4px; margin-bottom: 9px; }
.graph-assistant-prompts button { padding: 4px 6px; font-size: .52rem; }
.graph-assistant-form input { height: 28px; font-size: .54rem; }
.graph-assistant-form .button { min-height: 28px; font-size: .53rem; }
.graph-assistant-footnote { margin-top: 8px; font-size: .49rem; }
.graph-context-strip.graph-context-compact { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:12px 16px; }
.graph-context-compact span { color:var(--text-secondary, #64748b); font-size:12px; }
.graph-overview-hero.graph-overview-compact { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px 20px; }
.graph-overview-compact .graph-overview-hero-copy h2 { font-size:16px; }
.graph-overview-compact .graph-overview-hero-copy p { margin:6px 0; }
.graph-shortcut-panel header { display:flex; align-items:center; justify-content:space-between; }
.graph-shortcut-panel ol { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; padding:16px; }
.graph-shortcut-panel .graph-release-step { display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:12px; }
@media(max-width:720px) { .graph-shortcut-panel ol { grid-template-columns:repeat(2,minmax(0,1fr)); } .graph-overview-hero.graph-overview-compact { align-items:flex-start; flex-direction:column; } }

/* Topic operations keep the existing console theme and use compact action rows. */
#rag-app .graph-topic-overview-page .graph-overview-compact { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; }
#rag-app .graph-topic-overview-page .graph-overview-flow-hint { display:block; margin-top:8px; color:var(--console-muted, var(--ink-soft)); font-size:12px; }
#rag-app .graph-topic-overview-page .graph-overview-flow-description { margin:4px 0 0; color:var(--console-muted, var(--ink-soft)); font-size:12px; line-height:1.5; }
#rag-app .graph-topic-overview-page .graph-overview-primary-action { width:auto; flex:0 0 auto; min-width:110px; max-width:100%; align-self:center; }
#rag-app .graph-topic-overview-page .graph-shortcut-panel ol { display:block; margin:0; padding:0; }
#rag-app .graph-topic-overview-page .graph-release-step { display:grid; grid-template-columns:64px 112px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:58px; padding:10px 16px; }
#rag-app .graph-topic-overview-page .graph-stage-name { font-size:13px; }
#rag-app .graph-topic-overview-page .graph-stage-pending { color:var(--console-muted, var(--ink-soft)); font-size:12px; line-height:1.5; }
#rag-app .graph-topic-overview-page .graph-release-step .graph-status-pill { width:max-content; font-size:12px; }
#rag-app .graph-topic-overview-page .graph-release-step .button { width:auto; min-height:32px; font-size:12px; }
@media(min-width:981px) {
  .static-menu-page #rag-app .graph-kb-page .graph-kb-table { table-layout:fixed; width:100%; }
  .static-menu-page #rag-app .graph-kb-page .graph-kb-table th:nth-child(1),
  .static-menu-page #rag-app .graph-kb-page .graph-kb-table td:nth-child(1) { width:40px; min-width:40px; max-width:40px; padding-left:10px; padding-right:10px; }
  .static-menu-page #rag-app .graph-kb-page .graph-kb-table th:nth-child(2) { width:calc((100% - 40px) * .25); }
  .static-menu-page #rag-app .graph-kb-page .graph-kb-table th:nth-child(3) { width:calc((100% - 40px) * .15); }
  .static-menu-page #rag-app .graph-kb-page .graph-kb-table th:nth-child(4) { width:calc((100% - 40px) * .10); }
  .static-menu-page #rag-app .graph-kb-page .graph-kb-table th:nth-child(5) { width:calc((100% - 40px) * .14); }
  .static-menu-page #rag-app .graph-kb-page .graph-kb-table th:nth-child(6) { width:calc((100% - 40px) * .17); }
  .static-menu-page #rag-app .graph-kb-page .graph-kb-table th:nth-child(7) { width:calc((100% - 40px) * .19); }
}

/* ============================================================================
   [KS 2026-09-15 / P1-A] 图谱构建列表（#graph/builds）「操作」列列宽 —— 纯列宽改动，
   不涉及任何业务逻辑、不触碰其它页面。

   事实核查（实测，1440×1000）：本表 DOM 是
     .graph-kb-page > .kb-list-panel > .kb-table-scroll > table.kb-table.data-table（6 列）
   ① 上面 @media(min-width:981px) 里的 .graph-kb-table 系列规则
      **不匹配本表**（.graph-kb-table 只出现在「选择知识库」编辑页，那张才是 7 列表），
      因此按 6/7 列份额去改那段对本页零效果，且会破坏「选择知识库」7 列表的列宽。
   ② 本表列宽真实来源 = styles.css L1172-1177
      `.static-menu-page #rag-app .kb-table th:nth-child(n)`：27/10/12/17/18/16%。
      表宽 1130px ⇒ 操作列 16% = 180.8px，扣掉 td 左右各 14px padding 后
      内容宽只有 152.8px，放不下 3×76+2×8=244px，按钮遂被逐行折成 3 行。
   ③ 规格给的 .21/.13/.10/.13/.20/.23 亦不足：.23×1130=259.9，内容宽 231.9，
      仍差 244−231.9 = **12.1px**（差在 td 的 28px padding，规格算术未计入）；
      且 .10 会让「输入规模」列（6 个实体 · 7 条关系）折成两行（实测折行单元 +2）。
   ④ 故按「达成 3 按钮一行 + 不新增任何文字折行」取最小偏差份额：
      图谱 .17 / 范围 .13 / 输入规模 .12 / 质量 .13 / 状态 .20 / 操作 .25（合计 1.00）。
      相对规格：范围/质量/状态 3 列与规格一致；缺口来自最宽的「图谱」（.21→.17，实测无折行），
      「输入规模」保持 .12 以沿用现状（规格 .10 会造成新折行），多出的 2pp 一并在图谱内消化。
      操作列 .25 = 282.5px，内容宽 254.5px ≥ 3×76+2×8 = 244px，余量 10.5px。
      实测旁证：8 组份额扫参，「操作=25% 且 输入规模=12%」是折行单元最少（仅 1 处既有折行）的组合。
   作用域：仅本表本 6 列；选择器要求「直接父级是 .kb-list-panel（且不是治理页的
   .graph-build-overview-panel）」，全站唯一命中本表（构建治理页/选择知识库页实测命中数 0，
   改前后那两页列宽逐列完全一致）。
   ============================================================================ */
@media(min-width:981px) {
  .static-menu-page #rag-app .graph-kb-page > .kb-list-panel:not(.graph-build-overview-panel) > .kb-table-scroll > .kb-table.data-table th:nth-child(1) { width: 17%; }
  .static-menu-page #rag-app .graph-kb-page > .kb-list-panel:not(.graph-build-overview-panel) > .kb-table-scroll > .kb-table.data-table th:nth-child(2) { width: 13%; }
  .static-menu-page #rag-app .graph-kb-page > .kb-list-panel:not(.graph-build-overview-panel) > .kb-table-scroll > .kb-table.data-table th:nth-child(3) { width: 12%; }
  .static-menu-page #rag-app .graph-kb-page > .kb-list-panel:not(.graph-build-overview-panel) > .kb-table-scroll > .kb-table.data-table th:nth-child(4) { width: 13%; }
  .static-menu-page #rag-app .graph-kb-page > .kb-list-panel:not(.graph-build-overview-panel) > .kb-table-scroll > .kb-table.data-table th:nth-child(5) { width: 20%; }
  .static-menu-page #rag-app .graph-kb-page > .kb-list-panel:not(.graph-build-overview-panel) > .kb-table-scroll > .kb-table.data-table th:nth-child(6) { width: 25%; }
}
@media(max-width:800px) {
  #rag-app .graph-topic-overview-page .graph-overview-compact { align-items:flex-start; flex-direction:column; }
  #rag-app .graph-topic-overview-page .graph-overview-primary-action { align-self:flex-start; }
  #rag-app .graph-topic-overview-page .graph-release-step { grid-template-columns:50px minmax(0,1fr) auto; gap:8px; padding:10px 12px; }
  #rag-app .graph-topic-overview-page .graph-stage-pending { grid-column:1 / -1; grid-row:2; }
}
.graph-kb-page .breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.graph-kb-page .breadcrumb button { appearance: none; border: none; background: transparent; color: inherit; font: inherit; padding: 3px 4px; min-height: 28px; border-radius: 4px; cursor: pointer; }
.graph-kb-page .breadcrumb button:hover { color: var(--accent, #2d6757); background: rgba(45,103,87,.06); }
.graph-kb-page .breadcrumb button:focus-visible { outline: 2px solid var(--accent, #2d6757); outline-offset: 1px; }
.graph-publish-dialog { color: var(--ink, #253349); background: var(--surface, #fff); border: 1px solid var(--line, #dce3eb); border-radius: 10px; padding: 24px; max-width: min(560px, calc(100vw - 40px)); }
.graph-publish-dialog::backdrop { background: rgb(20 35 55 / 35%); }
.graph-publish-dialog h2 { font-size: 18px; margin: 0 0 14px; }
.graph-publish-dialog p,.graph-publish-dialog li { font-size: 14px; line-height: 1.6; }
/* Keep governance navigation single-sourced in the content area. */
.graph-governance-flow-note {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 16px 0;
  padding: 12px 16px;
  border: 1px solid #dce3e8;
  border-radius: 10px;
  background: #f7faf9;
  color: #5f6f78;
  font-size: 13px;
}
.graph-governance-flow-note strong { color: #225f4f; }

/* 图谱构建步骤的关键统计：填充步骤与状态之间的专用信息列，
   让实体、关系和质量结果在同一张表内可直接比较。 */
.graph-governance-hub .graph-build-overview-panel .kb-table { width: 100%; table-layout: fixed; }
.graph-governance-hub .graph-build-overview-panel .kb-table th:nth-child(1),
.graph-governance-hub .graph-build-overview-panel .kb-table td:nth-child(1) { width: 15%; }
.graph-governance-hub .graph-build-overview-panel .kb-table th:nth-child(2),
.graph-governance-hub .graph-build-overview-panel .kb-table td:nth-child(2) { width: 25%; }
.graph-governance-hub .graph-build-overview-panel .kb-table th:nth-child(3),
.graph-governance-hub .graph-build-overview-panel .kb-table td:nth-child(3) { width: 15%; }
.graph-governance-hub .graph-build-overview-panel .kb-table th:nth-child(4),
.graph-governance-hub .graph-build-overview-panel .kb-table td:nth-child(4) { width: 29%; }
.graph-governance-hub .graph-build-overview-panel .kb-table th:nth-child(5),
.graph-governance-hub .graph-build-overview-panel .kb-table td:nth-child(5) { width: 16%; }
.graph-governance-hub .graph-build-stat-cell { vertical-align: middle; }
.graph-governance-hub .graph-step-stat { display: grid; gap: 2px; min-width: 0; }
.graph-governance-hub .graph-step-stat strong { color: var(--console-ink, var(--ink)); font-size: 15px; line-height: 1.15; }
.graph-governance-hub .graph-step-stat small { color: var(--console-muted, var(--ink-soft)); font-size: 11px; line-height: 1.25; }
.graph-governance-hub .graph-step-stat em { color: var(--console-muted, var(--ink-soft)); font-size: 11px; font-style: normal; line-height: 1.35; white-space: normal; }
.graph-governance-hub .graph-step-stat-muted { color: var(--console-muted, var(--ink-soft)); font-size: 13px; }
.graph-governance-hub .graph-step-stat-muted small { display: block; margin-top: 2px; }
.graph-governance-hub .graph-build-metric-note { color: var(--console-muted, var(--ink-soft)); font-size: 11px; }
@media(max-width: 800px) {
  .graph-governance-hub .graph-build-overview-panel .kb-table { min-width: 760px; }
  .graph-governance-hub .graph-build-overview-panel .kb-table th:nth-child(2),
  .graph-governance-hub .graph-build-overview-panel .kb-table td:nth-child(2) { width: 23%; }
}

/* [T2-KBSCOPE 2026-09-20] 不可选知识库行：外观必须与可选行一眼可分。 */
.graph-kb-table tbody tr.is-unselectable { background: var(--graph-muted-soft, #f1f3f6); }
.graph-kb-table tbody tr.is-unselectable td { color: var(--console-muted, var(--ink-soft, #6b7280)); }
.graph-kb-table tbody tr.is-unselectable td strong { color: var(--console-muted, var(--ink-soft, #6b7280)); }
.graph-kb-table tbody tr.is-unselectable .graph-readiness-meter i { background: #c9cdd4; }
.graph-kb-table tbody tr.is-unselectable .graph-status-pill.ready { background: var(--graph-muted-soft, #f1f3f6); }
.graph-kb-blocked-reason { display: block; margin-top: 4px; color: #a74839; font-weight: 650; }
.graph-select-column input[type="checkbox"]:disabled { cursor: not-allowed; opacity: .5; }
