:root {
  --el-color-primary: #0b5eff;
  --el-color-primary-light-3: #4d8aff;
  --el-color-primary-light-5: #85adff;
  --el-color-primary-light-7: #b8d1ff;
  --el-color-primary-light-8: #d1e3ff;
  --el-color-primary-light-9: #e8f1ff;
  --el-color-primary-dark-2: #094bcc;
  --el-color-success: #00c23f;
  --el-color-success-light-9: #e6f9ec;
  --el-color-warning: #ff710c;
  --el-color-warning-light-9: #fff3e8;
  --el-color-danger: #fa4949;
  --el-color-danger-light-9: #feeaea;
  --el-color-info: #4d5e80;
  --el-color-info-light-9: #eceef2;
  --el-bg-color: #fff;
  --el-bg-color-page: #f2f3f5;
  --custom-page-bg: #eff1f8;
  --el-text-color-primary: #182946;
  --el-text-color-regular: #525f74;
  --el-text-color-secondary: #808a99;
  --el-text-color-placeholder: #a3a9b5;
  --el-border-color: #dcdfe6;
  --el-border-color-light: #e4e7ed;
  --el-border-color-lighter: #ebeef5;
  --el-fill-color: #f0f2f5;
  --el-fill-color-light: #f5f7fa;
  --el-fill-color-blank: #fff;
  --el-color-icon: #7a8599;
  --el-border-radius-base: 8px;
  --el-border-radius-small: 4px;
  --el-border-radius-round: 20px;
  --custom-header-height: 66px;

  /* 业务界面各区块高度口径（左侧宽度 --sidebar-w / 数据行 --row-h 由 Vue 内联下发） */
  --topbar-h: 50px;      /* 顶部导航栏 */
  --pagehead-h: 45px;    /* 页面标题行 */
  --viewtab-h: 35px;     /* 视图 tab 行 */
  --toolbar-h: 40px;     /* 搜索筛选工具条 */
  --header-h: 35px;      /* 表头行（固定，不随数据行变） */
  --nav-font: 14px;      /* 左侧导航字体 */
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: 'AlibabaPuHuiTi-3', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', Arial, sans-serif; color: var(--el-text-color-primary); background: var(--custom-page-bg); }
body { font-size: 13px; }
button, input { font-family: inherit; }
[v-cloak] { display: none; }
.flex-1 { flex: 1; }

/* ---------- 顶部导航 ---------- */
.top-nav { height: var(--custom-header-height); background: #fff; border-bottom: 1px solid var(--el-border-color-lighter); display: flex; align-items: center; padding: 0 28px; gap: 18px; box-shadow: 0 2px 10px rgba(24,41,70,.04); }
.brand-mark { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(135deg,#0b5eff,#6a3de8); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; letter-spacing:-1px; }
.crumb { display:flex; align-items:center; gap:10px; color: var(--el-text-color-secondary); font-size:14px; }
.crumb strong { color:var(--el-text-color-primary); font-weight:600; }
.crumb i { color:#b2bac8; }
.top-actions { margin-left:auto; display:flex; align-items:center; gap:18px; color:var(--el-text-color-secondary); font-size:18px; }
.avatar { width:28px; height:28px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-size:12px; font-weight:600; }
.avatar-indigo { background:linear-gradient(135deg,#4454c9,#8193ff); }
.avatar-sm { width:22px; height:22px; font-size:10px; flex:none; }

/* ---------- 评审页三段式 ---------- */
.review-page { width:100%; padding:20px; }
.brief-card, .acceptance-card { background:#fff; border:1px solid var(--el-border-color-lighter); border-radius:12px; padding:20px 24px; box-shadow:0 4px 18px rgba(24,41,70,.04); }
.brief-card { margin-bottom:16px; display:flex; flex-wrap:wrap; align-items:flex-start; gap:22px; }
.brief-title { flex:none; }
.eyebrow { color:var(--el-color-primary); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.brief-title h1, .brief-title h2 { margin:6px 0 0; font-size:20px; line-height:1.35; font-weight:600; }
.brief-body { margin:2px 0 0; flex:1; min-width:360px; }
.brief-body p { margin:0 0 8px; color:var(--el-text-color-regular); line-height:1.75; max-width:880px; }
.brief-body p:last-child { margin-bottom:0; }
.brief-body b { color:var(--el-text-color-primary); }
.brief-chips { display:flex; gap:7px; margin-left:auto; white-space:nowrap; padding-top:4px; }

.demo-layout { position:relative; display:flex; gap:16px; align-items:stretch; }
.req-link-layer { position:absolute; left:0; top:0; pointer-events:none; z-index:40; overflow:visible; }
.req-link-path { fill:none; stroke:var(--el-color-primary); stroke-width:1.5; stroke-dasharray:5 4; opacity:.75; }
.req-link-dot { fill:var(--el-color-primary); }
.req-anchor { display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:16px; padding:0 4px; margin-left:6px; border-radius:4px; background:var(--el-color-primary); color:#fff; font-size:10px; font-weight:700; font-style:normal; vertical-align:middle; flex:none; }
.mapping-where { display:inline-block; margin-top:6px; color:var(--el-text-color-placeholder); font-size:11px; }
.business-canvas { position:relative; min-width:0; flex:1; background:#f8f9fc; border:1px solid var(--el-border-color-lighter); border-radius:12px; padding:22px; overflow:hidden; }
.canvas-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.canvas-kicker { color:var(--el-text-color-secondary); font-size:12px; }
.canvas-head h2 { margin:5px 0 0; font-size:18px; }
.canvas-tools { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-left:auto; }
.canvas-tools .el-input-number--mini { width:96px; }
.tool-label { color:var(--el-text-color-secondary); font-size:12px; }
.canvas-metrics { margin-top:12px; display:flex; align-items:center; gap:18px; flex-wrap:wrap; color:var(--el-text-color-secondary); font-size:12px; }
.canvas-metrics b { color:var(--el-color-primary); }
.canvas-metrics em { font-style:normal; color:var(--el-text-color-placeholder); }
.anchor-target { scroll-margin-top:20px; }
.anchor-flash { box-shadow:0 0 0 2px var(--el-color-primary-light-5); transition:box-shadow .2s ease; }

/* ---------- 业务界面：BPM 工作事项列表 ---------- */
.bpm-app { position:relative; margin-top:16px; background:var(--custom-page-bg); border:1px solid var(--el-border-color-lighter); border-radius:10px; overflow:hidden; }
.bpm-topbar { height:var(--topbar-h); background:#fff; border-bottom:1px solid var(--el-border-color-lighter); display:flex; align-items:center; gap:12px; padding:0 14px; }
.bpm-logo { width:26px; height:26px; border-radius:8px; background:linear-gradient(135deg,var(--el-color-primary-light-3),var(--el-color-primary)); color:#fff; font-weight:700; display:inline-flex; align-items:center; justify-content:center; font-size:12px; }
.bpm-crumb { display:inline-flex; align-items:center; gap:6px; color:var(--el-text-color-secondary); font-size:var(--crumb-fs); }
.bpm-crumb .sep { color:#b2bac8; }
.bpm-crumb b { color:var(--el-text-color-primary); }
.bpm-crumb > i:first-child { color:var(--el-color-success); }
.bpm-top-right { margin-left:auto; display:inline-flex; align-items:center; gap:14px; }
.bpm-top-search { width:180px; }
.bpm-bell { position:relative; color:var(--el-text-color-regular); font-size:16px; }
.notification-badge { position:absolute; top:-6px; right:-8px; background-color:var(--el-color-danger); color:#fff; font-size:11px; font-weight:600; font-style:normal; padding:0 5px; border-radius:10px; min-width:18px; height:18px; line-height:18px; text-align:center; }

.bpm-body { display:flex; gap:12px; padding:12px; align-items:stretch; }

/* === 左侧区域：宽度由 --sidebar-w 控制（本次 260px → 180px）=== */
.bpm-sidebar { width:var(--sidebar-w); flex:0 0 var(--sidebar-w); background:#fff; border-radius:var(--el-border-radius-base); padding:10px 8px; display:flex; flex-direction:column; gap:12px; position:relative; }   /* 注意：宽度取自 --sidebar-w，此处不加 transition —— Chrome 下对 var() 驱动的 width 做过渡会把计算值卡在旧值 */
.space-switch { height:34px; flex:0 0 34px; border:1px solid var(--el-border-color-light); border-radius:var(--el-border-radius-base); background:var(--el-fill-color-light); display:flex; align-items:center; gap:6px; padding:0 8px; font-weight:600; font-size:var(--nav-font); }
.space-ico { width:20px; height:20px; flex:none; border-radius:6px; background:var(--el-color-success-light-9); color:var(--el-color-success); display:inline-flex; align-items:center; justify-content:center; font-size:11px; }
/* 收窄后长名称统一省略号截断（R2） */
.space-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.space-switch > .el-icon-arrow-down { color:var(--el-text-color-placeholder); font-size:12px; }

.nav-group { display:flex; flex-direction:column; gap:2px; }
.nav-group-title { font-size:12px; color:var(--el-text-color-secondary); padding:0 6px 5px; margin-bottom:3px; border-bottom:1px solid var(--el-border-color-lighter); }
.nav-item { height:34px; flex:0 0 34px; border-radius:var(--el-border-radius-base); display:flex; align-items:center; gap:7px; padding:0 8px; color:var(--el-text-color-regular); cursor:pointer; min-width:0; font-size:var(--nav-font); }
.nav-ico { width:20px; height:20px; flex:none; border-radius:6px; color:#fff; font-size:11px; display:inline-flex; align-items:center; justify-content:center; }
.nav-text { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nav-item:hover { background:var(--el-fill-color-light); }
.nav-item.active { background:#f5a524; color:#fff; font-weight:600; }
.nav-item.active .nav-ico { background:rgba(255,255,255,.28) !important; }
/* 收起按钮：与空间选择器同一水平线（容器 padding-top 10px + 选择器高 34px 的中线），挂在右侧边缘外 */
.sidebar-collapse { position:absolute; right:-9px; top:27px; transform:translateY(-50%); z-index:2;
  width:18px; height:34px; background:#fff; border:1px solid var(--el-border-color-light); border-left:none;
  border-radius:0 8px 8px 0; box-shadow:2px 0 6px rgba(24,41,70,.06);
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--el-text-color-placeholder); font-size:12px; cursor:pointer; }
.sidebar-collapse:hover { color:var(--el-color-primary); border-color:var(--el-color-primary-light-7); }

/* === 右侧内容区：吸收左侧释放的宽度（R5） === */
.bpm-content { flex:1; min-width:0; background:#fff; border-radius:var(--el-border-radius-base); display:flex; flex-direction:column; overflow:hidden; }
.content-head { height:var(--pagehead-h); display:flex; align-items:center; gap:8px; padding:0 14px; }
.content-ico { width:24px; height:24px; border-radius:var(--el-border-radius-base); background:var(--el-color-warning-light-9); color:var(--el-color-warning); display:inline-flex; align-items:center; justify-content:center; }
.content-head h3 { margin:0; font-size:var(--title-fs); }
.content-tabs { height:var(--viewtab-h); display:flex; align-items:flex-end; gap:0; padding:0 14px; }
.content-tab { height:var(--viewtab-h); line-height:var(--viewtab-h); padding:0 16px; font-size:var(--tab-fs); cursor:pointer; white-space:nowrap; }
.content-toolbar { height:var(--toolbar-h); display:flex; align-items:center; gap:6px; padding:0 14px; flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; }
.content-toolbar > * { flex:none; }
.content-toolbar .flex-1 { flex:1 1 auto; min-width:8px; }
.tb-search { width:190px; }
.tb-chip { color:var(--el-text-color-regular) !important; padding:6px 8px !important; }
.tb-chip.on { color:var(--el-color-primary) !important; background:var(--el-color-primary-light-9); border-radius:var(--el-border-radius-base); }
.filter-badge { display:inline-flex; align-items:center; justify-content:center; background-color:var(--el-color-primary); color:#fff; font-size:11px; font-style:normal; width:18px; height:18px; border-radius:50%; margin-left:4px; vertical-align:middle; }
.content-table { padding:0 14px; }
.content-pager { padding:8px 14px; border-top:1px solid var(--el-border-color-lighter); display:flex; justify-content:flex-end; }

/* === 列表行高：由 --row-h 控制（本次 40px → 35px，R3）=== */
.inst-table.el-table th.el-table__cell { height:var(--header-h); padding:0; }
.inst-table.el-table td.el-table__cell { height:var(--row-h); padding:0; }
.inst-table.el-table th.el-table__cell > .cell { height:calc(var(--header-h) - 1px); line-height:calc(var(--header-h) - 1px); padding:0 10px; }
.inst-table.el-table td.el-table__cell > .cell { height:calc(var(--row-h) - 1px); line-height:calc(var(--row-h) - 1px); padding:0 10px; }
.th-with-anchor { display:inline-flex; align-items:center; }
.inst-table.el-table th.el-table__cell { background-color:var(--el-fill-color-light); color:var(--el-text-color-secondary); font-weight:500; }
/* 行内元素按垂直居中压在行高内，避免基线对齐把行撑高（R4） */
.inst-table .proj, .inst-table .life-pill, .inst-table .user-tag,
.inst-table .state-wrap, .inst-table .el-tag, .inst-table .el-checkbox,
.inst-table .caret-wrapper { vertical-align:middle; }
.inst-table .caret-wrapper { height:14px; }
.inst-table .sort-caret.ascending { top:-7px; }
.inst-table .sort-caret.descending { bottom:-5px; }
.inst-table .el-tag--mini { height:20px; line-height:18px; }
.inst-table .el-checkbox__inner { width:14px; height:14px; }

.state-wrap { display:inline-flex; align-items:center; }
.proj { display:inline-flex; align-items:center; gap:6px; max-width:100%; }
.proj-dot { width:9px; height:9px; flex:none; border-radius:2px; background:#ff4d9e; }
.life-pill { display:inline-flex; align-items:center; height:22px; padding:0 10px; border:1px solid var(--el-border-color-light); border-radius:11px; font-size:12px; color:var(--el-text-color-regular); max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.user-tag { display:inline-flex; align-items:center; gap:6px; font-size:13px; }
.user-tag-avatar { width:18px; height:18px; flex:none; border-radius:50%; background:linear-gradient(135deg,#0b5eff 0%,#6a3de8 100%); color:#fff; font-size:10px; font-style:normal; font-weight:500; display:inline-flex; align-items:center; justify-content:center; }

/* ---------- 需求映射栏 ---------- */
.mapping-panel { width:280px; flex:none; background:#fff; border:1px solid var(--el-border-color-lighter); border-radius:12px; padding:18px; transition:width .25s ease; }
.mapping-panel.collapsed { width:54px; padding:18px 12px; }
.mapping-head { display:flex; justify-content:space-between; align-items:flex-start; }
.mapping-head h3 { margin:6px 0 0; font-size:15px; }
.mapping-list { margin-top:20px; display:flex; flex-direction:column; gap:10px; max-height:calc(100vh - 220px); overflow:auto; padding-right:2px; }
.mapping-item { display:flex; gap:10px; padding:12px 10px; border:1px solid transparent; border-radius:9px; cursor:pointer; }
.mapping-item:hover, .mapping-item.active { background:var(--el-color-primary-light-9); border-color:var(--el-color-primary-light-7); }
.mapping-index { width:26px; height:22px; border-radius:6px; display:flex; align-items:center; justify-content:center; color:var(--el-color-primary); background:#dce9ff; font-size:11px; font-weight:700; flex:none; }
.mapping-item strong { display:block; font-size:12px; }
.mapping-item em { font-style:normal; color:var(--el-color-warning); font-size:11px; margin-left:4px; }
.mapping-item p { margin:5px 0 0; color:var(--el-text-color-secondary); font-size:11px; line-height:1.55; }
.mapping-collapsed-label { text-align:center; color:var(--el-color-primary); font-weight:700; line-height:1.7; margin-top:36px; }

.acceptance-card { margin-top:16px; }
.acceptance-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px 22px; margin-top:16px; }
.acceptance-grid > div { display:flex; align-items:flex-start; gap:8px; color:var(--el-text-color-regular); font-size:12px; line-height:1.6; }
.acceptance-grid i { color:var(--el-color-success); font-size:16px; margin-top:1px; }


/* ---------- 还原线上（2026-09-22 实测 space_id=33 计算样式）---------- */
/* 标题行：底色 #fafbfc，无下边框；与 tab 条的灰度差形成分隔 */
.content-head { background:#fafbfc; }
.content-head h3 { margin-left:8px; font-weight:600; color:var(--el-text-color-primary); }

/* tab 条容器灰底 #f5f6f7；未选中透明透出灰底，选中白底浮起、无下划线 */
.content-tabs { background:#f5f6f7; }
.content-tab { display:inline-flex; align-items:center; gap:4px;
  background:transparent; color:var(--el-text-color-primary); font-weight:400; border-radius:8px; }
.content-tab:hover:not(.active) { color:var(--el-color-primary); }
.content-tab.active { background:var(--el-bg-color); color:var(--el-color-primary);
  border-radius:8px 8px 0 0; font-weight:400; }
.tab-ico { color:var(--el-color-icon); font-size:14px; }
.content-tab.active .tab-ico { color:var(--el-color-primary); }
.tab-more { color:var(--el-text-color-placeholder); font-size:14px; margin-left:2px; }

/* 工具条：容器 gap 12px；按钮统一 8px 圆角、字重 500、白底 */
.content-toolbar { gap:12px !important; }
.tb-guide-cluster { display:inline-flex; align-items:center; gap:12px; flex:none; border-radius:8px; }
.search-group { display:inline-flex; align-items:stretch; flex:none; }
.search-group .tb-search { width:210px; }
.search-group .el-input__inner { height:30px; line-height:30px; border-radius:8px 0 0 8px; border-right:none;
  background:var(--el-bg-color); font-weight:500; }
.search-group .el-input__icon { line-height:30px; }
.search-btn { flex:none; height:30px; padding:0 14px; border:1px solid var(--el-color-primary); border-radius:0 8px 8px 0;
  background:var(--el-color-primary); color:#fff; font-family:inherit; font-size:var(--toolbar-fs); font-weight:500;
  cursor:pointer; display:inline-flex; align-items:center; gap:3px; }
.search-btn:hover { opacity:.88; }
.search-btn i { font-size:12px; }

.tb-link { height:30px; padding:0 8px; border:1px solid transparent; border-radius:8px; background:#fff;
  cursor:pointer; font-family:inherit; font-size:var(--toolbar-fs); font-weight:500; color:var(--el-text-color-regular);
  display:inline-flex; align-items:center; gap:4px; }
.tb-link:hover { color:var(--el-color-primary); background:var(--el-color-primary-light-9); }
.tb-link i { font-size:14px; color:var(--el-color-icon); }
.tb-link:hover i { color:var(--el-color-primary); }

.tb-btn { height:30px; padding:0 11px; border:1px solid var(--el-border-color); border-radius:8px; background:#fff;
  cursor:pointer; font-family:inherit; font-size:var(--toolbar-fs); font-weight:500; color:var(--el-text-color-regular);
  display:inline-flex; align-items:center; gap:4px; }
.tb-btn:hover { color:var(--el-color-primary); border-color:var(--el-color-primary-light-5); }
.tb-btn i { font-size:14px; color:var(--el-color-icon); }
.tb-btn:hover i { color:var(--el-color-primary); }
.tb-btn.is-primary { color:var(--el-color-primary); border-color:var(--el-color-primary); }
.tb-btn.is-primary i { color:var(--el-color-primary); }

/* 列表卡片整体 16px 圆角（线上 .inst-list-wrap） */
.bpm-content { border-radius:16px; }

/* ---------- 还原线上：表头底色与排序箭头 ---------- */
.inst-table.el-table th.el-table__cell { background-color:#f7f9fc; }

/* ---------- Element UI 覆盖 ---------- */
.el-button { padding:8px 16px; border-radius:var(--el-border-radius-base); transition:all .35s ease-in-out; font-size:13px; }
.el-button:hover { opacity:.85; }
.el-button--primary { background-color:var(--el-color-primary); border-color:var(--el-color-primary); }
.el-button--primary:hover { background-color:var(--el-color-primary); border-color:var(--el-color-primary); opacity:.85; }
.el-button--text { color:var(--el-text-color-regular); }
.el-button--text:hover { color:var(--el-color-primary); }
.el-table { font-size:13px; }
.el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell { background-color:var(--el-color-primary-light-9); }
.el-pagination .btn-prev, .el-pagination .btn-next, .el-pager li { border-radius:var(--el-border-radius-base); }
.el-pager li.active { background-color:var(--el-color-primary); }
.el-input__inner { border-radius:var(--el-border-radius-base); font-size:13px; font-weight:500; background-color:var(--el-fill-color-light); transition:all .35s ease-in-out; }
.el-input__inner::placeholder { font-weight:400; }
.el-input__inner:hover { border-color:var(--el-color-primary); }
.el-input__inner:focus { background-color:var(--el-bg-color); border-color:var(--el-color-primary); box-shadow:0 0 0 2px rgba(11,94,255,.15); }
.el-tag { border-radius:6px; }
.el-tag--small { border-radius:4px; }
.el-tag--mini { border-radius:4px; }
.el-checkbox__input.is-checked .el-checkbox__inner { background-color:var(--el-color-primary); border-color:var(--el-color-primary); }

::-webkit-scrollbar { width:6px; height:6px; }
::-webkit-scrollbar-thumb { background:var(--el-border-color); border-radius:3px; }
::-webkit-scrollbar-track { background:transparent; }

@media (max-width: 1200px) {
  .mapping-panel { width:238px; }
  .canvas-tools { width:100%; }
}
@media (max-width: 768px) {
  .review-page { padding:12px; }
  .brief-card { display:block; }
  .demo-layout { flex-direction:column; }
  .mapping-panel, .mapping-panel.collapsed { width:100%; margin-top:12px; }
  .mapping-collapsed-label { margin:0; }
  .acceptance-grid { grid-template-columns:1fr; }
}

/* ---------- 完整演示模式（?mode=demo）：隐藏评审外壳，业务界面铺满视口 ---------- */
.demo-mode .top-nav,
.demo-mode .brief-card,
.demo-mode .req-link-layer,
.demo-mode .req-anchor,
.demo-mode .mapping-panel,
.demo-mode .acceptance-card,
.demo-mode .canvas-head > div:first-child,
.demo-mode .canvas-metrics { display:none !important; }
.detail-prototype-preview { margin:16px 0; padding:22px; background:#f8f9fc; border:1px solid var(--el-border-color-lighter); border-radius:12px; }
.detail-preview-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.detail-preview-head h2 { margin:5px 0 0; font-size:18px; }
.detail-prototype-frame { display:block; width:100%; height:820px; border:1px solid var(--el-border-color-lighter); border-radius:10px; background:var(--custom-page-bg); }
.detail-preview-layout { display:grid; grid-template-columns:minmax(0,1fr) 286px; gap:16px; align-items:start; }
.detail-review-panel { height:820px; overflow:auto; padding:18px 12px; background:#fff; border:1px solid var(--el-border-color-lighter); border-radius:12px; }
.detail-review-head { padding:0 6px 12px; border-bottom:1px solid #edf0f5; margin-bottom:6px; }
.detail-review-head h3 { margin:5px 0 0; font-size:15px; }
.detail-review-item { display:flex; width:100%; gap:10px; padding:12px 7px; text-align:left; border:0; border-radius:8px; background:transparent; color:var(--el-text-color-primary); cursor:pointer; }
.detail-review-item:hover,.detail-review-item.active { background:#f2f6ff; }
.detail-review-index { flex:none; min-width:33px; height:22px; padding:3px 5px; border-radius:6px; background:#e9f1ff; color:var(--el-color-primary); text-align:center; font-size:10px; font-weight:700; }
.detail-review-copy { min-width:0; display:flex; flex-direction:column; gap:5px; }
.detail-review-copy strong { font-size:12px; }
.detail-review-copy small { color:var(--el-text-color-regular); font-size:11px; line-height:1.55; }
.detail-review-copy em { color:var(--el-text-color-placeholder); font-size:10px; line-height:1.5; font-style:normal; }
.demo-mode .detail-prototype-preview { display:none; }
@media(max-width:980px) { .detail-preview-layout { grid-template-columns:1fr; } .detail-review-panel { height:auto; max-height:520px; } }
@media(max-width:760px) { .detail-prototype-preview { padding:12px; } .detail-preview-head { align-items:flex-start; flex-direction:column; } .detail-prototype-frame { height:760px; } }
.demo-mode .review-page { padding:0; }
.demo-mode .demo-layout { display:block; height:100vh; }
.demo-mode .business-canvas { height:100vh; box-sizing:border-box; display:flex; flex-direction:column; padding:8px 12px 12px; border:none; border-radius:0; }
.demo-mode .canvas-head { justify-content:flex-end; flex:none; min-height:0; }
.demo-mode .canvas-tools { margin-left:auto; }
.demo-mode .bpm-app { flex:1; min-height:0; margin-top:0; display:flex; flex-direction:column; }
.demo-mode .bpm-body { flex:1; min-height:0; }
.demo-mode .bpm-content { min-height:0; }
.demo-mode .content-table { flex:1; min-height:0; display:flex; flex-direction:column; }
.demo-mode .content-table .el-table { flex:1; }

/* ======================================================================
   本次需求：行右键「复制新建」 + 首次进入引导
   ====================================================================== */
:root { --crumb-fs: 14px; --title-fs: 15px; --tab-fs: 14px; --toolbar-fs: 13px; }
.bpm-content { position:relative; }
.bpm-top-help { color:var(--el-text-color-regular); font-size:16px; cursor:pointer; }
.bpm-top-help:hover { color:var(--el-color-primary); }

/* 标题列：复制来源标记 */
.title-cell { display:inline-flex; align-items:center; gap:4px; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cloned-tag { flex:none; font-style:normal; font-size:10px; line-height:16px; padding:0 5px; border-radius:4px; background:var(--el-color-primary-light-9); color:var(--el-color-primary); }
.inst-table .el-table__row { cursor:context-menu; }
.inst-table .el-table__row.is-ctx td.el-table__cell { background:var(--el-color-primary-light-9); }

/* === 行右键菜单（R1）：定位在业务内容区内 === */
.row-context-menu { position:absolute; z-index:60; min-width:200px; background:#fff; border-radius:12px; box-shadow:0 3px 12px rgba(0,0,0,.15); padding:4px; }
.row-context-head { padding:6px 12px 4px; font-size:11px; color:var(--el-text-color-placeholder); max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.row-context-item { display:flex; align-items:center; gap:8px; padding:8px 12px; border-radius:8px; font-size:13px; color:var(--el-text-color-regular); cursor:pointer; }
.row-context-item:hover { background:var(--el-color-primary-light-9); color:var(--el-color-primary); }
.row-context-item i { font-size:14px; color:var(--el-color-icon); }
.row-context-item:hover i { color:var(--el-color-primary); }
.row-context-item small { margin-left:auto; color:var(--el-text-color-placeholder); font-size:11px; }
.row-context-item .req-anchor { margin-left:auto; }

/* === 新手引导（10 步）：遮罩覆盖整个 .bpm-app === */
.guide-mask { position:absolute; inset:0; z-index:55; }
.guide-spot { position:absolute; border-radius:8px; box-shadow:0 0 0 9999px rgba(24,41,70,.55); pointer-events:none; transition:all .25s ease; }
.guide-spot::after { content:''; position:absolute; inset:-3px; border-radius:10px; border:2px solid var(--el-color-primary); animation:guide-pulse 1.4s ease-in-out infinite; }
@keyframes guide-pulse { 0%,100% { box-shadow:0 0 0 0 rgba(11,94,255,.45); } 50% { box-shadow:0 0 0 8px rgba(11,94,255,0); } }
.guide-card { position:absolute; z-index:56; width:340px; max-width:calc(100% - 24px); background:#fff; border-radius:12px; box-shadow:0 8px 28px rgba(24,41,70,.22); padding:16px 18px 14px; }
.guide-card::before { content:''; position:absolute; width:12px; height:12px; background:#fff; transform:rotate(45deg); box-shadow:-1px -1px 2px rgba(24,41,70,.06); }
.guide-card.place-below::before { top:-6px; left:28px; }
.guide-card.place-above::before { bottom:-6px; left:28px; box-shadow:1px 1px 2px rgba(24,41,70,.06); }
.guide-card.place-right::before { left:-6px; top:22px; }
.guide-card.place-left::before { right:-6px; top:22px; box-shadow:1px -1px 2px rgba(24,41,70,.06); }
.el-button .req-anchor, .tb-btn .req-anchor { margin-left:6px; vertical-align:middle; }
.content-head .el-button.anchor-flash,
.tb-btn.anchor-flash,
.tb-guide-cluster.anchor-flash,
.content-tabs.anchor-flash,
.bpm-top-help.anchor-flash { box-shadow:0 0 0 2px var(--el-color-primary-light-5); border-radius:8px; }
.inst-table .el-table__row.is-guide-row td.el-table__cell { background:var(--el-color-primary-light-9); }
.guide-step { font-size:11px; color:var(--el-color-primary); font-weight:700; letter-spacing:.08em; }
.guide-card h4 { margin:6px 0 6px; font-size:15px; display:flex; align-items:center; flex-wrap:wrap; gap:4px; }
.guide-card p { margin:0; font-size:12px; line-height:1.7; color:var(--el-text-color-regular); }
.guide-card p b { color:var(--el-text-color-primary); }
.guide-mouse { display:inline-flex; align-items:center; gap:4px; margin:8px 0 2px; padding:4px 8px; border-radius:6px; background:var(--el-fill-color-light); font-size:11px; color:var(--el-text-color-secondary); max-width:100%; }
.guide-mouse i { color:var(--el-color-primary); flex:none; }
.guide-foot { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-top:12px; }

/* === 复制并新建弹窗（R2）：限制在业务画布内 === */
.bpm-content .el-dialog__wrapper, .bpm-content .v-modal { position:absolute; }
.bpm-content .el-dialog__wrapper { overflow:hidden; display:flex; align-items:center; justify-content:center; }
.bpm-content .el-dialog { margin:0 !important; max-width:calc(100% - 32px); max-height:calc(100% - 32px); display:flex; flex-direction:column; }
.bpm-content .el-dialog__body { flex:1; min-height:0; overflow:auto; }
.clone-dialog.el-dialog { border-radius:16px; background:var(--custom-page-bg); }
.clone-dialog .el-dialog__header { padding:14px 20px; border-bottom:1px solid var(--el-border-color-lighter); }
.clone-dialog .el-dialog__title { font-size:16px; font-weight:500; }
.clone-dialog .el-dialog__body { padding:12px; }
.clone-dialog .el-dialog__footer { padding:10px 20px; border-top:1px solid var(--el-border-color-lighter); }
.clone-dialog .scene-modal-inner { background:#fff; border-radius:12px; padding:14px 18px 6px; max-height:none; overflow:visible; }
.clone-alert { margin-bottom:12px; }
.clone-alert .el-alert__title { font-size:12px; line-height:1.6; }
.clone-alert b { color:var(--el-text-color-primary); }
.clone-form .el-form-item { margin-bottom:12px; }
.clone-form .form-row { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
.form-tip { font-size:11px; color:var(--el-text-color-placeholder); line-height:1.4; margin-top:2px; }
.form-tip.inline { display:inline; margin-left:8px; }
.no-copy { font-size:12px; color:var(--el-text-color-secondary); }
.el-form-item.is-required .el-form-item__label::before { content:'*'; color:var(--el-color-danger); margin-right:4px; }
.bpm-content .el-picker-panel { z-index:3000; }

/* 演示模式：隐藏评审说明 */
.demo-mode .canvas-metrics { display:none !important; }
