/*! ontology-tier3-shell.css — 惠生AI中台 第三档 · 本体增强 壳适配层  r13-dev-20260916 (S1)
 * ============================================================================
 * 职责（只做两件事）：
 *   1. 第三档模式开关：body.ks-ontology-active 时，隐藏同页的第一档/第二档内容区，
 *      只显示第三档内容区 #ontology-tier3-root（与 tier2-shell.css 同款写法）。
 *   2. 第三档内容区布局 + 第三档菜单项高亮。
 *
 * 边界（铁律 18「只加不改」）：
 *   - 本文件所有选择器都带 `body.ks-ontology-active` 前缀或 `#ontology-tier3-root` 前缀，
 *     不进入第一档 / 第二档任何既有选择器的作用域。
 *   - 外观令牌全部取自 console-theme.css（--console-line / --console-radius / --console-muted），
 *     不引入 smartapp.min.css / sa-icons.css / data-bs-theme / assets/smartadmin/。
 *
 * 回滚：删除本文件 + index.html 里 [R13-S1] 标记的 3 处新增块即可。
 * ========================================================================== */

/* ── 1. 模式互斥（与 body.ks-tier2-active 互斥；两者不会同时存在） ── */
body.ks-ontology-active .workspace > .view { display: none !important; }
body.ks-ontology-active .workspace > *:not(#ontology-tier3-root) { display: none !important; }
body.ks-ontology-active .workspace { padding-top: 22px; }

/* ── 2. 第三档内容区 ── */
#ontology-tier3-root { display: block; max-width: 1440px; margin: 0 auto; }
#ontology-tier3-root[hidden] { display: none !important; }
#ontology-tier3-root [hidden] { display: none !important; }

.ontology-tier3-panel {
  margin-top: 4px;
  border: 1px solid var(--console-line);
  border-radius: var(--console-radius);
  background: #fff;
  overflow: hidden;
}
.ontology-tier3-note {
  margin: 0;
  padding: .5rem .85rem;
  border-top: 1px solid var(--console-line);
  color: var(--console-muted);
  font-size: .62rem;
}

/* ── 3. 菜单：第三档分组在第三档模式下高亮（不改变第一档/第二档分组） ── */
body.ks-ontology-active .tier-nav-group[data-tier-group="tier-3"] > .tier-toggle { color: #fff; }
body.ks-ontology-active .tier-subnav button[data-tier-route].active {
  color: #fff;
  background: rgba(255, 255, 255, .12);
  box-shadow: inset 2px 0 0 var(--accent, #2f6654);
}

/* ============================================================================
 * [R13-S2] 第三档 S2 三页（P1 本体范围 / P3 本体设计 / P5 映射与对齐）补充样式
 * ----------------------------------------------------------------------------
 * 边界（铁律 18「只加不改」）：
 *   - 本段选择器一律带 `#ontology-tier3-root` 或 `body.ks-ontology-active` 前缀，
 *     **不进入**第一档 / 第二档任何既有选择器作用域（上方 S1 段亦未改动）。
 *   - 新增类名只做「布局定位」与「复用 console-theme 令牌的呈现」；
 *     不引入 smartapp.min.css / sa-icons.css / data-bs-theme。
 *   - metric-rail / ontology-workbench 的**列数需要局部覆盖**（原为 5 列 / 3 列固定），
 *     故用 `#ontology-tier3-root` 前缀提高优先级，属**只加**不覆盖既有页面。
 *   - 状态色一律取 :root 既有令牌（--console-success / --console-danger / --console-warning）。
 * 回滚：删除本段即可（文件上方的 S1 段不受影响）。
 * ========================================================================== */

/* ── 页头动作区（S1 页头原本没有右侧按钮位） ── */
#ontology-tier3-root .page-heading.simple { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
#ontology-tier3-root .page-heading-actions { display: flex; align-items: center; gap: .5rem; padding-top: .2rem; }

/* ── 指标条列数覆盖：P1 三卡 / P3·P5 四卡（.metric-rail 原为 repeat(5,1fr)） ── */
#ontology-tier3-root .metric-rail { margin: 0 0 16px; }
#ontology-tier3-root .metric-rail.ontology-metric-rail-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#ontology-tier3-root .metric-rail.ontology-metric-rail-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
#ontology-tier3-root .metric-rail article { border-right: 1px solid var(--line); }
#ontology-tier3-root .metric-rail article:last-child { border-right: 0; }
#ontology-tier3-root .metric-rail article[role="button"] { cursor: pointer; }
#ontology-tier3-root .metric-rail article[role="button"]:hover { background: color-mix(in srgb, var(--accent) 5%, var(--surface)); }
#ontology-tier3-root .metric-rail article strong[data-metric] { font-variant-numeric: tabular-nums; }

/* ── 四态文案 ── */
#ontology-tier3-root .ontology-tier3-state { margin: 0; padding: 1.6rem 1.25rem; color: var(--console-muted); font-size: .66rem; line-height: 1.6; }
#ontology-tier3-root .ontology-tier3-state b { display: block; margin-bottom: .35rem; color: var(--console-text); font-size: .72rem; }
#ontology-tier3-root .ontology-tier3-state-error b { color: var(--console-danger); }
#ontology-tier3-root .ontology-tier3-state-actions { display: flex; gap: .5rem; margin-top: .8rem; }
#ontology-tier3-root .ontology-tier3-code {
  display: inline-block; margin-top: .3rem; padding: .18rem .42rem;
  border: 1px solid var(--console-line); border-radius: 4px;
  background: #f6f7fa; color: var(--console-text);
  font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .58rem;
}
#ontology-tier3-root .ontology-tier3-hint { margin: .4rem 0 0; color: var(--console-muted); font-size: .59rem; }
#ontology-tier3-root .ontology-tier3-path {
  margin: .5rem 0 0; padding: .45rem .6rem;
  border: 1px dashed color-mix(in srgb, var(--console-danger) 34%, var(--console-line));
  border-radius: 5px; background: color-mix(in srgb, var(--console-danger) 5%, #fff);
  color: var(--console-text); font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .64rem;
}
#ontology-tier3-root .ontology-tier3-note-inline { color: var(--console-muted); font-size: .58rem; }
#ontology-tier3-root .ontology-tier3-subhead {
  margin: 0 0 .5rem; padding-bottom: .3rem;
  border-bottom: 1px solid var(--console-line);
  color: var(--console-text); font-size: .62rem; font-weight: 650;
}
#ontology-tier3-root .ontology-tier3-inset { margin: 0; padding: .85rem .9rem; }
#ontology-tier3-root .ontology-tier3-inset .ontology-empty { padding: 1rem .5rem; }
#ontology-tier3-root .ontology-empty-actions { margin-top: .9rem; }
#ontology-tier3-root .ontology-em { color: var(--accent); font-weight: 650; }

/* ── 只读骨架容器 ── */
#ontology-tier3-root .ontology-tier3-list { padding: .85rem 1.15rem 1.15rem; }

/* ── 三栏工作台：复用 .ontology-workbench 的 238/1fr/286，仅去掉固定最小高 ── */
#ontology-tier3-root .ontology-workbench.ontology-workbench-3col { min-height: 420px; }
#ontology-tier3-root .ontology-workbench .ontology-canvas { display: flex; flex-direction: column; }
#ontology-tier3-root .ontology-tier3-tablewrap { padding: 0 0 1rem; }
#ontology-tier3-root .ontology-tier3-tablewrap table.data-table { width: 100%; }
#ontology-tier3-root .ontology-tier3-tablewrap tbody:empty { display: none; }

/* ── 行内提示条（黄条 / 绿条）：G3 即时校验、未映射提示 ── */
#ontology-tier3-root .ontology-inline-alert {
  margin: 0 1.15rem .9rem; padding: .7rem .8rem;
  border: 1px solid var(--console-line); border-left-width: 3px; border-radius: 5px;
  background: #fafbfc;
}
#ontology-tier3-root .ontology-inline-alert[hidden] { display: none !important; }
#ontology-tier3-root .ontology-inline-alert > b { display: block; margin-bottom: .3rem; color: var(--console-text); font-size: .66rem; }
#ontology-tier3-root .ontology-inline-alert > p { margin: 0; color: var(--console-muted); font-size: .59rem; line-height: 1.6; }
#ontology-tier3-root .ontology-inline-alert-warn {
  border-left-color: var(--console-warning);
  background: color-mix(in srgb, var(--console-warning) 7%, #fff);
}
#ontology-tier3-root .ontology-inline-alert-warn > b { color: color-mix(in srgb, var(--console-warning) 72%, #000); }
#ontology-tier3-root .ontology-inline-alert-ok {
  border-left-color: var(--console-success);
  background: color-mix(in srgb, var(--console-success) 7%, #fff);
}
#ontology-tier3-root .ontology-inline-alert-ok > b { color: color-mix(in srgb, var(--console-success) 70%, #000); }
#ontology-tier3-root .ontology-suggest-list { margin: .5rem 0 0; padding: 0; list-style: none; display: grid; gap: .3rem; }
#ontology-tier3-root .ontology-suggest-list li { font-size: .59rem; }
#ontology-tier3-root .ontology-suggest-list code,
#ontology-tier3-root .ontology-inline-alert code {
  padding: .06rem .28rem; border-radius: 3px; background: rgba(0,0,0,.05);
  font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .57rem;
}

