/* moderation.css — A6 内容审核工作台样式
   复用 assets/styles.css 变量体系与 task-breakpoint.css / task-admission.css 组件类 */

/* ── 顶部分流说明卡 ── */
.mod-diversion-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 16px;
  background: var(--surface);
  display: grid;
  gap: 14px;
}
.mod-diversion-head {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px;
}
.mod-diversion-head h2 { font-size: 15px; font-weight: 850; margin: 0; }
.mod-diversion-head .mod-role-tag {
  font-size: 10px; font-weight: 750;
  background: var(--violet-soft); color: var(--violet);
  padding: 3px 10px; border-radius: 5px; border: 1px solid #ddd6fe;
}
.mod-diversion-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.mod-mode-card {
  border: 1px solid var(--line); border-radius: 8px; padding: 12px;
  display: grid; gap: 8px;
}
.mod-mode-card.mode-pre { border-left: 3px solid #2563eb; background: #eff6ff; }
.mod-mode-card.mode-post { border-left: 3px solid #059669; background: #ecfdf5; }
.mod-mode-card .mode-title {
  font-size: 13px; font-weight: 800; display: flex; align-items: center; gap: 8px;
}
.mod-mode-card.mode-pre .mode-title { color: #1e40af; }
.mod-mode-card.mode-post .mode-title { color: #065f46; }
.mod-mode-card .mode-badge {
  font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 4px;
  background: #fff; font-family: ui-monospace, monospace;
}
.mod-mode-card .mode-desc { font-size: 11px; color: var(--muted); line-height: 1.6; }
.mod-mode-card .mode-derived {
  display: flex; gap: 12px; flex-wrap: wrap; font-size: 10px;
  padding-top: 6px; border-top: 1px solid var(--line);
}
.mod-mode-card .mode-derived span { color: var(--muted); }
.mod-mode-card .mode-derived span strong { color: var(--text); font-family: ui-monospace, monospace; font-weight: 700; }
.mod-whitelist-warning {
  padding: 8px 12px; background: #fef3c7; border: 1px solid #fde68a;
  border-radius: 6px; font-size: 11px; color: #92400e; line-height: 1.6;
}
.mod-whitelist-warning strong { color: #78350f; }

/* ── 工作台四态 Tab ── */
.mod-state-tabs {
  display: flex; gap: 0; border-bottom: 2px solid var(--line); margin-bottom: 4px;
}
.mod-state-tab {
  padding: 10px 16px; font-size: 13px; font-weight: 700; color: var(--muted);
  border: 0; background: transparent; border-bottom: 2px solid transparent;
  margin-bottom: -2px; cursor: pointer; display: inline-flex; align-items: center; gap: 8px;
}
.mod-state-tab:hover { color: var(--text); background: var(--surface-soft); }
.mod-state-tab.active { color: var(--brand); border-bottom-color: var(--brand); }
.mod-state-tab .tab-count {
  font-size: 10px; font-weight: 800; background: var(--surface-soft); color: var(--muted);
  border-radius: 999px; padding: 1px 8px;
}
.mod-appeal-state { display:inline-block; padding:2px 6px; border-radius:999px; font-size:10px; background:#f1f5f9; color:#475569; }
.mod-appeal-state.pending { background:#fef3c7; color:#92400e; }
.mod-appeal-state.reviewing { background:#dbeafe; color:#1d4ed8; }
.mod-appeal-state.terminal { background:#ede9fe; color:#6d28d9; }
.mod-state-tab.active .tab-count { background: var(--brand-soft); color: var(--brand); }
.mod-state-tab .tab-count.danger { background: var(--red-soft); color: var(--red); }
.mod-state-tab .tab-count.warn { background: var(--amber-soft); color: #b45309; }
.mod-state-tab .tab-count.error { background: #fee2e2; color: #dc2626; }

/* ── 审核记录表 ── */
.mod-records-table { min-width: 860px; }
.mod-records-table tbody tr { cursor: pointer; transition: background .1s; }
.mod-records-table tbody tr:hover { background: var(--surface-soft); }
.mod-records-table tbody tr.selected { background: var(--brand-soft); }
.mod-trace-id { font-family: ui-monospace, monospace; font-size: 12px; font-weight: 700; }
.mod-meta { font-size: 11px; color: var(--subtle); margin-top: 3px; line-height:1.4; }
.mod-audit-trace { font-family: ui-monospace, monospace; }

/* 操作列钉在右缘：宽表横向滚动时「详情」入口始终可见、不被挤出视口 */
.mod-records-table .mod-col-action {
  position: sticky; right: 0; z-index: 5; text-align: center; white-space: nowrap;
  box-shadow: -6px 0 8px -6px rgba(15, 23, 42, .18);
}
.mod-records-table th.mod-col-action { background: #f8fafc; z-index: 6; }
.mod-records-table td.mod-col-action { background: var(--surface); }
.mod-records-table tbody tr:hover td.mod-col-action { background: var(--surface-soft); }
.mod-records-table tbody tr.selected td.mod-col-action { background: var(--brand-soft); }
.mod-records-table td.mod-col-action .link { font-size: 12px; cursor: pointer; }

/* 目标字段类型徽标 */
.mod-field-type-badge {
  display: inline-flex; align-items: center; font-size: 10px; font-weight: 700;
  padding: 2px 7px; border-radius: 4px; white-space: nowrap;
}
.mod-field-type-badge.cat-text { background: #eff6ff; color: #1e40af; }
.mod-field-type-badge.cat-image { background: #f0fdf4; color: #166534; }
.mod-field-type-badge.cat-av { background: #faf5ff; color: #6b21a8; }
.mod-field-type-badge.cat-output { background: #fff7ed; color: #9a3412; }

/* 审核模式徽标 */
.mod-mode-badge {
  display: inline-flex; align-items: center; font-size: 10px; font-weight: 700;
  padding: 2px 7px; border-radius: 4px; white-space: nowrap;
}
.mod-mode-badge.pre_review { background: #eff6ff; color: #1e40af; }
.mod-mode-badge.post_review { background: #ecfdf5; color: #065f46; }

/* 审核状态徽标 */
.mod-state-badge {
  display: inline-flex; align-items: center; font-size: 10px; font-weight: 750;
  padding: 2px 8px; border-radius: 5px; white-space: nowrap;
}
.mod-state-badge.review_pending { background: var(--amber-soft); color: #b45309; }
.mod-state-badge.violated { background: var(--red-soft); color: var(--red); }
.mod-state-badge.review_passed { background: var(--green-soft); color: var(--green); }
.mod-state-badge.review_failed { background: #fee2e2; color: #dc2626; }

/* 隔离态徽标 */
.mod-isolation-badge {
  display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 700;
  padding: 2px 7px; border-radius: 4px; white-space: nowrap;
}
.mod-isolation-badge.isolated { background: var(--red-soft); color: var(--red); }
.mod-isolation-badge.released { background: var(--green-soft); color: var(--green); }
.mod-isolation-badge.minor { background: #fef3c7; color: #92400e; }
.mod-business-badge { display:inline-flex; padding:2px 7px; border-radius:5px; font-size:10px; font-weight:750; white-space:nowrap; }
.mod-business-badge.safe { background:#ecfdf5; color:#047857; }
.mod-business-badge.risk { background:#fef2f2; color:#b91c1c; }
.mod-business-badge.whitelist-safe { background:#eff6ff; color:#1d4ed8; }
.mod-business-badge.whitelist-risk { background:#fff7ed; color:#c2410c; }
.mod-business-badge.exception { background:#f3f4f6; color:#4b5563; }
.mod-business-badge.pending { background:#f1f5f9; color:#475569; }

/* ── 详情抽屉 ── */
.mod-detail-drawer { width: min(820px, 100vw); }
.mod-detail-body { display: grid; gap: 14px; }

/* 审核对象与机审证据分开：对象必须先于依据出现，供人工先看内容再看规则。 */
.mod-object-card {
  border: 1px solid #93c5fd; border-radius: 10px; padding: 12px;
  background: #f8fbff; display: grid; gap: 9px;
}
.mod-object-card.is-unavailable { border-color: #fca5a5; background: #fff7f7; }
.mod-object-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.mod-object-head h3 { margin: 0; font-size: 14px; }
.mod-object-head p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.mod-demo-warning { flex: none; padding: 4px 8px; border-radius: 6px; background: #fff7ed; color: #9a3412; border: 1px solid #fdba74; font-size: 11px; font-weight: 800; }
.mod-object-media { position: relative; min-height: 250px; display: grid; place-items: center; border: 1px solid #bfdbfe; border-radius: 8px; background: #0f172a; overflow: hidden; }
.mod-object-loading { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; background: #0f172a; color: #e2e8f0; font-size: 12px; }
.mod-object-media img, .mod-object-media video { display: block; width: 100%; max-height: 330px; object-fit: contain; }
.mod-object-media audio { width: min(520px, 100%); }
.mod-object-image-button { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.mod-object-image-button:focus-visible { outline: 3px solid #2563eb; outline-offset: -3px; }
.mod-object-text { margin: 0; min-height: 110px; max-height: 240px; overflow: auto; padding: 12px; border: 1px solid #bfdbfe; border-radius: 8px; background: #fff; color: var(--text); white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/1.7 ui-monospace, SFMono-Regular, Consolas, monospace; }
.mod-object-missing { display: grid; place-items: center; min-height: 112px; padding: 16px; border: 1px dashed #fca5a5; border-radius: 8px; color: #991b1b; background: #fff; font-size: 12px; line-height: 1.6; text-align: center; }
.mod-object-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.mod-object-foot .btn { flex: none; font-size: 11px; padding: 4px 10px; }
.mod-preview-lightbox { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 24px; background: rgba(15, 23, 42, .74); }
.mod-preview-lightbox-inner { position: relative; width: min(900px, 94vw); max-height: 92vh; padding: 16px; border-radius: 12px; background: #fff; }
.mod-preview-lightbox-inner .icon-btn { position: absolute; top: 7px; right: 7px; z-index: 1; background: rgba(255,255,255,.9); }
.mod-preview-lightbox-inner img { display: block; width: 100%; max-height: 78vh; object-fit: contain; background: #0f172a; }
.mod-preview-lightbox-inner p { margin: 8px 0 0; color: #9a3412; font-size: 11px; font-weight: 750; text-align: center; }
@media (max-height: 760px) and (min-width: 901px) {
  .mod-object-media { min-height: 210px; }
  .mod-object-media img, .mod-object-media video { max-height: 250px; }
}

/* 证据卡 */
.mod-evidence-card {
  border: 1px solid var(--line); border-radius: 8px; padding: 12px;
  background: var(--surface); display: grid; gap: 10px;
}
.mod-evidence-card .evidence-head {
  display: flex; align-items: center; justify-content: space-between;
}
.mod-evidence-card .evidence-head h3 { font-size: 13px; font-weight: 800; margin: 0; }
.mod-evidence-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px;
}
.mod-evidence-item { display: grid; gap: 2px; }
.mod-evidence-item .ei-key { font-size: 10px; color: var(--muted); font-weight: 650; }
.mod-evidence-item .ei-val { font-size: 12px; font-weight: 700; overflow-wrap: anywhere; }
.mod-evidence-item .ei-val.mono { font-family: ui-monospace, monospace; font-size: 11px; }
.mod-evidence-detail {
  padding: 8px 10px; background: var(--surface-soft); border-radius: 6px;
  font-size: 11px; color: var(--muted); line-height: 1.6;
}
.mod-evidence-thumb {
  width: 100%; border-radius: 6px;
  border: 1px solid var(--line); background: var(--surface-soft);
  display: grid; gap: 3px; padding: 8px 10px; color: var(--muted); font-size: 11px;
}
.mod-evidence-thumb span { color: var(--subtle); font-size: 10px; }

/* 版本快照卡 */
.mod-version-card {
  border: 1px solid var(--line); border-radius: 8px; padding: 12px;
  background: var(--surface); display: grid; gap: 8px;
}
.mod-version-card .version-head {
  font-size: 12px; font-weight: 800; display: flex; align-items: center; gap: 8px;
}
.mod-version-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px;
}
.mod-version-item { display: flex; justify-content: space-between; font-size: 11px; }
.mod-version-item .vk { color: var(--muted); }
.mod-version-item .vv { font-family: ui-monospace, monospace; font-weight: 700; font-size: 10px; }
.mod-version-warning {
  font-size: 10px; color: #b45309; background: var(--amber-soft);
  padding: 6px 10px; border-radius: 5px; line-height: 1.5;
}

/* 结果资产隔离卡 */
.mod-isolation-card {
  border: 1px solid; border-radius: 8px; padding: 12px; display: grid; gap: 8px;
}
.mod-isolation-card.isolated { border-color: #fecdd3; background: var(--red-soft); }
.mod-isolation-card.released { border-color: #bbf7d0; background: var(--green-soft); }
.mod-isolation-card .iso-head {
  font-size: 12px; font-weight: 800; display: flex; align-items: center; gap: 8px;
}
.mod-isolation-card.isolated .iso-head { color: var(--red); }
.mod-isolation-card.released .iso-head { color: var(--green); }
.mod-isolation-card .iso-meta {
  display: flex; gap: 16px; flex-wrap: wrap; font-size: 11px;
}
.mod-isolation-card.isolated .iso-meta { color: #991b1b; }
.mod-isolation-card.released .iso-meta { color: #166534; }

/* 操作按钮区 */
.mod-action-bar {
  display: flex; gap: 8px; flex-wrap: wrap; padding: 10px 0;
  border-top: 1px solid var(--line);
}
.mod-action-bar .btn { font-size: 12px; padding: 6px 14px; }
.mod-action-bar .btn.danger { background: var(--red); color: #fff; border-color: var(--red); }
.mod-action-bar .btn.danger:hover { background: #dc2626; }
.mod-action-bar .btn.warn { background: #d97706; color: #fff; border-color: #d97706; }
.mod-action-bar .btn.warn:hover { background: #b45309; }

/* 审计日志 */
.mod-audit-log {
  border: 1px solid var(--line); border-radius: 8px; padding: 12px;
  background: var(--surface); display: grid; gap: 8px;
}
.mod-audit-log .audit-head { font-size: 12px; font-weight: 800; }
.mod-audit-list { display: grid; gap: 0; }
.mod-audit-item {
  display: grid; grid-template-columns: 24px 1fr auto; gap: 8px;
  padding: 6px 0; position: relative; align-items: start;
}
.mod-audit-item:not(:last-child)::before {
  content: ''; position: absolute; left: 11px; top: 24px; bottom: -2px;
  width: 2px; background: var(--line);
}
.mod-audit-dot {
  width: 18px; height: 18px; border-radius: 50%; background: var(--surface-soft);
  border: 2px solid var(--line-strong); display: grid; place-items: center;
  font-size: 8px; font-weight: 800; color: var(--subtle); z-index: 1;
}
.mod-audit-item.action-isolate .mod-audit-dot { background: var(--red); border-color: var(--red); color: #fff; }
.mod-audit-item.action-pass .mod-audit-dot { background: var(--green); border-color: var(--green); color: #fff; }
.mod-audit-item.action-notify .mod-audit-dot { background: var(--blue); border-color: var(--blue); color: #fff; }
.mod-audit-body { display: grid; gap: 1px; min-width: 0; }
.mod-audit-title { font-size: 11px; font-weight: 750; }
.mod-audit-detail { font-size: 10px; color: var(--muted); line-height: 1.4; }
.mod-audit-side { text-align: right; display: grid; gap: 1px; }
.mod-audit-time { font-size: 10px; color: var(--subtle); font-family: ui-monospace, monospace; }
.mod-audit-operator { font-size: 9px; color: var(--muted); }

/* 申诉处理区 */
.mod-appeal-card {
  border: 1px dashed var(--line); border-radius: 8px; padding: 12px;
  background: var(--surface-soft); display: grid; gap: 8px;
}
.mod-appeal-card .appeal-head {
  font-size: 12px; font-weight: 800; display: flex; align-items: center; gap: 8px;
}
.mod-appeal-card .appeal-status {
  font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 4px;
}
.mod-appeal-card .appeal-status.pending { background: var(--amber-soft); color: #b45309; }
.mod-appeal-card .appeal-status.none { background: var(--surface-soft); color: var(--subtle); }
.mod-appeal-card .appeal-status.resolved { background: var(--green-soft); color: var(--green); }
.mod-appeal-card .appeal-text {
  font-size: 11px; color: var(--muted); line-height: 1.6;
  padding: 8px 10px; background: #fff; border-radius: 6px; border: 1px solid var(--line);
}
.mod-appeal-card .appeal-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.mod-appeal-card .appeal-actions .btn { font-size: 11px; padding: 4px 12px; }

/* 通知记录 */
.mod-notif-list { display: grid; gap: 6px; }
.mod-notif-item {
  display: flex; justify-content: space-between; align-items: center;
  padding: 7px 10px; border: 1px solid var(--line); border-radius: 6px;
  background: var(--surface-soft); font-size: 11px;
}
.mod-notif-item .ni-type { font-weight: 750; }
.mod-notif-item .ni-meta { color: var(--muted); font-size: 10px; }

/* 明确文案提示条 */
.mod-principle-bar {
  padding: 10px 14px; background: #f0f9ff; border: 1px solid #bae6fd;
  border-radius: 8px; font-size: 11px; color: #0c4a6e; line-height: 1.7;
}
.mod-principle-bar strong { color: #075985; }
.mod-principle-bar ul { margin: 4px 0 0; padding-left: 18px; }

/* 场景切换栏 */
.mod-scenario-bar {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
  padding: 10px 14px; background: var(--surface-soft); border: 1px solid var(--line);
  border-radius: 8px;
}
.mod-scenario-bar .sc-label { font-size: 12px; font-weight: 750; color: var(--muted); }
.mod-scenario-btn {
  font-size: 12px; font-weight: 700; padding: 5px 12px; border-radius: 6px;
  border: 1px solid var(--line); background: #fff; color: var(--muted); cursor: pointer;
}
.mod-scenario-btn:hover { border-color: var(--brand); color: var(--brand); }
.mod-scenario-btn.active { background: var(--brand); color: #fff; border-color: var(--brand); }

/* 五终点栏 */
.mod-endpoint-bar {
  display: flex; gap: 6px; align-items: center; flex-wrap: wrap;
  padding: 8px 12px; background: var(--surface-soft); border: 1px solid var(--line);
  border-radius: 8px; font-size: 11px;
}
.mod-endpoint-bar .ep-label { font-weight: 750; color: var(--muted); }
.mod-endpoint-btn {
  font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 5px;
  border: 1px solid var(--line); background: #fff; color: var(--muted); cursor: pointer;
}
.mod-endpoint-btn:hover { border-color: var(--brand); color: var(--brand); }
.mod-endpoint-btn.active { background: var(--brand); color: #fff; border-color: var(--brand); }

/* 状态覆盖层 */
.mod-state-overlay {
  padding: 40px 20px; text-align: center; display: grid; gap: 10px;
  justify-items: center; border: 1px solid var(--line); border-radius: 8px;
  background: var(--surface);
}
.mod-state-overlay .state-icon {
  width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center;
  font-size: 24px; font-weight: 850;
}
.mod-state-overlay.state-empty .state-icon { background: var(--surface-soft); color: var(--subtle); }
.mod-state-overlay.state-error .state-icon { background: var(--red-soft); color: var(--red); }
.mod-state-overlay.state-noperm .state-icon { background: var(--amber-soft); color: #b45309; }
.mod-state-overlay strong { font-size: 15px; }
.mod-state-overlay p { margin: 0; color: var(--muted); font-size: 13px; max-width: 400px; line-height: 1.6; }

/* 待确认列表 */
.mod-pending-list {
  margin-top: 10px; padding: 10px 14px; background: var(--surface-soft);
  border: 1px solid var(--line); border-radius: 8px;
}
.mod-pending-list .pending-title { font-size: 11px; font-weight: 750; color: #b45309; margin-bottom: 6px; }
.mod-pending-list ul { margin: 0; padding-left: 18px; }
.mod-pending-list li { font-size: 11px; color: var(--muted); line-height: 1.7; }

/* ── v2 口径优化：待处理聚合 Tab ── */
.mod-state-tabs { position: relative; }
.mod-workspace-tabs { display:grid; gap:10px; margin-bottom:12px; }
.mod-workspace-switch { display:flex; gap:4px; padding:4px; margin-bottom:10px; border:1px solid var(--line); border-radius:10px; background:var(--surface-soft); width:max-content; }
.mod-workspace-tab { border:0; border-radius:7px; background:transparent; color:var(--muted); font-size:13px; font-weight:800; padding:8px 18px; cursor:pointer; }
.mod-workspace-tab.active { background:var(--surface); color:var(--brand); box-shadow:0 1px 3px rgba(15,23,42,.12); }
.mod-workspace-tab .tab-count { margin-left:5px; padding:1px 7px; border-radius:999px; background:var(--amber-soft); color:#92400e; font-size:10px; }
.mod-workspace-note { margin:0 0 8px; padding:9px 12px; border:1px solid #ddd6fe; border-radius:8px; background:#faf5ff; color:#6b21a8; font-size:11px; line-height:1.6; }
.mod-tech-details {
  border: 1px solid var(--line); border-radius: 8px; background: var(--surface);
  margin-bottom: 10px;
}
.mod-tech-details > summary {
  cursor: pointer; padding: 9px 13px; color: var(--muted); font-size: 12px;
  font-weight: 700;
}
.mod-tech-details > summary:hover { color: var(--text); background: var(--surface-soft); }
.mod-tech-details > summary:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.mod-tech-content { display: grid; gap: 10px; padding: 0 12px 12px; }
.mod-tab-group { border:1px solid var(--line); border-radius:10px; background:var(--surface); padding:8px 10px 0; }
.mod-tab-group > strong { display:block; color:var(--text); font-size:12px; margin:0 0 2px; }
.mod-system-progress { margin-left:8px; color:var(--subtle); font-size:11px; font-weight:500; }
.mod-tab-group .mod-state-tabs { border-top:0; margin-top:0; }
.mod-tab-group .appeal-tab.active { color:#7c3aed; border-bottom-color:#7c3aed; }
.mod-state-tab.pending-aggregate {
  background: var(--brand-soft); color: var(--brand); font-weight: 850;
  border-radius: 6px 6px 0 0; padding: 10px 18px;
}
.mod-state-tab.pending-aggregate.active {
  background: var(--brand); color: #fff; border-bottom-color: var(--brand);
}
.mod-state-tab.pending-aggregate .tab-count {
  background: #fff; color: var(--brand); font-size: 11px; font-weight: 850;
}
.mod-state-tab.pending-aggregate.active .tab-count { background: rgba(255,255,255,.25); color: #fff; }
.mod-state-tab.archive-tab {
  margin-left: auto; color: var(--subtle); font-size: 12px; font-weight: 650;
}
.mod-state-tab.archive-tab:hover { color: var(--muted); }
.mod-state-tab.archive-tab.active { color: var(--muted); border-bottom-color: var(--muted); }
.mod-state-tab.archive-tab .tab-count { background: var(--surface-soft); color: var(--subtle); }
.mod-tab-archive-note {
  font-size: 9px; font-weight: 600; color: var(--subtle); margin-left: 4px;
}

.mod-confirm-mask {
  position: fixed; inset: 0; z-index: 40; display: grid; place-items: center;
  padding: 20px; background: rgba(15, 23, 42, .48);
}
.mod-confirm-card {
  width: min(520px, 100%); max-height: min(90vh, 760px); overflow: auto;
  border: 1px solid var(--line); border-radius: 12px; background: #fff;
  box-shadow: 0 24px 60px rgba(15, 23, 42, .24);
}
.mod-confirm-card > header {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 14px 18px; border-bottom: 1px solid var(--line);
}
.mod-confirm-card h3 { margin: 0; font-size: 16px; }
.mod-confirm-form { margin: 0; }
.mod-confirm-content { display: grid; gap: 10px; padding: 16px 18px; }
.mod-confirm-kv { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 10px; font-size: 12px; line-height: 1.5; }
.mod-confirm-kv > span { color: var(--muted); }
.mod-confirm-kv > strong { overflow-wrap: anywhere; }
.mod-confirm-note { margin: 0; padding: 9px 10px; border-radius: 6px; background: #f8fafc; color: #475569; font-size: 11px; line-height: 1.6; }
.mod-confirm-reason-label { font-size: 12px; font-weight: 750; }
.mod-confirm-reason-label span { color: #b45309; font-size: 10px; }
.mod-confirm-form textarea { width: 100%; min-height: 88px; resize: vertical; padding: 9px 10px; border: 1px solid var(--line); border-radius: 6px; font: inherit; font-size: 12px; }
.mod-confirm-form textarea:focus { outline: 2px solid var(--brand); outline-offset: 1px; }
.mod-confirm-form footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--line); }
.mod-detail-drawer .drawer-foot { flex-wrap: wrap; }
.mod-close-review-actions { display: flex; flex: 1 0 100%; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.mod-verdict-choice { white-space: nowrap; background: #fff; color: var(--text); border-color: var(--line); }
.mod-verdict-choice:hover { background: var(--surface-soft); }

/* ── v2：子态徽标 ── */
.mod-sub-badge {
  display: inline-flex; align-items: center; font-size: 10.5px; font-weight: 750;
  padding: 1px 6px; border-radius: 3px; white-space: nowrap; margin-top: 2px;
}
.mod-sub-badge.sub-machine { background: #eff6ff; color: #1e40af; }
.mod-sub-badge.sub-lowconf { background: #fef3c7; color: #92400e; }
.mod-sub-badge.sub-appeal { background: #faf5ff; color: #6b21a8; }
.mod-sub-badge.sub-violated { background: var(--red-soft); color: var(--red); }
.mod-sub-badge.sub-failed { background: #fee2e2; color: #dc2626; }
.mod-sub-badge.sub-auto-pass { background: var(--green-soft); color: var(--green); }
.mod-sub-badge.sub-manual-pass { background: #d1fae5; color: #065f46; }

/* ── v2：队列口径说明 ── */
.mod-queue-note {
  padding: 10px 14px; background: #f0fdf4; border: 1px solid #bbf7d0;
  border-radius: 8px; font-size: 11px; color: #166534; line-height: 1.7;
  margin-bottom: 8px;
}
.mod-queue-note strong { color: #14532d; }
.mod-queue-note .qn-source { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 4px; }
.mod-queue-note .qn-source-item { flex: 1; min-width: 280px; }
.mod-queue-note .qn-source-item .qn-label { font-weight: 800; margin-bottom: 2px; }
.mod-case-note { margin-left:10px; color:#3f6650; }
.mod-case-guide { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; margin-top:7px; }
.mod-case-guide span { padding:7px 8px; background:#fff; border:1px solid #d1fae5; border-radius:6px; color:#355748; line-height:1.35; }
.mod-case-guide b { display:block; color:#14532d; font-size:11px; }
@media (max-width: 1100px) { .mod-case-guide { grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* ── v2：筛选器栏 ── */
.mod-filter-bar {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end;
  padding: 10px 14px; background: var(--surface); border: 1px solid var(--line);
  border-radius: 8px; margin-bottom: 8px;
}
.mod-filter-group { display: grid; gap: 2px; }
.mod-filter-group label {
  font-size: 10px; font-weight: 700; color: var(--muted);
}
.mod-filter-group select,
.mod-filter-group input {
  font-size: 11px; padding: 4px 8px; border: 1px solid var(--line);
  border-radius: 5px; background: #fff; color: var(--text); min-width: 110px;
}
.mod-filter-group input[type="text"] { min-width: 140px; }
.mod-filter-reset {
  font-size: 11px; font-weight: 700; padding: 5px 12px; border-radius: 5px;
  border: 1px solid var(--line); background: #fff; color: var(--muted); cursor: pointer;
  height: fit-content;
}
.mod-filter-reset:hover { border-color: var(--red); color: var(--red); }

/* ── v2：两阶段处置可视化 ── */
.mod-disposition-stages {
  border: 1px solid var(--line); border-radius: 8px; padding: 12px;
  background: var(--surface); display: grid; gap: 10px;
}
.mod-disposition-stages .ds-head {
  font-size: 12px; font-weight: 800; display: flex; align-items: center; gap: 8px;
}
.mod-stage-row {
  display: grid; grid-template-columns: 28px 1fr; gap: 10px; align-items: start;
  padding: 8px 0; position: relative;
}
.mod-stage-row:not(:last-child)::after {
  content: ''; position: absolute; left: 13px; top: 36px; bottom: -4px;
  width: 2px; background: var(--line);
}
.mod-stage-num {
  width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center;
  font-size: 10px; font-weight: 850; z-index: 1;
}
.mod-stage-num.stage-1 { background: #dbeafe; color: #1e40af; border: 2px solid #93c5fd; }
.mod-stage-num.stage-2 { background: #fef3c7; color: #92400e; border: 2px solid #fcd34d; }
.mod-stage-body { display: grid; gap: 3px; }
.mod-stage-title { font-size: 12px; font-weight: 800; }
.mod-stage-title.stage-1 { color: #1e40af; }
.mod-stage-title.stage-2 { color: #92400e; }
.mod-stage-desc { font-size: 10px; color: var(--muted); line-height: 1.5; }
.mod-stage-tag {
  display: inline-flex; align-items: center; font-size: 9px; font-weight: 750;
  padding: 1px 6px; border-radius: 3px; width: fit-content;
}
.mod-stage-tag.tag-auto { background: #eff6ff; color: #1e40af; }
.mod-stage-tag.tag-human { background: #fef3c7; color: #92400e; }
.mod-stage-tag.tag-nonfinal { background: #fef3c7; color: #92400e; }

/* ── v2：审计主体区分 ── */
.mod-audit-operator.op-system {
  color: var(--subtle); font-style: italic; font-weight: 600;
}
.mod-audit-operator.op-moderation {
  color: #1e40af; font-weight: 700;
}
.mod-audit-operator.op-human {
  color: #92400e; font-weight: 800;
}
.mod-audit-item.op-system-row .mod-audit-dot {
  background: var(--surface-soft); border-color: var(--line);
}
.mod-audit-item.op-human-row .mod-audit-dot {
  background: #d97706; border-color: #d97706; color: #fff;
}

/* ── v2：事前拒绝标注 ── */
.mod-pre-reject-note {
  padding: 8px 12px; background: #eff6ff; border: 1px solid #bfdbfe;
  border-radius: 6px; font-size: 10px; color: #1e40af; line-height: 1.6;
}
.mod-pre-reject-note strong { color: #1e3a8a; }

/* ── v2：操作按钮文案区 ── */
.mod-action-zone {
  border: 1px solid #fcd34d; border-radius: 8px; padding: 10px 12px;
  background: #fffbeb; display: grid; gap: 8px;
}
.mod-action-zone .az-title {
  font-size: 11px; font-weight: 800; color: #92400e;
  display: flex; align-items: center; gap: 6px;
}
.mod-action-zone .az-buttons { display: flex; gap: 8px; flex-wrap: wrap; }
.mod-action-zone .az-buttons .btn { font-size: 11px; padding: 5px 12px; }
.mod-action-zone .az-note { font-size: 9px; color: #b45309; line-height: 1.5; }

/* ── v2：复选框列 ── */
.mod-check-col {
  width: 36px; text-align: center;
}
.mod-check-col input[type="checkbox"] {
  width: 14px; height: 14px; cursor: pointer;
}
.mod-row-check { cursor: pointer; }

/* ── v2：批量操作条 ── */
.mod-batch-bar {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px;
  padding: 10px 14px; background: #eff6ff; border: 1px solid #bfdbfe;
  border-radius: 8px; margin-bottom: 8px;
}
.mod-batch-bar .mod-batch-info {
  font-size: 12px; font-weight: 750; color: #1e40af;
}
.mod-batch-bar .mod-batch-info strong {
  font-size: 14px; color: var(--brand);
}
.mod-batch-bar .mod-batch-actions {
  display: flex; gap: 6px; flex-wrap: wrap; align-items: center;
}
.mod-batch-bar .mod-batch-actions .btn {
  font-size: 11px; padding: 4px 10px;
}
.mod-batch-bar .mod-batch-actions .btn:disabled {
  opacity: .45; cursor: not-allowed;
}

/* 响应式 */
@media (max-width: 900px) {
  .mod-diversion-grid { grid-template-columns: 1fr; }
  .mod-evidence-grid { grid-template-columns: 1fr; }
  .mod-version-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   申诉区 · 两审终审（初审 / 终裁 / 费用与隔离联动）
   ═══════════════════════════════════════════════════════════ */
.mod-appeal-card .appeal-status.pending,
.mod-appeal-card .appeal-status.first_review,
.mod-appeal-card .appeal-status.awaiting_final { background: var(--amber-soft); color: #b45309; }
.mod-appeal-card .appeal-status.resolved { background: var(--green-soft); color: var(--green); }
.mod-appeal-card .appeal-status.upheld { background: var(--red-soft); color: var(--red); }
.mod-appeal-card .appeal-status.cancel { background: var(--surface-soft); color: var(--subtle); }

/* 类型 / 状态标签行 */
.ap-type-row { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.ap-type-tag {
  font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 4px;
  background: var(--brand-soft); color: var(--brand);
}
.ap-status-tag { font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 4px; }
.ap-status-tag.tone-warn { background: var(--amber-soft); color: #b45309; }
.ap-status-tag.tone-info { background: var(--brand-soft); color: var(--brand); }
.ap-status-tag.tone-good { background: var(--green-soft); color: var(--green); }
.ap-status-tag.tone-bad { background: var(--red-soft); color: var(--red); }
.ap-status-tag.tone-neutral { background: var(--surface-soft); color: var(--subtle); }

.ap-supp { background: #fafafa; }
.ap-rule-row { font-size: 11px; color: var(--muted); }

/* SLA 提示 */
.ap-sla {
  font-size: 10px; color: #b45309; background: var(--amber-soft);
  border-radius: 5px; padding: 5px 9px; line-height: 1.5;
}
/* 阶段标签（初审中） */
.ap-stage-tag {
  font-size: 11px; font-weight: 700; padding: 4px 9px; border-radius: 5px; display: inline-block;
}
.ap-stage-review { background: var(--brand-soft); color: var(--brand); }
/* 终裁提示 */
.ap-final-note { font-size: 11px; color: #991b1b; background: #fef2f2; border: 1px solid #fecaca; border-radius: 6px; padding: 6px 9px; line-height: 1.5; }

/* 表单 */
.ap-form { display: grid; gap: 7px; padding: 10px; background: #fff; border: 1px solid var(--line); border-radius: 7px; }
.ap-form-label { font-size: 11px; font-weight: 750; color: var(--muted); }
.ap-radio-row { font-size: 12px; color: var(--muted); display: flex; align-items: center; gap: 6px; cursor: pointer; }
.ap-radio-row input { margin: 0; }
.ap-textarea {
  width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 6px;
  padding: 8px 10px; font-size: 12px; font-family: inherit; color: var(--muted); resize: vertical;
}
.ap-textarea:focus { outline: none; border-color: var(--brand); }
.ap-form .appeal-actions { margin-top: 2px; }
/* 理由字数计数（label 行右侧胶囊） */
.ap-reason-label { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ap-reason-count {
  font-size: 10px; font-weight: 700; font-family: ui-monospace, monospace;
  color: #b45309; background: #fffbeb; border: 1px solid #fde68a;
  border-radius: 999px; padding: 1px 8px; white-space: nowrap;
}
.ap-reason-count.is-ok { color: #047857; background: #ecfdf5; border-color: #a7f3d0; }
/* 提交前缺项提示 */
.ap-submit-hint { font-size: 10px; color: #b45309; line-height: 1.5; }
.ap-submit-hint.is-ok { color: #047857; }
.ap-form .appeal-actions .btn[disabled] { cursor: not-allowed; opacity: .55; }

/* 初审 / 终裁意见卡片 */
.ap-opinion-card { border-radius: 7px; padding: 10px 12px; border: 1px solid var(--line); }
.ap-opinion-card.ap-first { background: #f0f9ff; border-color: #bae6fd; }
.ap-opinion-card.ap-final { background: #f5f3ff; border-color: #ddd6fe; }
.ap-opinion-head { font-size: 11px; color: var(--muted); display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; }
.ap-opinion-time { margin-left: auto; font-size: 10px; color: var(--subtle); font-family: ui-monospace, monospace; }
.ap-opinion-reco { font-size: 12px; margin-top: 4px; }
.ap-opinion-reason { font-size: 11px; color: var(--muted); margin-top: 4px; line-height: 1.6; }

/* 两审终审徽标 */
.ap-two-final-badge {
  display: inline-block; font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 5px;
  background: var(--green-soft); color: var(--green);
}
.ap-two-final-badge.ap-bad-badge { background: var(--red-soft); color: var(--red); }
.ap-two-final-badge.ap-cancel-badge { background: var(--surface-soft); color: var(--subtle); }

/* 费用 / 隔离联动卡片 */
.ap-linkage-card { border-radius: 7px; padding: 10px 12px; border: 1px solid; }
.ap-linkage-card.ap-good { background: #ecfdf5; border-color: #a7f3d0; }
.ap-linkage-card.ap-bad { background: #fef2f2; border-color: #fecaca; }
.ap-linkage-title { font-size: 12px; font-weight: 800; }
.ap-linkage-fee { font-size: 11px; color: var(--muted); margin-top: 4px; }
.ap-linkage-detail { font-size: 10px; color: var(--subtle); margin-top: 3px; line-height: 1.5; }

/* 规则摘要 */
.ap-rules-summary {
  font-size: 10px; color: var(--subtle); background: var(--surface-soft);
  border-radius: 6px; padding: 8px 10px; line-height: 1.6;
}
.ap-rules-summary-title { font-weight: 750; color: var(--muted); margin-bottom: 3px; }
.ap-rules-summary ul { margin: 0; padding-left: 16px; }
.ap-rules-done { font-size: 10px; font-weight: 700; color: var(--green); margin-left: 6px; }

/* 重置申诉数据按钮 */
.ap-reset-btn { margin-left: 8px; border-color: #fecaca; color: var(--red); }
.ap-reset-btn:hover { background: var(--red-soft); color: var(--red); }
/* Scoped moderation processing workspace */
.mod-technical-details { margin-top:12px; padding:0 12px; border:1px solid var(--line); border-radius:10px; background:var(--panel,#fff); }
.mod-technical-details > summary { cursor:pointer; padding:10px 2px; color:var(--muted); font-size:12px; }
.mod-appeal-search { display:flex; align-items:center; gap:8px; margin:12px 0; }
.mod-appeal-search label { font-size:12px; color:var(--muted); }
.mod-appeal-search input { min-width:280px; border:1px solid var(--line); border-radius:7px; padding:8px 10px; }
.mod-business-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; padding:10px; margin:10px 0; border:1px solid var(--line); border-radius:10px; background:#f8fafc; }
.mod-business-summary > div { display:grid; gap:3px; min-width:0; }
.mod-business-summary .summary-label { font-size:10px; color:var(--muted); }
.mod-business-summary strong { font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mod-business-summary .summary-next { grid-column:span 2; }
.mod-detail-drawer .drawer-foot { position:sticky; bottom:0; z-index:3; background:rgba(255,255,255,.96); border-top:1px solid var(--line); box-shadow:0 -4px 14px rgba(15,23,42,.08); }

.mod-appeal-intro {border:1px solid var(--line);border-radius:8px;padding:12px;display:grid;gap:8px;background:#fff;}
.mod-appeal-intro h3 {font-size:13px;margin:0;}
.mod-technical-details[open] {padding-bottom:12px;}
.mod-technical-details[open] > :not(summary) {margin-top:12px;}
.mod-business-summary {margin:0;}
.mod-business-summary .summary-next {grid-column:1/-1;border-top:1px solid var(--line);padding-top:7px;}
.mod-business-summary .summary-next strong {white-space:normal;}
.mod-detail-drawer .drawer-head {flex-shrink:0;}
.mod-detail-drawer .drawer-head h3 {font-size:15px;overflow-wrap:anywhere;}
.mod-detail-drawer .drawer-foot {flex-shrink:0;gap:6px;}
.mod-detail-drawer .drawer-foot .primary {margin-left:auto;}
#modAppealProcess {scroll-margin-top:12px;}
@media (max-height:760px) { .mod-detail-drawer .mod-object-media{min-height:160px;} .mod-detail-drawer .mod-object-media img,.mod-detail-drawer .mod-object-media video{max-height:200px;} }
