/* ============================================================
   护栏事件可视化（L1/L2/L3 三层护栏 / 确定性优先 的界面语言）
   - 执行链路（history.js）中的护栏事件徽章与节点语义边框
   - 编排器（orchestrator.js）中的契约徽章 / Verification 节点
   ============================================================ */

/* ---- 执行链路：护栏事件徽章 ---- */
.trace-guardrail {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-left: 6px;
  padding: 1px 7px;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.5;
  border-radius: 10px;
  white-space: nowrap;
  vertical-align: middle;
  border: 1px solid transparent;
}

.g-contract     { background: rgba(239,68,68,.14);  color: #f87171; border-color: rgba(239,68,68,.4); }
.g-verification { background: rgba(245,158,11,.14); color: #fbbf24; border-color: rgba(245,158,11,.4); }
.g-tenant       { background: rgba(168,85,247,.14); color: #c084fc; border-color: rgba(168,85,247,.4); }
.g-approval     { background: rgba(59,130,246,.14); color: #60a5fa; border-color: rgba(59,130,246,.4); }
.g-constitution { background: rgba(20,184,166,.14); color: #2dd4bf; border-color: rgba(20,184,166,.4); }

/* ---- 执行链路：护栏节点语义边框 ---- */
.trace-node.trace-guardrail-node {
  border-left-width: 4px;
}
.trace-node.g-contract-node     { border-left-color: #ef4444; }
.trace-node.g-verification-node { border-left-color: #f59e0b; }
.trace-node.g-tenant-node       { border-left-color: #a855f7; }
.trace-node.g-approval-node     { border-left-color: #3b82f6; }
.trace-node.g-constitution-node { border-left-color: #14b8a6; }

/* 统计区护栏计数 */
.guardrail-stat {
  color: #f59e0b;
  font-weight: 600;
}

/* 错误摘要栏里的护栏过滤按钮：用类别色描边 */
.gw-filter-btn.g-contract     { border-color: rgba(239,68,68,.5);  color: #f87171; }
.gw-filter-btn.g-verification { border-color: rgba(245,158,11,.5); color: #fbbf24; }
.gw-filter-btn.g-tenant       { border-color: rgba(168,85,247,.5); color: #c084fc; }
.gw-filter-btn.g-approval     { border-color: rgba(59,130,246,.5); color: #60a5fa; }
.gw-filter-btn.g-constitution { border-color: rgba(20,184,166,.5); color: #2dd4bf; }

/* ---- 编排器：契约徽章 ---- */
.orch-node-type-badge.contract {
  background: rgba(239,68,68,.14);
  color: #f87171;
  border: 1px solid rgba(239,68,68,.4);
}
.orch-node-type-badge.verify {
  background: rgba(245,158,11,.14);
  color: #fbbf24;
  border: 1px solid rgba(245,158,11,.4);
}

/* 编排器执行结果时间线里的护栏节点 */
.timeline-node.timeline-guardrail {
  border-left: 3px solid #ef4444;
  padding-left: 8px;
}