/* ── 未映射处置三选一 ── */
#ontology-tier3-root .ontology-dispose-list { margin: 0 0 1rem; padding: 0; list-style: none; display: grid; gap: .5rem; }
#ontology-tier3-root .ontology-dispose-list li {
  display: grid; gap: .3rem; padding: .55rem .6rem;
  border: 1px solid var(--console-line); border-radius: 5px; background: #fff;
}
#ontology-tier3-root .ontology-dispose-list li > b { color: var(--console-text); font-size: .63rem; }
#ontology-tier3-root .ontology-dispose-list li > span { color: var(--console-muted); font-size: .57rem; line-height: 1.55; }

/* ── 底部动作条（P5） ── */
#ontology-tier3-root .ontology-action-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  margin-top: 12px; padding: .8rem 1rem;
  border: 1px solid var(--console-line); border-radius: var(--console-radius);
  background: var(--console-panel); box-shadow: var(--console-shadow);
}
#ontology-tier3-root .ontology-action-bar-note { max-width: 62%; color: var(--console-muted); font-size: .58rem; line-height: 1.6; }
#ontology-tier3-root .ontology-action-bar-note b { color: var(--console-danger); }
#ontology-tier3-root .ontology-action-bar-buttons { display: flex; gap: .5rem; flex: 0 0 auto; }

