/* 单人排查页 —— 复用 dict.css(顶栏/按钮/登录门)+ flow.css(对手方行/风险标/两栏),
 * 本文件只补:口径横幅、结果分块 A/B、兼职嫌疑空状态卡片。纯本机、无 CDN。 */

/* ---- 口径横幅(常驻,琥珀色,与外部风险页 pt-banner 同族)---- */
.pa-disclaimer {
  max-width: 1400px; margin: 14px auto 0; padding: 11px 16px;
  background: #fffbeb; border: 1px solid #f5d98b; border-radius: 8px;
  font-size: 12.5px; line-height: 1.6; color: #7a5b00;
}
.pa-disclaimer b { color: #92400e; }

/* ---- 查询条:复用 flow.css 的 .flow-bar,宽度对齐本页 ---- */
main { max-width: 1400px; margin: 0 auto; padding: 0 16px 40px; }

/* ---- 结果分块 A / B ---- */
.pa-block {
  margin-top: 22px; padding-top: 6px; border-top: 1px solid #eef0f2;
}
.pa-block-title {
  font-size: 15px; font-weight: 700; color: #1f2328; margin: 10px 0 8px;
}
.pa-legend { font-size: 12.5px; line-height: 1.7; margin-bottom: 10px; }
.pa-legend-note { display: inline-block; margin-top: 2px; }

/* ---- 块 B 空状态横幅 ---- */
.pa-empty-banner {
  display: flex; align-items: flex-start; gap: 12px;
  background: #f6f8fa; border: 1px dashed #cbd5e1; border-radius: 8px;
  padding: 14px 16px; margin-bottom: 12px;
}
.pa-empty-icon { font-size: 22px; line-height: 1; color: #94a3b8; }
.pa-empty-banner b { color: #334155; }
.pa-empty-banner .muted { margin-top: 4px; font-size: 12.5px; line-height: 1.6; }

/* ---- 兼职嫌疑字段卡片(v1 空:标签可见、值占位)---- */
.pa-suspect-card {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px; background: #e6e8eb;
  border: 1px solid #e6e8eb; border-radius: 10px; overflow: hidden;
}
.pa-field {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  background: #fff; padding: 12px 16px;
}
.pa-suspect-card.is-empty .pa-field { background: #fbfcfd; }
.pa-k { font-size: 13px; color: #5b636e; }
.pa-v { font-size: 14px; font-weight: 600; color: #1f2328; font-variant-numeric: tabular-nums; }
.pa-suspect-card.is-empty .pa-v { color: #b6bcc4; font-weight: 400; }

@media (max-width: 640px) {
  .pa-suspect-card { grid-template-columns: 1fr; }
}

/* ---- 个人排查:左竖排按钮 + 右侧面板切换 ---- */
.pa-layout { display:flex; gap:18px; max-width:1400px; margin:16px auto 0; align-items:flex-start; }
.pa-side { flex:0 0 168px; display:flex; flex-direction:column; gap:8px; position:sticky; top:14px; }
.pa-navbtn { text-align:left; padding:11px 14px; border:1px solid #d4d9e2; border-radius:8px;
  background:#fff; color:#1f2328; font-size:14px; line-height:1.3; cursor:pointer; transition:.12s; }
.pa-navbtn:hover { border-color:#94a3b8; }
.pa-navbtn.on { background:#eaf0ff; border-color:#2f6bff; color:#2f6bff; font-weight:600; }
.pa-main { flex:1 1 auto; min-width:0; }
.pa-view .pa-legend { margin-top:12px; }
@media (max-width:640px){
  .pa-layout { flex-direction:column; margin-top:12px; }
  .pa-side { flex:none; flex-direction:row; flex-wrap:wrap; position:static; }
  .pa-navbtn { flex:1 1 auto; text-align:center; }
}

/* ---- 导入入口(链接与功能按钮同款) ---- */
a.pa-navbtn-link { text-decoration:none; display:block; box-sizing:border-box; color:#1f2328; }
a.pa-navbtn-link:hover { border-color:#94a3b8; }
/* ---- 深追结果:左右两栏卡片 ---- */
.tr-cols { display:flex; gap:0; margin-top:12px; align-items:stretch; }
.tr-col { flex:1 1 0; min-width:0; padding:0 16px; }
.tr-up { border-right:2px solid #e2e8f0; }
.tr-col-head { font-weight:700; font-size:14px; margin-bottom:10px; padding:7px 10px; border-radius:6px; }
.tr-up .tr-col-head { background:#eef6ff; color:#1d4ed8; }
.tr-down .tr-col-head { background:#fff7ed; color:#b45309; }
.tr-hop { margin-bottom:10px; }
.tr-hop-title { font-size:12px; color:#64748b; margin:6px 0; font-weight:600; }
.tr-card { border:1px solid #e2e8f0; border-radius:10px; padding:10px 12px; margin-bottom:8px; background:#fff; }
.tr-card.tr-red { border-color:#fecaca; background:#fef2f2; }
.tr-card.tr-orange { border-color:#fed7aa; background:#fff7ed; }
.tr-card.tr-green { border-color:#bbf7d0; background:#f0fdf4; }
.tr-card-hop { font-size:11px; color:#94a3b8; }
.tr-card-k { font-size:12px; color:#64748b; margin-top:3px; }
.tr-addr { font-family:monospace; font-size:13px; cursor:pointer; word-break:break-all; color:#1d4ed8; }
.tr-addr:hover { text-decoration:underline; }
.tr-row { font-size:13px; margin-top:4px; color:#1f2328; }
.tr-empty { color:#94a3b8; font-size:12px; padding:4px 0; }
@media (max-width:720px){ .tr-cols{flex-direction:column;} .tr-up{border-right:none;border-bottom:2px solid #e2e8f0;padding-bottom:10px;} }

/* ---- 深追 · 横向链路流向图 ---- */
.tf-sec { background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:14px 16px; margin-top:14px; }
.tf-sec-h { font-weight:700; font-size:14px; margin-bottom:4px; padding:6px 10px; border-radius:6px; display:inline-block; }
.tf-up .tf-sec-h { background:#eef6ff; color:#1d4ed8; }
.tf-down .tf-sec-h { background:#fff7ed; color:#b45309; }
.tf-body { margin-top:8px; }
.tf-chain { display:flex; align-items:stretch; overflow-x:auto; padding:10px 0; border-top:1px dashed #eef0f2; }
.tf-chain:first-child { border-top:none; }
.tf-box { flex:0 0 auto; min-width:150px; max-width:210px; border:1px solid #e2e8f0; border-radius:10px; padding:8px 11px; background:#fbfcfe; }
.tf-box-root { background:#fff; border-color:#16a34a; border-width:2px; }
.tf-box-red { background:#fef2f2; border-color:#fecaca; }
.tf-box-orange { background:#fff7ed; border-color:#fed7aa; }
.tf-box-green { background:#f0fdf4; border-color:#bbf7d0; }
.tf-hop { font-size:11px; color:#94a3b8; margin-bottom:2px; }
.tf-box-root .tf-hop { color:#15803d; }
.tf-addr { font-family:monospace; font-size:12.5px; color:#1d4ed8; cursor:pointer; white-space:nowrap; }
.tf-box-root .tf-addr { color:#166534; }
.tf-addr:hover { text-decoration:underline; }
.tf-tag { display:inline-block; font-size:10.5px; padding:1px 7px; border-radius:20px; margin-top:5px; background:#eef1f6; color:#5b636e; }
.tf-tag.tf-red{background:#fee2e2;color:#b91c1c;} .tf-tag.tf-orange{background:#ffedd5;color:#b45309;}
.tf-tag.tf-green{background:#dcfce7;color:#15803d;} .tf-tag.tf-root{background:#dcfce7;color:#15803d;}
.tf-arrow { flex:0 0 auto; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0 8px; min-width:106px; }
.tf-amt { font-size:12px; font-weight:700; color:#0f766e; white-space:nowrap; }
.tf-amt small { font-weight:400; color:#94a3b8; }
.tf-line { color:#64748b; font-size:16px; line-height:1; }
.tf-time { font-size:11px; color:#94a3b8; white-space:nowrap; margin-top:1px; }
.tf-more { display:inline-block; margin:8px 0 2px; font-size:12.5px; color:#1d4ed8; cursor:pointer; background:#eff6ff; border:1px solid #bfdbfe; border-radius:20px; padding:3px 14px; }
.tf-more:hover { background:#dbeafe; }
.tf-empty { color:#94a3b8; font-size:13px; padding:6px 0; }

/* ---- 嫌疑一览 ---- */
.ov-filter{margin:4px 0 10px;font-size:13px;}
.ov-fbtn{display:inline-block;margin-left:8px;padding:3px 12px;border:1px solid #d4d9e2;border-radius:20px;cursor:pointer;color:#1f2328;}
.ov-fbtn:hover{border-color:#94a3b8;}
.ov-fbtn.on{background:#eaf0ff;border-color:#2f6bff;color:#2f6bff;font-weight:600;}
.ov-table{width:100%;border-collapse:collapse;font-size:13px;}
.ov-table th{background:#f1f5f9;color:#334155;text-align:left;padding:8px 10px;border-bottom:2px solid #e2e8f0;font-size:12px;white-space:nowrap;}
.ov-table td{padding:8px 10px;border-bottom:1px solid #eef0f2;vertical-align:top;}
.ov-addr{font-family:monospace;color:#1d4ed8;cursor:pointer;}
.ov-addr:hover{text-decoration:underline;}
.tf-box-yellow{background:#fefce8;border-color:#fde68a;}
.tf-tag.tf-yellow{background:#fef9c3;color:#a16207;}

/* ---- 嫌疑一览 · 卡片 ---- */
.ov-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 8px;font-size:13px;}
.ov-lab{color:#8a93a3;margin-right:2px;}
.ov-chip{padding:3px 12px;border:1px solid #d4d9e2;border-radius:20px;cursor:pointer;color:#1f2328;}
.ov-chip:hover{border-color:#94a3b8;}
.ov-chip.on{background:#eaf0ff;border-color:#2f6bff;color:#2f6bff;font-weight:600;}
.ov-rows{display:flex;flex-direction:column;gap:10px;}
.ov-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:11px 14px;border-left-width:5px;display:grid;grid-template-columns:118px 74px 168px 60px 158px 150px minmax(150px,1fr) 116px;align-items:center;gap:14px;}
.ov-jz{border-left-color:#f59e0b;} .ov-yc{border-left-color:#dc2626;} .ov-ch{border-left-color:#9ca3af;}
.ov-badge{flex:0 0 auto;font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;white-space:nowrap;}
.ov-b-jz{background:#fef3c7;color:#b45309;} .ov-b-yc{background:#fee2e2;color:#b91c1c;} .ov-b-ch{background:#f1f5f9;color:#64748b;}
.ov-f{display:flex;flex-direction:column;gap:1px;}
.ov-fk{font-size:10.5px;color:#8a93a3;}
.ov-fv{font-size:13px;color:#1f2430;}
.ov-v-jz{color:#b45309;font-weight:600;} .ov-v-yc{color:#b91c1c;font-weight:600;} .ov-v-ch{color:#64748b;}
.ov-who{flex:1 1 170px;min-width:150px;}
.ov-card .ov-f{min-width:0;}
.ov-card .ov-fv{white-space:normal;word-break:break-word;overflow-wrap:anywhere;}
.ov-badge{white-space:normal;line-height:1.3;text-align:center;}
.tf-vchain{display:flex;flex-direction:column;width:280px;border:1px solid #eef0f2;border-radius:8px;padding:8px;background:#fafbfd;}
.tf-vchain .tf-box{min-width:0;max-width:none;width:100%;margin:0;}
.tf-varrow{display:flex;flex-direction:column;align-items:center;padding:4px 0;line-height:1.25;}
.tf-varrow .g{color:#64748b;font-size:15px;}
.tf-varrow .a{font-weight:700;color:#0f766e;font-size:12px;}
.tf-varrow .a small{font-weight:400;color:#94a3b8;}
.tf-varrow .t{color:#94a3b8;font-size:11px;}
.tg-row{display:grid;gap:3px 6px;align-items:stretch;margin-bottom:8px;}
.tg-head{margin-bottom:6px;}
.tg-h{font-size:12px;color:#475569;font-weight:600;padding:3px 4px;text-align:center;background:#eef2f7;border-radius:5px;}
.tg-cellwrap{display:flex;align-items:center;min-width:0;}
.tg-arrow{flex:0 0 auto;color:#94a3b8;font-size:13px;padding:0 3px;}
.tg-cell{flex:1 1 auto;min-width:0;border:1px solid #e2e8f0;border-radius:8px;padding:6px 8px;background:#fbfcfe;}
.tg-box-root{background:#fff;border:2px solid #16a34a;}
.tg-box-red{background:#fef2f2;border-color:#fecaca;}
.tg-box-orange{background:#fff7ed;border-color:#fed7aa;}
.tg-box-yellow{background:#fefce8;border-color:#fde68a;}
.tg-box-green{background:#f0fdf4;border-color:#bbf7d0;}
.tg-addr{font-family:monospace;font-size:12px;color:#1d4ed8;cursor:pointer;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tg-box-root .tg-addr{color:#166534;}
.tg-addr:hover{text-decoration:underline;}
.tg-tagline{margin-top:3px;}
.tg-meta{font-size:11px;color:#475569;margin-top:3px;line-height:1.3;}
.tg-meta b{color:#0f766e;}
.tg-t{color:#94a3b8;}


/* ===== deep-trace staircase (jieti) ===== */
.tf-body{ margin-top:8px; }
.tf-flow{ display:flex; flex-wrap:nowrap; align-items:stretch; margin:0 0 7px; }
.tg-cellwrap{ display:flex; align-items:stretch; flex:0 0 auto; }
.tg-arrow{ display:flex; align-items:center; justify-content:center; width:20px; flex:0 0 auto; color:#94a3b8; font-size:15px; font-weight:700; }
.tg-cell{ width:98px; flex:0 0 auto; border:1px solid #e2e8f0; border-radius:8px; padding:6px 7px; background:#fff; overflow:hidden; }
.tg-hop{ font-size:10px; color:#94a3b8; margin-bottom:2px; white-space:nowrap; }
.tg-addr{ font-family:monospace; font-size:11.5px; color:#1d4ed8; cursor:pointer; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tg-addr:hover{ text-decoration:underline; }
.tg-tagline{ margin-top:3px; }
.tf-tag{ display:inline-block; font-size:10px; padding:1px 6px; border-radius:16px; background:#eef1f6; color:#5b636e; white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.tf-tag.tf-root{ background:#dcfce7; color:#15803d; }
.tf-tag.tf-red{ background:#fee2e2; color:#b91c1c; }
.tf-tag.tf-orange{ background:#ffedd5; color:#b45309; }
.tf-tag.tf-yellow{ background:#fef9c3; color:#a16207; }
.tf-tag.tf-green{ background:#dcfce7; color:#15803d; }
.tf-tag.tf-gray{ background:#eef1f6; color:#5b636e; }
.tg-meta{ font-size:10px; color:#0f766e; margin-top:3px; line-height:1.35; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tg-meta b{ color:#0f766e; }
.tg-t{ color:#94a3b8; }
.tg-box-root{ border:1.5px solid #16a34a; background:#f0fdf4; }
.tg-box-red{ border-color:#fca5a5; background:#fef2f2; }
.tg-box-orange{ border-color:#fdba74; background:#fff7ed; }
.tg-box-yellow{ border-color:#fde047; background:#fefce8; }
.tg-box-green{ border-color:#86efac; background:#f0fdf4; }
.tg-box-gray{ border-color:#e2e8f0; background:#ffffff; }
.tf-sec{ background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:14px 16px; margin-bottom:16px; }
.tf-sec-h{ font-weight:700; font-size:14px; margin:0 0 10px; }
.tf-up .tf-sec-h{ color:#1d4ed8; }
.tf-down .tf-sec-h{ color:#b45309; }
.tf-empty{ color:#94a3b8; font-size:13px; padding:6px 2px; }
.tf-more{ margin-top:6px; font-size:12.5px; color:#1d4ed8; cursor:pointer; display:inline-block; background:#eff6ff; border:1px solid #bfdbfe; border-radius:16px; padding:2px 12px; }
.tf-more:hover{ background:#dbeafe; }

/* ===== deep-trace staircase v2: single anchor + path rows ===== */
.tf-graph{ display:flex; align-items:stretch; gap:0; }
.tf-anchor{ flex:0 0 auto; align-self:center; position:relative; padding-right:16px; }
.tf-anchor::after{ content:""; position:absolute; right:0; top:50%; width:16px; height:2px; background:#cbd5e1; }
.tf-paths{ flex:1 1 auto; display:flex; flex-direction:column; gap:8px; border-left:2px solid #cbd5e1; padding-left:16px; }
.tf-morewrap{ display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.tf-path{ position:relative; display:flex; align-items:center; gap:10px; }
.tf-path::before{ content:""; position:absolute; left:-16px; top:50%; width:14px; height:2px; background:#cbd5e1; }
.tf-plabel{ flex:0 0 auto; width:84px; font-size:10.5px; color:#64748b; line-height:1.35; }
.tf-plabel b{ display:block; color:#334155; font-weight:700; font-size:11.5px; }
.tf-flow{ display:flex; flex-wrap:nowrap; align-items:stretch; margin:0; }

.tf-empty b{ color:#475569; font-size:13.5px; }

/* ===== deep-trace v3: compact horizontal node cards + tighten width ===== */
.tf-sec{ width:fit-content; max-width:100%; }
.tf-graph{ display:flex; align-items:stretch; width:fit-content; max-width:100%; }
.tf-paths{ flex:0 0 auto; display:flex; flex-direction:column; gap:7px; border-left:2px solid #cbd5e1; padding-left:14px; }
.tf-path{ position:relative; display:flex; align-items:center; gap:8px; }
.tf-anchor{ padding-right:14px; }
.tf-plabel{ flex:0 0 auto; width:114px; font-size:10px; color:#94a3b8; line-height:1.3; }
.tf-plabel b{ display:block; color:#334155; font-weight:700; font-size:11.5px; margin-bottom:1px; }
.tg-cellwrap{ display:flex; align-items:stretch; flex:0 0 auto; }
.tg-arrow{ width:18px; font-size:14px; }
.tg-cell{ width:158px; min-height:80px; flex:0 0 auto; border:1px solid #e2e8f0; border-radius:8px; padding:7px 10px; background:#fff; overflow:hidden; display:flex; flex-direction:column; justify-content:center; }
.tg-hop{ font-size:10px; color:#94a3b8; margin:0 0 1px; line-height:1.2; }
.tg-addr{ font-family:monospace; font-size:12.5px; color:#1d4ed8; cursor:pointer; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.3; }
.tg-tagline{ margin:2px 0 0; }
.tf-tag{ font-size:9.5px; padding:0 6px; line-height:1.55; }
.tg-meta{ font-size:10px; margin-top:3px; line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tg-meta b{ font-size:12.5px; color:#0f766e; font-weight:700; }
.tg-t{ color:#94a3b8; font-size:10px; margin-left:4px; }

/* ===== deep-trace v4: sane container width + top unified anchor ===== */
.tf-sec{ width:auto; max-width:1320px; }
.tf-graph{ display:flex; flex-direction:column; gap:10px; align-items:flex-start; width:auto; max-width:100%; }
.tf-anchor{ align-self:flex-start; display:flex; align-items:center; gap:10px; padding:8px 12px; background:#f0fdf4; border:1.5px solid #16a34a; border-radius:8px; }
.tf-anchor::after{ display:none; }
.tf-anchor-lab{ font-size:11px; color:#15803d; font-weight:700; white-space:nowrap; }
.tf-anchor-addr{ font-size:13px !important; font-weight:600; color:#1d4ed8; }
.tf-paths{ align-self:flex-start; padding-left:16px; }
#pa-addr{ max-width:600px; }
