.visitor-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:24px max(24px, calc((100% - 1180px) / 2)); background:#10243d; }
.visitor-header .brand { padding:0; }
.visitor-badge { color:#7ee1cd; border:1px solid #38616b; border-radius:24px; padding:7px 13px; font-size:12px; white-space:nowrap; }
.visitor-main { max-width:1228px; margin:auto; padding:28px 24px; }
.visitor .hero { gap:24px; }
.visitor h1 { font-size:clamp(28px, 3.3vw, 40px); }
.visitor .metric small span { display:inline; font:inherit; color:inherit; }
.visitor-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:24px 0; }
.visitor-panel { padding:25px; }
.visitor-panel h2 { color:#18364f; font-size:22px; margin-bottom:8px; }
.panel-copy { color:#6c8193; font-size:13px; line-height:1.6; }
.visitor dl { margin:0; }
.visitor dl > div { display:flex; align-items:baseline; justify-content:space-between; gap:20px; border-top:1px solid #e9eef3; padding:13px 0; }
.visitor dt { color:#526c81; font-size:14px; }
.visitor dd { color:#16394f; font-weight:700; font-variant-numeric:tabular-nums; margin:0; text-align:right; }
.visitor-runs { display:grid; grid-template-columns:1fr 1.5fr; gap:30px; }
.visitor-note { margin:28px 0 0; color:#647e90; font-size:13px; line-height:1.8; }
.visitor-note strong { color:#30546a; }
.visitor-note p { margin:5px 0; }
.visitor footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; line-height:1.8; }
.visitor footer a { color:#365b74; }
.visitor [hidden] { display:none !important; }
.visitor-nav { display:flex; gap:24px; margin-left:auto; margin-right:24px; }
.visitor-nav a { color:#c4d8e9; text-decoration:none; font-size:13px; }
.visitor-nav a:hover { color:#7ee1cd; }
.visitor-count { color:#637e91; font-size:12px; white-space:nowrap; }
.visitor-filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin:20px 0 14px; }
.visitor-filters label { display:grid; gap:7px; color:#62798b; font-size:12px; }
.visitor-filters select { min-width:155px; max-width:100%; padding:10px 28px 10px 12px; border:1px solid #d4e0ea; border-radius:8px; background:#fff; color:#213f56; }
.visitor-findings { display:grid; gap:12px; }
.visitor-finding { border:1px solid #dce6ee; border-left:4px solid #839daf; border-radius:12px; background:white; overflow:hidden; }
.visitor-finding[data-risk=high] { border-left-color:#d99c36; }
.visitor-finding[data-risk=critical] { border-left-color:#cd4d5c; }
.visitor-finding[data-risk=medium] { border-left-color:#1596aa; }
.visitor-finding summary { cursor:pointer; padding:20px; list-style:none; }
.visitor-finding summary::-webkit-details-marker { display:none; }
.visitor-finding summary::after { content:'展开检测与处置说明 ＋'; display:block; margin-top:14px; font-size:12px; color:#15806f; }
.visitor-finding[open] summary::after { content:'收起说明 −'; }
.visitor-record-heading { display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
.visitor-record-heading h3 { flex:1; min-width:180px; margin:0; color:#213f56; font-size:16px; overflow-wrap:anywhere; }
.visitor-tag { display:inline-block; font-size:12px; padding:5px 9px; border-radius:6px; background:#edf3f7; color:#536e82; white-space:nowrap; }
.visitor-tag.high { background:#fff3db; color:#855909; }
.visitor-tag.critical,.visitor-tag.failed { background:#feeeee; color:#a03543; }
.visitor-tag.success,.visitor-tag.resolved { background:#eaf7f2; color:#197458; }
.visitor-tag.partial,.visitor-tag.investigating { background:#fff3db; color:#855909; }
.visitor-meta { display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:12px; color:#6e8495; font-size:12px; line-height:1.7; }
.visitor-explanation { border-top:1px solid #e6edf2; padding:20px; background:#fafcfe; }
.visitor-explanation p { font-size:13px; color:#536e82; line-height:1.85; margin-bottom:12px; }
.visitor-explanation p:last-child { margin-bottom:0; }
.visitor-explanation strong { color:#24465e; }
.visitor-caption { color:#6e8495; font-size:12px; line-height:1.8; margin:12px 0; }
.visitor-task-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.visitor-task { padding:23px; }
.visitor-task h3 { font-size:16px; margin:14px 0; }
.visitor-task dl > div { font-size:12px; padding:10px 0; }
.visitor-task dt,.visitor-task dd { font-size:12px; }
.visitor-timeline { list-style:none; padding:0 24px; margin:0; }
.visitor-run { display:grid; grid-template-columns:180px minmax(0,1fr); gap:24px; padding:22px 0; border-bottom:1px solid #e7eef3; }
.visitor-run:last-child { border-bottom:0; }
.visitor-run time { color:#6d8395; font-size:12px; line-height:1.8; }
.visitor-run h3 { display:inline; font-size:14px; margin-right:12px; color:#294960; }
.visitor-run p { margin:10px 0 0; color:#627b8d; font-size:13px; line-height:1.8; }
.visitor-aggregates > summary { cursor:pointer; padding:18px 22px; background:#eaf2f8; border-radius:10px; color:#31556b; font-size:14px; }
.visitor .empty { grid-column:1 / -1; line-height:1.8; }
@media (max-width:700px) {
  .visitor-main { padding:20px 16px; }
  .visitor-header { padding:20px 16px; }
  .visitor .hero { align-items:flex-start; flex-direction:column; }
  .visitor .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .visitor-grid, .visitor-runs { grid-template-columns:1fr; }
  .visitor-panel { padding:20px; }
  .visitor .topline { flex-direction:column; gap:8px; }
  .visitor-header { flex-wrap:wrap; }
  .visitor-nav { order:3; width:100%; margin:0; gap:22px; }
  .visitor-task-grid { grid-template-columns:1fr; }
  .visitor-run { grid-template-columns:1fr; gap:8px; }
  .visitor-filters label { flex:1; min-width:135px; }
  .visitor-filters select { min-width:0; width:100%; }
  .visitor-record-heading h3 { flex-basis:100%; }
  .visitor .section-heading { align-items:start; flex-direction:column; gap:8px; }
}
