/* 人体专业知识 · OLP 模型（olp）路由样式
   来源：素材/Human-Professional-Knowledge modules/olp.css 全部 olp- 规则
        + styles/95-brand-visual-unification.css 中 olp- 相关最终覆盖（导航 active/详情区间距/卡片阴影），已按最终合成效果合入。
   适配：模块 monochrome-dark-v1 灰阶体系（--hk-panel/--hk-panel-secondary/--hk-border/--hk-border-strong/--hk-muted/--hk-faint/--hk-strong）。
   映射约定：面板/边框/正文墨色 → --hk-*；原版带浅底强调色的徽章/chip/按钮/矩阵分值格为自洽配色对，成对保留原值；
   原版 data-route-link / data-olp-target 按钮与可点卡片已改为锚点，样式与原按钮一致。
   响应式：1180px 多列网格收拢，760px 单列（对应原版 820px 档），560px 指标与矩阵进一步收窄。 */

.olp-workspace {
  min-height: 100%;
  color: var(--hk-strong, #e5e5e5);
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

/* 模块约定：暗色主题下图标反色；按钮改锚点后统一去下划线并保持按钮外观 */
.olp-workspace img { filter: invert(1); height: 1.1rem; opacity: .72; width: 1.1rem; }
.olp-workspace a { text-decoration: none; }

/* ── 左侧浏览器 ─────────────────────────────────────── */
.olp-browser {
  position: sticky;
  top: 1rem;
  min-width: 0;
  max-height: calc(100vh - 2rem);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel, #141414);
  padding: 12px 10px;
}

.olp-aggregate-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.olp-aggregate-tabs button {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 999px;
  background: var(--hk-panel-secondary, #242424);
  color: var(--hk-muted, #b3b3b3);
  padding: 6px 9px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 900;
}

.olp-aggregate-tabs button.active {
  border-color: rgba(255, 255, 255, 0.28);
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
}

.olp-aggregate-tabs span {
  font-size: 12px;
  color: inherit;
  opacity: 0.74;
}

.olp-nav-scroll {
  min-height: 0;
  overflow: auto;
  display: grid;
  align-content: start;
  gap: 12px;
  padding-right: 2px;
  scrollbar-width: thin;
  scrollbar-color: var(--hk-border-strong, #3a3a3a) transparent;
}

.olp-nav-scroll::-webkit-scrollbar,
.olp-detail-view::-webkit-scrollbar { width: 10px; }
.olp-nav-scroll::-webkit-scrollbar-thumb,
.olp-detail-view::-webkit-scrollbar-thumb {
  border: 3px solid transparent;
  background: var(--hk-border-strong, #3a3a3a);
  border-radius: 999px;
}

.olp-nav-group {
  display: grid;
  gap: 6px;
}

.olp-nav-title {
  padding: 0 2px;
  font-size: 12px;
  font-weight: 900;
  color: var(--hk-muted, #b3b3b3);
}

.olp-nav-list {
  display: grid;
  gap: 6px;
}

.olp-nav-item {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  color: var(--hk-strong, #e5e5e5);
  text-align: left;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 8px;
}

.olp-nav-item b {
  min-width: 0;
  min-height: 28px;
  border-radius: 8px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  display: inline-grid;
  place-items: center;
  font-size: 12px;
  font-weight: 900;
}

.olp-nav-item span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 900;
  color: inherit;
}

.olp-nav-item:hover {
  border-color: rgba(255, 255, 255, 0.4);
  color: var(--hk-strong, #e5e5e5);
}

.olp-nav-item.active {
  border-color: rgba(255, 255, 255, 0.4);
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  box-shadow: inset 3px 0 0 #e5e5e5;
}

/* ── 右侧详情视图 ───────────────────────────────────── */
.olp-detail-view {
  min-width: 0;
  overflow: visible;
  padding: 0;
  display: grid;
  align-content: start;
  gap: 14px;
}

.olp-workbench-head,
.olp-section,
.olp-trace {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel, #141414);
}

.olp-workbench-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: start;
  padding: 18px;
}

.olp-workbench-kicker {
  font-size: 12px;
  font-weight: 900;
  color: var(--hk-faint, #7a7a7a);
}

.olp-workbench-head h1 {
  margin: 6px 0 8px;
  color: var(--hk-strong, #e5e5e5);
  font-size: 30px;
  line-height: 1.18;
  letter-spacing: 0;
}

.olp-workbench-head p,
.olp-section p,
.olp-source-map-card p,
.olp-card-grid p,
.olp-role-card p,
.olp-rule-notes p,
.olp-sampling-grid p,
.olp-trace p,
.olp-note {
  margin: 0;
  color: var(--hk-muted, #b3b3b3);
  line-height: 1.65;
}

.olp-workbench-metrics {
  min-width: 220px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.olp-workbench-metrics div {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  padding: 10px;
  text-align: center;
}

.olp-workbench-metrics strong {
  display: block;
  color: var(--hk-strong, #e5e5e5);
  font-size: 24px;
  line-height: 1;
}

.olp-section {
  padding: 16px;
}

.olp-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.olp-section-title h2 {
  margin: 0;
  color: var(--hk-strong, #e5e5e5);
  font-size: 18px;
  line-height: 1.25;
}

.olp-section-title span {
  border-radius: 999px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  padding: 4px 9px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

/* ── 卡片网格通用 ───────────────────────────────────── */
.olp-source-map,
.olp-card-grid,
.olp-formula-grid,
.olp-brief-grid,
.olp-task-learning-grid,
.olp-task-failure-grid,
.olp-application-step-grid,
.olp-application-question-grid,
.olp-application-output-grid,
.olp-evidence-bridge-grid,
.olp-layer-flow-grid,
.olp-practice-panel,
.olp-mechanism-grid,
.olp-sampling-grid,
.olp-rule-notes,
.olp-decision-steps,
.olp-correction-grid,
.olp-boundary-grid,
.olp-reading-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.olp-source-map-card,
.olp-card-grid article,
.olp-card-grid a,
.olp-formula-grid div,
.olp-brief-grid div,
.olp-task-learning-grid article,
.olp-task-failure-grid article,
.olp-application-lead,
.olp-application-step-grid article,
.olp-application-question-grid article,
.olp-application-output-grid article,
.olp-evidence-bridge-grid article,
.olp-layer-flow-grid article,
.olp-practice-panel article,
.olp-mechanism-grid article,
.olp-mechanism-grid a,
.olp-sampling-grid article,
.olp-sampling-grid a,
.olp-rule-notes div,
.olp-decision-steps article,
.olp-correction-grid article,
.olp-boundary-grid article,
.olp-reading-grid article,
.olp-execution-list article,
.olp-role-card {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  color: inherit;
}

.olp-source-map-card {
  position: relative;
  padding: 14px 14px 14px 50px;
}

.olp-source-map-card b,
.olp-formula-grid b,
.olp-mechanism-grid b,
.olp-card-grid b,
.olp-task-failure-grid b,
.olp-evidence-bridge-grid b,
.olp-layer-flow-grid b,
.olp-decision-steps b,
.olp-execution-list b,
.olp-role-card b {
  display: inline-grid;
  place-items: center;
  border-radius: 8px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  font-weight: 900;
}

.olp-source-map-card b {
  position: absolute;
  left: 14px;
  top: 14px;
  width: 26px;
  height: 26px;
}

.olp-source-map-card strong,
.olp-card-grid strong,
.olp-card-grid a strong,
.olp-formula-grid strong,
.olp-mechanism-grid strong,
.olp-mechanism-grid a strong,
.olp-task-learning-grid strong,
.olp-task-failure-grid strong,
.olp-sampling-grid strong,
.olp-sampling-grid a strong,
.olp-rule-notes strong,
.olp-evidence-bridge-grid strong,
.olp-layer-flow-grid strong,
.olp-decision-steps strong,
.olp-correction-grid strong,
.olp-boundary-grid strong,
.olp-reading-grid strong,
.olp-execution-list strong,
.olp-role-card strong {
  display: block;
  color: var(--hk-strong, #e5e5e5);
  font-size: 16px;
  line-height: 1.35;
}

.olp-formula-grid div,
.olp-card-grid article,
.olp-card-grid a,
.olp-brief-grid div,
.olp-task-learning-grid article,
.olp-task-failure-grid article,
.olp-application-lead,
.olp-application-step-grid article,
.olp-application-question-grid article,
.olp-application-output-grid article,
.olp-evidence-bridge-grid article,
.olp-layer-flow-grid article,
.olp-practice-panel article,
.olp-mechanism-grid article,
.olp-mechanism-grid a,
.olp-sampling-grid article,
.olp-sampling-grid a,
.olp-rule-notes div,
.olp-boundary-grid article {
  padding: 13px;
  display: grid;
  align-content: start;
  gap: 7px;
}

/* ── 模型骨架 / 序列 / 定位 ─────────────────────────── */
.olp-model-lead {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  padding: 14px;
}

.olp-model-lead strong {
  display: block;
  color: var(--hk-strong, #e5e5e5);
  font-size: 18px;
  line-height: 1.35;
  margin-bottom: 6px;
}

.olp-formula-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.olp-formula-grid b {
  width: 34px;
  height: 34px;
  font-size: 18px;
}

.olp-model-sequence {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.olp-model-sequence article {
  min-width: 0;
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  display: grid;
  align-content: start;
  gap: 7px;
  padding: 13px;
}

.olp-model-sequence b {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border-radius: 8px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  font-weight: 900;
}

.olp-model-sequence strong {
  display: block;
  color: var(--hk-strong, #e5e5e5);
  font-size: 16px;
  line-height: 1.35;
}

.olp-flow {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.olp-flow span {
  position: relative;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  padding: 7px 12px;
  font-weight: 900;
}

/* ── 任务学习 / 失效表现 ────────────────────────────── */
.olp-task-learning-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.olp-task-learning-grid article,
.olp-task-failure-grid article {
  min-width: 0;
  background: var(--hk-panel-secondary, #242424);
}

.olp-task-learning-grid span {
  color: var(--hk-muted, #b3b3b3);
  font-size: 12px;
  font-weight: 900;
}

.olp-task-learning-grid p,
.olp-task-failure-grid p {
  color: var(--hk-muted, #b3b3b3);
  line-height: 1.6;
}

.olp-task-failure-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.olp-task-failure-grid article {
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  background: var(--hk-panel, #141414);
}

.olp-task-failure-grid b {
  width: 34px;
  height: 34px;
  font-size: 12px;
}

/* ── 折叠容器 ───────────────────────────────────────── */
.olp-overview-fold {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel, #141414);
  overflow: hidden;
}

.olp-overview-fold > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
}

.olp-overview-fold > summary::-webkit-details-marker {
  display: none;
}

.olp-overview-fold > summary strong,
.olp-overview-fold > summary small {
  display: block;
}

.olp-overview-fold > summary strong {
  color: var(--hk-strong, #e5e5e5);
  font-size: 17px;
  line-height: 1.35;
}

.olp-overview-fold > summary small {
  color: var(--hk-muted, #b3b3b3);
  margin-top: 3px;
  line-height: 1.45;
}

.olp-overview-fold > summary b {
  border-radius: 999px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  padding: 5px 9px;
  white-space: nowrap;
}

.olp-overview-fold-body {
  border-top: 1px solid var(--hk-border, #303030);
  background: var(--hk-panel, #141414);
  display: grid;
  gap: 12px;
  padding: 12px;
}

/* ── 判断应用工作台 ─────────────────────────────────── */
.olp-application-section {
  border-color: var(--hk-border-strong, #3a3a3a);
}

.olp-application-workbench {
  display: grid;
  gap: 10px;
}

.olp-application-lead {
  background: var(--hk-panel, #141414);
}

.olp-application-lead strong {
  color: var(--hk-strong, #e5e5e5);
  font-size: 17px;
  line-height: 1.35;
}

.olp-application-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.olp-application-actions a,
.olp-application-step-grid article > a,
.olp-evidence-bridge-grid article > a,
.olp-layer-flow-grid article > a,
.olp-practice-panel article > a,
.olp-decision-steps article > a,
.olp-reading-grid article > a,
.olp-digest-lead > a,
.olp-digest-handoff article > a,
.olp-evidence-group-actions a {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  padding: 7px 11px;
  font-weight: 900;
  cursor: pointer;
}

.olp-application-actions a:hover,
.olp-application-step-grid article > a:hover,
.olp-evidence-bridge-grid article > a:hover,
.olp-layer-flow-grid article > a:hover,
.olp-practice-panel article > a:hover,
.olp-decision-steps article > a:hover,
.olp-reading-grid article > a:hover,
.olp-digest-lead > a:hover,
.olp-digest-handoff article > a:hover,
.olp-evidence-group-actions a:hover {
  border-color: rgba(255, 255, 255, 0.42);
  background: var(--hk-chip-bg);
}

.olp-evidence-bridge-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.olp-evidence-bridge-grid article,
.olp-layer-flow-grid article {
  min-width: 0;
  background: var(--hk-panel, #141414);
}

.olp-evidence-bridge-grid b,
.olp-layer-flow-grid b {
  justify-self: start;
  min-width: 42px;
  height: 30px;
  padding: 0 8px;
}

.olp-evidence-bridge-grid article > a,
.olp-layer-flow-grid article > a {
  margin-top: auto;
}

.olp-layer-flow-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.olp-layer-flow-grid article {
  border-color: rgba(255, 255, 255, 0.18);
  background: var(--hk-chip-bg);
}

.olp-layer-flow-grid b {
  background: var(--hk-chip-bg);
  color: var(--hk-muted, #b3b3b3);
}

.olp-layer-flow-grid span {
  color: var(--hk-muted, #b3b3b3);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.55;
}

.olp-layer-flow-grid p {
  color: var(--hk-muted, #b3b3b3);
}

.olp-application-step-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.olp-application-step-grid article {
  min-width: 0;
  position: relative;
  padding-top: 44px;
  background: var(--hk-panel, #141414);
}

.olp-application-step-grid b {
  position: absolute;
  top: 12px;
  left: 13px;
  min-width: 34px;
  height: 26px;
  display: inline-grid;
  place-items: center;
  border-radius: 8px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  font-size: 12px;
  font-weight: 900;
}

.olp-application-step-grid strong,
.olp-application-question-grid strong,
.olp-application-output-grid strong,
.olp-practice-panel strong {
  color: var(--hk-strong, #e5e5e5);
  font-size: 15px;
  line-height: 1.35;
}

.olp-application-question-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.olp-application-question-grid article {
  border-color: rgba(255, 255, 255, 0.18);
  background: var(--hk-chip-bg);
}

.olp-application-question-grid span,
.olp-practice-panel span {
  color: var(--hk-muted, #b3b3b3);
  font-size: 12px;
  font-weight: 900;
}

.olp-application-output-grid,
.olp-practice-panel {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.olp-application-output-grid article,
.olp-practice-panel article {
  background: var(--hk-panel, #141414);
}

.olp-practice-panel article {
  min-width: 0;
}

/* ── 判断依据台（资料核对） ─────────────────────────── */
.olp-evidence-promotion-section {
  border-color: rgba(255, 255, 255, 0.18);
}

.olp-evidence-promotion {
  display: grid;
  gap: 10px;
}

.olp-evidence-promotion-lead {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  padding: 14px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
}

.olp-evidence-promotion-lead span,
.olp-evidence-group-head span,
.olp-evidence-record span,
.olp-evidence-more summary span {
  color: var(--hk-muted, #b3b3b3);
  font-size: 12px;
  font-weight: 900;
}

.olp-evidence-promotion-lead strong,
.olp-evidence-group-head strong,
.olp-evidence-record strong,
.olp-evidence-more summary strong {
  display: block;
  color: var(--hk-strong, #e5e5e5);
  line-height: 1.35;
}

.olp-evidence-promotion-lead > div:first-child {
  display: grid;
  gap: 6px;
}

.olp-evidence-promotion-stats {
  min-width: 280px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.olp-evidence-promotion-stats div {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel, #141414);
  padding: 10px;
  text-align: center;
}

.olp-evidence-promotion-stats strong {
  display: block;
  color: var(--hk-strong, #e5e5e5);
  font-size: 22px;
  line-height: 1;
}

.olp-evidence-group-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.olp-evidence-group-card {
  min-width: 0;
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel, #141414);
  padding: 12px;
  display: grid;
  align-content: start;
  gap: 10px;
}

.olp-evidence-group-head {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
}

.olp-evidence-group-head b {
  display: inline-grid;
  place-items: center;
  min-height: 32px;
  border-radius: 8px;
  background: var(--hk-chip-bg);
  color: var(--hk-muted, #b3b3b3);
  font-weight: 900;
}

.olp-evidence-group-head span {
  border-radius: 999px;
  background: var(--hk-chip-bg);
  color: var(--hk-muted, #b3b3b3);
  padding: 4px 9px;
  white-space: nowrap;
}

.olp-evidence-record-list,
.olp-evidence-more-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.olp-evidence-record {
  min-width: 0;
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  padding: 10px;
  display: grid;
  align-content: start;
  gap: 5px;
}

.olp-evidence-record.compact {
  background: var(--hk-panel, #141414);
}

.olp-evidence-record p {
  margin: 0;
}

.olp-evidence-group-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.olp-evidence-group-actions a {
  border-color: rgba(255, 255, 255, 0.24);
  background: var(--hk-chip-bg);
  color: var(--hk-muted, #b3b3b3);
}

.olp-evidence-group-actions a:hover {
  border-color: rgba(255, 255, 255, 0.42);
  background: var(--hk-chip-bg);
}

.olp-evidence-more {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel, #141414);
  overflow: hidden;
}

.olp-evidence-more summary {
  list-style: none;
  cursor: pointer;
  min-height: 42px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.olp-evidence-more summary::-webkit-details-marker {
  display: none;
}

.olp-evidence-more summary span {
  text-align: right;
}

.olp-evidence-more-list {
  border-top: 1px solid var(--hk-border, #303030);
  padding: 10px;
}

/* ── 实战判断顺序 / 三层校正 ────────────────────────── */
.olp-decision-steps {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.olp-decision-steps article {
  min-width: 0;
  position: relative;
  display: grid;
  gap: 8px;
  align-content: start;
  padding: 42px 13px 13px;
  background: var(--hk-panel, #141414);
}

.olp-decision-steps b {
  position: absolute;
  top: 12px;
  left: 13px;
  min-width: 34px;
  height: 26px;
  font-size: 12px;
}

.olp-correction-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.olp-correction-grid article {
  min-width: 0;
  padding: 13px;
  background: var(--hk-panel, #141414);
}

.olp-correction-grid dl {
  display: grid;
  gap: 8px;
  margin: 10px 0 0;
}

.olp-correction-grid dl div {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 8px;
  border-top: 1px solid var(--hk-border, #303030);
  padding-top: 8px;
}

.olp-correction-grid dt {
  color: var(--hk-faint, #7a7a7a);
  font-size: 12px;
  font-weight: 900;
}

.olp-correction-grid dd {
  margin: 0;
  color: var(--hk-muted, #b3b3b3);
  line-height: 1.6;
}

.olp-boundary-grid article {
  border-color: rgba(255, 255, 255, 0.14);
  background: var(--hk-chip-bg);
}

.olp-boundary-grid article p {
  color: var(--hk-muted, #b3b3b3);
}

.olp-reading-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.olp-reading-grid article {
  min-width: 0;
  display: grid;
  gap: 8px;
  align-content: start;
  padding: 13px;
  background: var(--hk-panel, #141414);
}

/* ── 资料核对预览 / digest ──────────────────────────── */
.olp-digest-preview {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.3fr);
  gap: 10px;
}

.olp-digest-lead,
.olp-digest-preview-grid article,
.olp-digest-source-grid article,
.olp-digest-path article,
.olp-digest-detail-card,
.olp-digest-handoff article {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
}

.olp-digest-lead {
  padding: 14px;
  display: grid;
  align-content: start;
  gap: 8px;
}

.olp-digest-lead span,
.olp-digest-preview-grid span,
.olp-digest-source-grid span,
.olp-digest-detail-head span,
.olp-digest-record span,
.olp-digest-stats span {
  color: var(--hk-muted, #b3b3b3);
  font-size: 12px;
  font-weight: 900;
}

.olp-digest-lead strong,
.olp-digest-preview-grid strong,
.olp-digest-source-grid strong,
.olp-digest-path strong,
.olp-digest-detail-head strong,
.olp-digest-record strong,
.olp-digest-handoff strong {
  display: block;
  color: var(--hk-strong, #e5e5e5);
  line-height: 1.35;
}

.olp-digest-lead p,
.olp-digest-preview-grid p,
.olp-digest-path p,
.olp-digest-detail-head p,
.olp-digest-record p,
.olp-digest-handoff p {
  margin: 0;
  color: var(--hk-muted, #b3b3b3);
  line-height: 1.65;
}

.olp-digest-preview-grid,
.olp-digest-source-grid,
.olp-digest-record-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.olp-digest-preview-grid article {
  min-width: 0;
  padding: 12px;
  display: grid;
  align-content: start;
  gap: 7px;
}

.olp-digest-preview-grid b,
.olp-digest-path b,
.olp-digest-detail-head b {
  display: inline-grid;
  place-items: center;
  border-radius: 8px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  font-weight: 900;
}

.olp-digest-preview-grid b {
  width: 36px;
  height: 28px;
  font-size: 12px;
}

.olp-digest-stats {
  min-width: 410px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.olp-digest-stats div {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  padding: 10px;
  text-align: center;
}

.olp-digest-stats strong {
  display: block;
  color: var(--hk-strong, #e5e5e5);
  font-size: 22px;
  line-height: 1;
}

.olp-digest-source-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.olp-digest-source-grid article {
  padding: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.olp-digest-path {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.olp-digest-path article {
  min-width: 0;
  padding: 42px 12px 12px;
  position: relative;
  display: grid;
  align-content: start;
  gap: 7px;
}

.olp-digest-path b {
  position: absolute;
  top: 12px;
  left: 12px;
  width: 34px;
  height: 26px;
  font-size: 12px;
}

.olp-digest-detail-list {
  display: grid;
  gap: 10px;
}

.olp-digest-detail-card {
  padding: 12px;
  display: grid;
  gap: 10px;
}

.olp-digest-detail-head {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
}

.olp-digest-detail-head b {
  min-height: 32px;
  font-size: 13px;
}

.olp-digest-detail-head span {
  border-radius: 999px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  padding: 4px 9px;
  white-space: nowrap;
}

.olp-digest-record {
  min-width: 0;
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel, #141414);
  padding: 10px;
  display: grid;
  align-content: start;
  gap: 5px;
}

.olp-digest-handoff {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.olp-digest-handoff article {
  min-width: 0;
  padding: 12px;
  display: grid;
  align-content: start;
  gap: 8px;
}

/* ── chip / 机制卡 / 问题条 ─────────────────────────── */
.olp-chip-line,
.olp-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.olp-chip {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  padding: 4px 10px;
  font-size: 13px;
  font-weight: 900;
}

.olp-chip.primary {
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  border-color: rgba(255, 255, 255, 0.18);
}

.olp-chip.soft {
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  border-color: var(--hk-border, #303030);
}

.olp-chip.evidence {
  background: var(--hk-chip-bg);
  color: var(--hk-muted, #b3b3b3);
  border-color: rgba(255, 255, 255, 0.22);
}

.olp-mechanism-grid article,
.olp-mechanism-grid a,
.olp-card-grid article[data-olp-target],
.olp-card-grid a,
.olp-sampling-grid article,
.olp-sampling-grid a {
  cursor: pointer;
}

.olp-mechanism-grid a:hover,
.olp-mechanism-grid article:hover,
.olp-card-grid a:hover,
.olp-card-grid article:hover,
.olp-sampling-grid a:hover,
.olp-sampling-grid article:hover,
.olp-nav-item:hover {
  border-color: rgba(255, 255, 255, 0.32);
}

.olp-question {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  color: var(--hk-strong, #e5e5e5);
  padding: 14px;
  font-size: 18px;
  font-weight: 900;
}

/* ── 主次承担角色卡 ─────────────────────────────────── */
.olp-role-grid {
  display: grid;
  gap: 10px;
}

.olp-role-card {
  padding: 12px;
  display: grid;
  gap: 10px;
}

.olp-role-card > div {
  display: flex;
  align-items: center;
  gap: 8px;
}

.olp-role-card b {
  width: 36px;
  height: 30px;
}

.olp-role-card dl {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 8px 10px;
  margin: 0;
}

.olp-role-card dt {
  color: var(--hk-muted, #b3b3b3);
  font-weight: 800;
}

.olp-role-card dd {
  margin: 0;
}

/* ── 部位主次承担 ───────────────────────────────────── */
.olp-role-logic {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) repeat(2, minmax(0, 0.82fr));
  gap: 10px;
  margin-bottom: 12px;
}

.olp-role-logic > div {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  padding: 12px;
  display: grid;
  align-content: start;
  gap: 5px;
}

.olp-role-logic span,
.olp-part-role-map-card em,
.olp-part-role-more span {
  color: var(--hk-muted, #b3b3b3);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.olp-role-logic strong {
  color: var(--hk-strong, #e5e5e5);
  line-height: 1.55;
}

.olp-role-logic p {
  margin: 0;
  color: var(--hk-muted, #b3b3b3);
  line-height: 1.65;
}

.olp-part-role-map {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.olp-part-role-map-card {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel, #141414);
  padding: 10px;
  display: grid;
  align-content: start;
  gap: 8px;
  cursor: pointer;
  color: inherit;
}

.olp-part-role-map-card.primary {
  border-color: rgba(255, 255, 255, 0.22);
  background: var(--hk-panel-secondary, #242424);
}

.olp-part-role-map-card.support {
  border-color: var(--hk-border, #303030);
  background: var(--hk-panel, #141414);
}

.olp-part-role-map-card:hover {
  border-color: rgba(255, 255, 255, 0.32);
}

.olp-part-role-map-card > div {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
}

.olp-part-role-map-card b,
.olp-part-role-head b {
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  font-weight: 900;
}

.olp-part-role-map-card b {
  height: 28px;
}

.olp-part-role-map-card span {
  border-radius: 999px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  padding: 3px 7px;
  font-size: 12px;
  font-weight: 900;
}

.olp-part-role-map-card.support span {
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
}

.olp-part-role-map-card p {
  margin: 0;
  display: grid;
  gap: 5px;
}

.olp-role-mini-chip {
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: 900;
}

.olp-role-mini-chip.primary {
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
}

.olp-role-mini-chip.soft {
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
}

.olp-role-detail-group {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel, #141414);
  overflow: hidden;
}

.olp-role-detail-group + .olp-role-detail-group {
  margin-top: 10px;
}

.olp-role-detail-group summary {
  list-style: none;
  cursor: pointer;
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
}

.olp-role-detail-group summary::-webkit-details-marker {
  display: none;
}

.olp-role-detail-group summary strong {
  color: var(--hk-strong, #e5e5e5);
}

.olp-role-detail-group summary span {
  border-radius: 999px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  padding: 3px 8px;
  font-size: 12px;
  font-weight: 900;
}

.olp-part-role-list {
  display: grid;
  gap: 8px;
  padding: 0 10px 10px;
}

.olp-part-role-card {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel, #141414);
  padding: 11px;
  display: grid;
  gap: 8px;
  cursor: pointer;
  color: inherit;
}

.olp-part-role-card:hover {
  border-color: rgba(255, 255, 255, 0.32);
}

.olp-part-role-card.primary {
  border-left: 4px solid #e5e5e5;
}

.olp-part-role-card.support {
  border-left: 4px solid #9aa7b7;
}

.olp-part-role-head {
  display: grid;
  grid-template-columns: 42px 38px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}

.olp-part-role-head span {
  border-radius: 999px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 900;
  text-align: center;
}

.olp-part-role-card.support .olp-part-role-head span {
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
}

.olp-part-role-head b {
  height: 30px;
}

.olp-part-role-head strong {
  color: var(--hk-strong, #e5e5e5);
}

.olp-part-role-head em {
  color: var(--hk-muted, #b3b3b3);
  font-style: normal;
  font-weight: 800;
  white-space: nowrap;
}

.olp-part-role-card p {
  margin: 0;
  color: var(--hk-muted, #b3b3b3);
  line-height: 1.7;
}

.olp-part-role-more {
  border-top: 1px solid var(--hk-border, #303030);
  padding-top: 7px;
}

.olp-part-role-more summary {
  cursor: pointer;
  color: var(--hk-strong, #e5e5e5);
  font-size: 12px;
  font-weight: 900;
}

.olp-part-role-more div {
  display: grid;
  gap: 5px;
  margin-top: 7px;
}

/* ── 部位执行 / 匹配分 ──────────────────────────────── */
.olp-brief-grid strong {
  font-weight: 800;
  line-height: 1.55;
  color: var(--hk-strong, #e5e5e5);
}

.olp-brief-grid span {
  color: var(--hk-muted, #b3b3b3);
  font-size: 12px;
  font-weight: 900;
}

.olp-execution-list {
  display: grid;
  gap: 8px;
}

.olp-execution-list article {
  display: grid;
  grid-template-columns: 42px 120px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 10px;
}

.olp-execution-list b {
  width: 34px;
  height: 28px;
}

.olp-score-row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.olp-score-row div {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  padding: 10px;
  text-align: center;
}

.olp-score-row b {
  display: block;
  color: var(--hk-strong, #e5e5e5);
  font-size: 24px;
  line-height: 1;
}

.olp-score-row span {
  display: block;
  margin-top: 6px;
  color: var(--hk-muted, #b3b3b3);
  font-weight: 800;
}

/* ── 矩阵 / 匹配表 ──────────────────────────────────── */
.olp-matrix,
.olp-score-table {
  display: grid;
  grid-template-columns: 160px repeat(5, minmax(96px, 1fr));
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  overflow: auto;
}

.olp-matrix > div,
.olp-score-table > div {
  min-height: 46px;
  border-right: 1px solid var(--hk-border, #303030);
  border-bottom: 1px solid var(--hk-border, #303030);
  background: var(--hk-panel, #141414);
  display: grid;
  place-items: center;
  padding: 8px;
  text-align: center;
  font-weight: 900;
}

.olp-matrix .head,
.olp-score-table .head {
  background: var(--hk-panel-secondary, #242424);
  color: var(--hk-muted, #b3b3b3);
}

.olp-matrix .row-title,
.olp-score-table .row-title {
  justify-items: start;
  text-align: left;
  color: var(--hk-strong, #e5e5e5);
}

.olp-matrix .on {
  color: var(--hk-strong, #e5e5e5);
  background: var(--hk-chip-bg);
  font-size: 18px;
}

.olp-score-table .score-3 {
  color: var(--hk-strong, #e5e5e5);
  background: var(--hk-chip-bg);
}

.olp-score-table .score-2 {
  color: var(--hk-strong, #e5e5e5);
  background: var(--hk-chip-bg);
}

.olp-score-table .score-1 {
  color: var(--hk-muted, #b3b3b3);
  background: var(--hk-chip-bg);
}

.olp-note {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  padding: 12px;
}

.olp-note strong {
  color: var(--hk-strong, #e5e5e5);
}

.olp-boundary-list {
  margin: 0;
  padding-left: 20px;
  display: grid;
  gap: 8px;
  color: var(--hk-muted, #b3b3b3);
}

.olp-boundary-list li {
  line-height: 1.65;
}

/* ── 数据库追溯 ─────────────────────────────────────── */
.olp-trace {
  overflow: hidden;
}

.olp-trace summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
}

.olp-trace summary::-webkit-details-marker {
  display: none;
}

.olp-trace summary strong {
  color: var(--hk-strong, #e5e5e5);
}

.olp-trace summary span {
  border-radius: 999px;
  background: var(--hk-chip-bg);
  color: var(--hk-strong, #e5e5e5);
  padding: 4px 9px;
  font-size: 12px;
  font-weight: 900;
}

.olp-trace-list {
  border-top: 1px solid var(--hk-border, #303030);
  padding: 10px;
  display: grid;
  gap: 8px;
}

.olp-trace-list article {
  border: 1px solid var(--hk-border, #303030);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  padding: 10px;
  display: grid;
  gap: 4px;
}

.olp-trace-list strong {
  color: var(--hk-strong, #e5e5e5);
}

.olp-trace-list article span {
  color: var(--hk-muted, #b3b3b3);
}

/* ── 延迟直出壳 / 空态 ──────────────────────────────── */
.olp-deferred-shell {
  display: grid;
  gap: 14px;
}

.olp-deferred-placeholder,
.olp-trace-placeholder {
  border: 1px dashed var(--hk-border-strong, #3a3a3a);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  color: var(--hk-muted, #b3b3b3);
  font-size: 13px;
  line-height: 1.5;
  padding: 13px 14px;
}

.olp-empty {
  border: 1px dashed var(--hk-border-strong, #3a3a3a);
  border-radius: 8px;
  background: var(--hk-panel-secondary, #242424);
  color: var(--hk-muted, #b3b3b3);
  padding: 14px;
}

/* ── 响应式 ─────────────────────────────────────────── */
@media (max-width: 1180px) {
  .olp-workspace {
    grid-template-columns: 240px minmax(0, 1fr);
  }

  .olp-source-map,
  .olp-card-grid,
  .olp-formula-grid,
  .olp-brief-grid,
  .olp-task-learning-grid,
  .olp-task-failure-grid,
  .olp-application-step-grid,
  .olp-application-question-grid,
  .olp-application-output-grid,
  .olp-evidence-bridge-grid,
  .olp-layer-flow-grid,
  .olp-model-sequence,
  .olp-practice-panel,
  .olp-role-logic,
  .olp-part-role-map,
  .olp-mechanism-grid,
  .olp-sampling-grid,
  .olp-rule-notes,
  .olp-decision-steps,
  .olp-correction-grid,
  .olp-boundary-grid,
  .olp-reading-grid,
  .olp-digest-preview,
  .olp-digest-preview-grid,
  .olp-digest-source-grid,
  .olp-digest-path,
  .olp-digest-record-list,
  .olp-digest-handoff,
  .olp-evidence-promotion-lead,
  .olp-evidence-group-grid,
  .olp-evidence-record-list,
  .olp-evidence-more-list {
    grid-template-columns: 1fr;
  }

  .olp-workbench-head {
    grid-template-columns: 1fr;
  }

  .olp-workbench-metrics,
  .olp-digest-stats,
  .olp-evidence-promotion-stats {
    min-width: 0;
    max-width: 360px;
  }
}

@media (max-width: 760px) {
  .olp-workspace {
    grid-template-columns: 1fr;
  }

  .olp-browser {
    position: static;
    max-height: none;
  }

  .olp-nav-scroll {
    max-height: 420px;
  }

  .olp-detail-view {
    padding: 0;
  }

  .olp-workbench-head h1 {
    font-size: 24px;
  }

  .olp-execution-list article {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .olp-execution-list p {
    grid-column: 1 / -1;
  }

  .olp-role-card dl {
    grid-template-columns: 1fr;
  }

  .olp-part-role-head {
    grid-template-columns: 42px 38px minmax(0, 1fr);
  }

  .olp-part-role-head em {
    grid-column: 1 / -1;
    white-space: normal;
  }

  .olp-digest-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .olp-digest-source-grid article,
  .olp-digest-detail-head,
  .olp-evidence-group-head {
    grid-template-columns: 1fr;
  }

  .olp-digest-source-grid article {
    display: grid;
    justify-items: start;
  }

  .olp-evidence-more summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .olp-evidence-more summary span {
    text-align: left;
  }

  .olp-score-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .olp-workbench-metrics,
  .olp-digest-stats,
  .olp-evidence-promotion-stats,
  .olp-score-row {
    grid-template-columns: 1fr;
  }

  .olp-matrix,
  .olp-score-table {
    grid-template-columns: 120px repeat(5, 96px);
  }
}