/* ── 抽屉内 G3 提示区与上下文网格 ── */
#ontology-tier3-root .ontology-editor-body .ontology-inline-alert { margin: 0; }
#ontology-tier3-root .ontology-editor-context .ontology-checkbox { padding-top: 0; }
#ontology-tier3-root .ontology-editor-context label { font-size: .6rem; }

/* ── 窄屏 ── */
@media (max-width: 1180px) {
  #ontology-tier3-root .metric-rail.ontology-metric-rail-3,
  #ontology-tier3-root .metric-rail.ontology-metric-rail-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #ontology-tier3-root .ontology-workbench.ontology-workbench-3col { grid-template-columns: 1fr; }
  #ontology-tier3-root .ontology-action-bar { flex-direction: column; align-items: stretch; }
  #ontology-tier3-root .ontology-action-bar-note { max-width: none; }
}

/* ============================================================================
 * [R13-S2b] 第三档剩余四页（P2 术语与类型 / P4 规则与约束 / P6 质量检查 / P7 版本与发布）
 * ----------------------------------------------------------------------------
 * 边界（铁律 18「只加不改」）：
 *   - 本段选择器**一律带 `#ontology-tier3-root` 前缀**，不进入第一档 / 第二档任何既有
 *     选择器作用域；上方 S1 / S2 两段**一字未改**。
 *   - 全部为**新增类名**（Tab 条 / 子面板 / 词表卡 / 右击菜单 / 门禁格 / finding 行 等），
 *     不覆盖任何既有类；
 *     令牌仍全部取自 console-theme.css（--console-line / --console-radius / --console-muted /
 *     --console-success / --console-danger / --console-warning / --console-text / --console-panel）。
 *   - 禁 smartapp.min.css / sa-icons.css / data-bs-theme / assets/smartadmin/。
 * 回滚：删除本段即可（S1 / S2 两段不受影响）。
 * ========================================================================== */

/* ── Tab 条（P2 / P4 / P6 / P7 共用） ── */
#ontology-tier3-root .ontology-tabbar {
  display: flex; flex-wrap: wrap; gap: .25rem;
  margin: 0; padding: .55rem .9rem 0;
  border-bottom: 1px solid var(--console-line);
  background: #fafbfc;
}
#ontology-tier3-root .ontology-tabbar button {
  padding: .42rem .8rem .5rem;
  border: 1px solid transparent; border-bottom: 0;
  border-radius: 5px 5px 0 0;
  background: transparent; color: var(--console-muted);
  font-size: .64rem; font-weight: 600; cursor: pointer;
}
#ontology-tier3-root .ontology-tabbar button:hover { color: var(--console-text); background: rgba(0,0,0,.03); }
#ontology-tier3-root .ontology-tabbar button.active {
  border-color: var(--console-line);
  background: #fff; color: var(--console-text);
  box-shadow: inset 0 2px 0 var(--accent, #2f6654);
}
#ontology-tier3-root .ontology-tab-panel { padding: 0; }
#ontology-tier3-root .ontology-tier3-subpanel { padding: .95rem 1.15rem 1.15rem; }
#ontology-tier3-root .ontology-tier3-subhead-row {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
}
#ontology-tier3-root .ontology-tier3-subhead-row .ontology-tier3-subhead { flex: 1 1 auto; }
#ontology-tier3-root .ontology-tier3-subhead-actions { display: flex; align-items: center; gap: .4rem; flex: 0 0 auto; }
#ontology-tier3-root .ontology-tier3-inset-panel { border: 0; border-radius: 0; margin: 0; background: transparent; }
#ontology-tier3-root .ontology-tier3-inset-list { margin-top: .6rem; }

