/* ============================================================
 * L-ONE 经典 UI 增量样式（挂在 index.html </body> 前，主 CSS 之后）
 * 1) 审批流程图查看器
 * 2) 全局 el-table 表头/表体列对齐（Element Plus gutter 漂移）
 * ============================================================ */

/* ---------- 流程图 ---------- */
.process-viewer {
  position: relative !important;
  height: 420px !important;
  min-height: 420px !important;
  max-height: 520px !important;
  border: 0 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: #f5f7fb !important;
  background-image: none !important;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.06) !important;
}

.process-viewer::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 60% 50% at 50% 40%, rgba(59, 130, 246, 0.07), transparent 70%);
  z-index: 0;
}

.process-viewer > div,
.process-viewer .djs-container,
.process-viewer .djs-container svg,
.process-viewer .djs-palette,
.process-viewer [class*="bjs"] {
  background: transparent !important;
  background-image: none !important;
}

.process-viewer .djs-container {
  position: relative !important;
  z-index: 1 !important;
}

.process-viewer .djs-shape .djs-visual > rect {
  stroke: #cbd5e1 !important;
  stroke-width: 1.75px !important;
  fill: #ffffff !important;
  fill-opacity: 1 !important;
  rx: 10px !important;
  ry: 10px !important;
}

.process-viewer .djs-shape .djs-visual > circle {
  stroke: #94a3b8 !important;
  stroke-width: 2.5px !important;
  fill: #ffffff !important;
  fill-opacity: 1 !important;
}

.process-viewer .djs-shape .djs-visual > path {
  stroke: #94a3b8 !important;
}

.process-viewer .djs-shape .djs-visual text {
  fill: #0f172a !important;
  font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
}

.process-viewer .djs-connection .djs-visual > path {
  stroke: #94a3b8 !important;
  stroke-width: 2.25px !important;
  stroke-linecap: round !important;
}

.process-viewer .djs-element {
  filter: drop-shadow(0 4px 10px rgba(15, 23, 42, 0.06));
}

.process-viewer .success.djs-shape .djs-visual > rect,
.process-viewer .success.djs-shape .djs-visual > circle {
  stroke: #059669 !important;
  fill: #ecfdf5 !important;
}
.process-viewer .success.djs-connection .djs-visual > path {
  stroke: #059669 !important;
  stroke-width: 2.5px !important;
}

.process-viewer .primary.djs-shape .djs-visual > rect,
.process-viewer .primary.djs-shape .djs-visual > circle {
  stroke: #2563eb !important;
  fill: #eff6ff !important;
  stroke-width: 2.5px !important;
}
.process-viewer .primary.djs-shape .djs-visual text {
  fill: #1e3a8a !important;
}

.process-viewer .danger.djs-shape .djs-visual > rect,
.process-viewer .danger.djs-shape .djs-visual > circle {
  stroke: #dc2626 !important;
  fill: #fef2f2 !important;
}

.process-viewer .cancel.djs-shape .djs-visual > rect,
.process-viewer .cancel.djs-shape .djs-visual > circle {
  stroke: #94a3b8 !important;
  fill: #f8fafc !important;
}

.process-viewer .el-button-group {
  margin: 10px 12px 0 0 !important;
}
.process-viewer .el-button-group .el-button {
  border-color: #e2e8f0 !important;
  background: rgba(255, 255, 255, 0.92) !important;
  color: #475569 !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04) !important;
}

.process-viewer .djs-tooltip-container,
.process-viewer .djs-overlay-container,
.process-viewer .djs-palette {
  display: none !important;
}

/* ---------- 全局：el-table 表头/表体列对齐 ---------- */
/*
 * Element Plus 表头、表体是两张表；表头常多一列 gutter（滚动条占位），
 * border 表会出现「标题列线」与「内容列线」整体错位（流转记录等）。
 * 全站统一：去掉 gutter、强制同宽、固定布局。
 */
.el-table,
.el-table .el-table__inner-wrapper {
  width: 100% !important;
}

.el-table .el-table__header-wrapper,
.el-table .el-table__body-wrapper,
.el-table .el-table__footer-wrapper {
  width: 100% !important;
  overflow-x: auto !important;
}

/* 表头不要单独留滚动条空位，避免比表体宽一截 */
.el-table .el-table__header-wrapper {
  overflow-y: hidden !important;
}

.el-table .el-table__header,
.el-table .el-table__body,
.el-table .el-table__footer {
  width: 100% !important;
  table-layout: fixed !important;
}

/* 隐藏 gutter 不够：display:none 的 col 在部分浏览器仍占列；由 JS 直接删节点。
 * CSS 再兜底一次，避免删除前闪一下错位。 */
.el-table th.gutter,
.el-table td.gutter,
.el-table colgroup col[name="gutter"],
.el-table .el-table__cell.gutter {
  display: none !important;
  width: 0 !important;
  max-width: 0 !important;
  min-width: 0 !important;
  padding: 0 !important;
  border: none !important;
  overflow: hidden !important;
}

/* 流转记录：禁止内容把固定列撑开 */
.bpm-flow-task-table.el-table .el-table__cell {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* 少行时不预留纵向滚动条，从源头少生成 gutter */
.el-table .el-table__body-wrapper.is-scrolling-none,
.el-table .el-table__body-wrapper.is-scrolling-left,
.el-table .el-table__body-wrapper.is-scrolling-right {
  overflow-y: hidden !important;
}

.el-table .el-table__cell {
  box-sizing: border-box !important;
}

.el-table .el-table__fixed,
.el-table .el-table__fixed-right {
  height: auto !important;
}

/* 流转记录等 border 表再加一层兜底 */
.el-table.el-table--border .el-table__header,
.el-table.el-table--border .el-table__body,
.bpm-flow-task-table.el-table .el-table__header,
.bpm-flow-task-table.el-table .el-table__body {
  width: 100% !important;
  table-layout: fixed !important;
}