/* ── 加载态骨架（P2） ── */
#ontology-tier3-root .ontology-tier3-skeleton { display: grid; gap: .35rem; padding: .9rem 1.15rem 1.15rem; }
#ontology-tier3-root .ontology-tier3-skeleton .tree-item {
  height: 22px; border-radius: 4px;
  background: linear-gradient(90deg, rgba(0,0,0,.045), rgba(0,0,0,.08), rgba(0,0,0,.045));
  color: transparent; font-size: 0;
}

/* ── 右击菜单（P2 概念树；定位由 JS 写 left/top，坐标为视口坐标） ── */
#ontology-tier3-root .ontology-context-menu {
  position: fixed; z-index: 60; min-width: 190px;
  padding: .3rem; border: 1px solid var(--console-line); border-radius: 6px;
  background: #fff; box-shadow: 0 8px 24px rgba(16,24,40,.14);
}
#ontology-tier3-root .ontology-context-menu button {
  display: block; width: 100%; padding: .4rem .55rem;
  border: 0; border-radius: 4px; background: transparent;
  color: var(--console-text); font-size: .61rem; text-align: left; cursor: pointer;
}
#ontology-tier3-root .ontology-context-menu button:hover:not([disabled]) { background: rgba(0,0,0,.05); }
#ontology-tier3-root .ontology-context-menu button[disabled] { color: var(--console-muted); cursor: not-allowed; opacity: .75; }

/* ── 约束表单（P4 Tab-2：主体类型 + 主体 两段式） ── */
#ontology-tier3-root .ontology-constraint-form {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem .9rem;
  margin: 0 0 1rem;
}
#ontology-tier3-root .ontology-constraint-form label { display: grid; gap: .25rem; font-size: .61rem; color: var(--console-text); }
#ontology-tier3-root .ontology-constraint-form label > span { color: var(--console-muted); font-weight: 400; font-size: .56rem; }
#ontology-tier3-root .ontology-constraint-form label.wide { grid-column: 1 / -1; }
#ontology-tier3-root .ontology-constraint-form select,
#ontology-tier3-root .ontology-constraint-form input {
  padding: .4rem .5rem; border: 1px solid var(--console-line); border-radius: 4px;
  background: #fff; color: var(--console-text); font-size: .61rem;
}
#ontology-tier3-root .ontology-constraint-form select[disabled],
#ontology-tier3-root .ontology-constraint-form input[disabled] { background: #f6f7fa; color: var(--console-muted); }

/* ── 待归档词表卡（P4 Tab-3） ── */
#ontology-tier3-root .ontology-dict-card {
  display: grid; gap: .45rem;
  margin: 0 0 .7rem; padding: .75rem .85rem;
  border: 1px solid var(--console-line); border-radius: 6px; background: #fff;
}
#ontology-tier3-root .ontology-dict-card > header { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; }
#ontology-tier3-root .ontology-dict-card > header strong { color: var(--console-text); font-size: .65rem; font-family: ui-monospace, Menlo, Consolas, monospace; }
#ontology-tier3-root .ontology-dict-card > header span { color: var(--console-muted); font-size: .58rem; font-variant-numeric: tabular-nums; }
#ontology-tier3-root .ontology-dict-card > p { margin: 0; color: var(--console-muted); font-size: .57rem; line-height: 1.6; }
#ontology-tier3-root .ontology-dict-card .ontology-empty { padding: .6rem .3rem; }

/* ── 页内小标题（P6/P7 用） ── */
#ontology-tier3-root .ontology-block-heading {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  margin: 0; padding: .7rem .95rem;
  border-bottom: 1px solid var(--console-line);
  color: var(--console-text); font-size: .64rem; font-weight: 650;
}
#ontology-tier3-root .ontology-block-heading .ontology-tier3-note-inline { font-weight: 400; }

@media (max-width: 1180px) {
  #ontology-tier3-root .ontology-constraint-form { grid-template-columns: 1fr; }
}
