/* v20260811: removed .whoer-scope variable overrides so detection blocks inherit active theme; theme.css now re-asserts them */
:root {
  --bg: #0b1020;
  --bg-soft: #121933;
  --panel: #161f3d;
  --panel-2: #1c2750;
  --line: #2a3566;
  --text: #e8ecf8;
  --muted: #97a3c9;
  --brand: #4f7cff;
  --brand-2: #7c5cff;
  --green: #2fd47a;
  --yellow: #ffcc4d;
  --orange: #ff8a3d;
  --red: #ff5468;
  --radius: 14px;
  --shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: radial-gradient(1200px 600px at 70% -10%, #1a2350 0%, var(--bg) 55%);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", Roboto, Helvetica, Arial, sans-serif;
  min-height: 100vh;
}

a { color: var(--brand); text-decoration: none; }
a:hover { text-decoration: underline; }
button { font-family: inherit; cursor: pointer; }
.hidden { display: none !important; }

/* ---------- 公共布局 ---------- */
.wrap { max-width: 1100px; margin: 0 auto; padding: 24px 18px 60px; }
.topbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 22px; border-bottom: 1px solid var(--line);
  background: rgba(11, 16, 32, 0.6); backdrop-filter: blur(8px);
  position: sticky; top: 0; z-index: 20;
}
.brand { font-weight: 800; font-size: 18px; letter-spacing: .5px; display: flex; align-items: center; gap: 10px; }
.brand .dot { width: 10px; height: 10px; border-radius: 50%; background: linear-gradient(135deg, var(--brand), var(--brand-2)); box-shadow: 0 0 14px var(--brand); }
.topbar nav a { margin-left: 18px; color: var(--muted); font-size: 14px; }
.topbar nav a.active { color: var(--text); }

/* ---------- 查询页 ---------- */
.hero { text-align: center; padding: 48px 16px 24px; }
.hero h1 { font-size: 34px; margin: 0 0 8px; background: linear-gradient(135deg, #fff, #aab6ff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero p { color: var(--muted); margin: 0; }
.searchbox { display: flex; gap: 10px; max-width: 620px; margin: 22px auto 0; }
.searchbox input {
  flex: 1; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--line);
  background: var(--panel); color: var(--text); font-size: 16px; outline: none;
}
.searchbox input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(79,124,255,.25); }
.btn {
  border: none; border-radius: 12px; padding: 12px 20px; font-size: 15px; font-weight: 700;
  color: #fff; background: linear-gradient(135deg, var(--brand), var(--brand-2));
  transition: transform .08s ease, opacity .2s;
}
.btn:hover { opacity: .92; }
.btn:active { transform: translateY(1px); }
.btn.ghost { background: var(--panel-2); border: 1px solid var(--line); }
.btn.danger { background: var(--red); }
.btn.sm { padding: 7px 12px; font-size: 13px; }

.myip { text-align: center; color: var(--muted); margin-top: 14px; font-size: 14px; }
.myip b { color: var(--text); }

/* ---------- 结果卡片 ---------- */
.result { max-width: 760px; margin: 26px auto 0; }
.card {
  background: linear-gradient(180deg, var(--panel), var(--bg-soft));
  border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow);
}
.gauge { display: flex; align-items: center; gap: 22px; }
.gauge .score {
  width: 110px; height: 110px; border-radius: 50%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; flex: 0 0 auto; border: 8px solid var(--line);
}
.gauge .score b { font-size: 34px; line-height: 1; }
.gauge .score span { font-size: 12px; color: var(--muted); }
.gauge .meta h2 { margin: 0 0 4px; font-size: 22px; }
.gauge .meta .lvl { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 13px; font-weight: 700; }
.tagrow { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 8px; }
.tag { font-size: 12px; padding: 4px 10px; border-radius: 999px; background: var(--panel-2); border: 1px solid var(--line); color: var(--muted); }

.kv { margin-top: 18px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 18px; }
.kv .row { display: flex; justify-content: space-between; border-bottom: 1px dashed var(--line); padding: 8px 0; font-size: 14px; }
.kv .row .k { color: var(--muted); }
.kv .row .v { font-weight: 600; text-align: right; }

.notice { margin-top: 16px; padding: 12px 14px; border-radius: 10px; font-size: 14px; }
.notice.err { background: rgba(255,84,104,.12); border: 1px solid rgba(255,84,104,.4); color: #ffb3bf; }
.notice.warn { background: rgba(255,204,77,.1); border: 1px solid rgba(255,204,77,.35); color: #ffe39a; }

/* ---------- 后台 ---------- */
.admin { display: grid; grid-template-columns: 220px 1fr; min-height: 100vh; }
.side {
  background: linear-gradient(180deg, #0e1530, #0b1020); border-right: 1px solid var(--line);
  padding: 18px 12px; display: flex; flex-direction: column; gap: 4px;
}
.side .logo { font-weight: 800; padding: 6px 10px 16px; font-size: 16px; }
.side a {
  color: var(--muted); padding: 10px 12px; border-radius: 10px; font-size: 14px; display: block;
}
.side a:hover { background: var(--panel); text-decoration: none; color: var(--text); }
.side a.active { background: var(--panel-2); color: #fff; }
.side .foot { margin-top: auto; padding: 12px; font-size: 12px; color: var(--muted); }
.side .foot button { width: 100%; margin-top: 8px; }

.admin-main { padding: 22px 26px; overflow: auto; }
.page-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.page-head h1 { font-size: 22px; margin: 0; }

.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 22px; }
.stat { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; }
.stat .n { font-size: 28px; font-weight: 800; }
.stat .l { color: var(--muted); font-size: 13px; margin-top: 4px; }

.panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; margin-bottom: 18px; }
.panel h3 { margin: 0 0 14px; font-size: 16px; }

.bars { display: flex; flex-direction: column; gap: 10px; }
.bar { display: grid; grid-template-columns: 120px 1fr 50px; align-items: center; gap: 10px; font-size: 13px; }
.bar .track { background: var(--panel-2); border-radius: 999px; height: 12px; overflow: hidden; }
.bar .fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--brand), var(--brand-2)); }
.bar .val { text-align: right; color: var(--muted); }
.bars.cols2 { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }

table { width: 100%; border-collapse: collapse; font-size: 13px; }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); }
th { color: var(--muted); font-weight: 600; }
tr:hover td { background: rgba(255,255,255,.02); }

.form { display: grid; gap: 14px; max-width: 560px; }
.form label { font-size: 13px; color: var(--muted); display: block; margin-bottom: 6px; }
.form input[type=text], .form input[type=password], .form input[type=number], .form select, .form textarea {
  width: 100%; padding: 11px 12px; border-radius: 10px; border: 1px solid var(--line);
  background: var(--bg-soft); color: var(--text); font-size: 14px; outline: none;
}
.form input:focus, .form select:focus, .form textarea:focus { border-color: var(--brand); }
.form .hint { font-size: 12px; color: var(--muted); }
.switch { display: flex; align-items: center; gap: 10px; }
.switch input { width: 18px; height: 18px; }

.toolbar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; align-items: center; }
.toolbar input, .toolbar select { padding: 9px 11px; border-radius: 9px; border: 1px solid var(--line); background: var(--bg-soft); color: var(--text); font-size: 13px; }

.login { min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.login .card { width: 360px; }
.login h2 { margin: 0 0 4px; }
.login .sub { color: var(--muted); font-size: 13px; margin-bottom: 18px; }

.pill { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.pill.clean { background: rgba(47,212,122,.15); color: var(--green); }
.pill.safe { background: rgba(79,124,255,.15); color: #9db4ff; }
.pill.warn { background: rgba(255,204,77,.15); color: var(--yellow); }
.pill.high { background: rgba(255,84,104,.15); color: var(--red); }

.empty { color: var(--muted); text-align: center; padding: 30px; }

/* ---------- 检测结果 · 点击类目 ---------- */
.cats { margin-top: 22px; display: flex; flex-direction: column; gap: 12px; }
.cat { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--bg-soft); }
.cat-h { display: flex; align-items: center; gap: 10px; padding: 14px 16px; cursor: pointer; user-select: none; }
.cat-h:hover { background: var(--panel); }
.cat-h .chev { transition: transform .15s ease; color: var(--muted); font-size: 13px; display: inline-block; }
.cat.open .cat-h .chev { transform: rotate(90deg); }
.cat-h .ct { font-weight: 700; font-size: 15px; }
.cat-h .cs { color: var(--muted); font-size: 13px; margin-left: auto; text-align: right; padding-left: 12px; }
.cat-b { display: none; padding: 0 16px 16px; }
.cat.open .cat-b { display: block; }
.cat-b .kv { margin-top: 0; }

@media (max-width: 820px) {
  .admin { grid-template-columns: 1fr; }
  .side { flex-direction: row; overflow-x: auto; }
  .side .foot { display: none; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .kv { grid-template-columns: 1fr; }
  .bars.cols2 { grid-template-columns: 1fr; }
}
.detect-wrap{margin-top:4px}
      .layout-sidebar{display:flex;align-items:flex-start;gap:18px}
      .layout-sidebar .detnav{position:sticky;top:12px;z-index:10;flex:0 0 236px;align-self:flex-start;display:flex;flex-direction:column;gap:2px;padding:10px;background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:14px;max-height:calc(100vh - 28px);overflow-y:auto}
      .layout-sidebar .detpanes{flex:1;min-width:0}
      .layout-topnav .detnav{display:flex;flex-wrap:wrap;gap:8px;padding:10px;background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:14px;position:sticky;top:12px;z-index:10}
      .layout-topnav .det-tab{width:auto}
      .layout-topnav .detpanes{margin-top:14px}
      .layout-tabs .detnav{display:flex;flex-wrap:wrap;gap:0;border-bottom:2px solid var(--line,#2a3566);margin-bottom:14px}
      .layout-tabs .det-tab{width:auto;border-radius:0;border-bottom:2px solid transparent;margin-bottom:-2px}
      .layout-tabs .det-tab.active{border-bottom-color:var(--brand,#4f7cff);background:transparent;color:#fff}
      .all-head{margin:6px 0 12px}
      .all-title{font-size:16px;font-weight:700}
      .all-sub{font-size:12.5px;color:var(--muted,#97a3c9);margin-top:2px}
      .all-grid{display:grid;gap:14px}
      /* 网格类（grid / cards / dashboard / compact / split / minimal / tiles / wide / spotlight / magazine） */
      .layout-grid .all-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
      .layout-cards .all-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:20px}
      .layout-cards .det-card{border-radius:18px}
      .layout-compact .all-grid{grid-template-columns:1fr;gap:8px}
      .layout-compact .det-card-b{padding:8px 12px;font-size:13px}
      .layout-dashboard .all-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
      .layout-dashboard .det-card{border-color:rgba(79,124,255,.35)}
      .layout-accordion .all-grid{display:block}
      .layout-accordion .det-card{margin-bottom:8px}
      .layout-accordion .det-card-h{cursor:pointer}
      .layout-accordion .ac-toggle{margin-left:auto;color:var(--muted,#97a3c9);font-size:13px}
      .layout-split .all-grid{grid-template-columns:1fr 1fr;gap:18px}
      .layout-minimal .all-grid{grid-template-columns:1fr 1fr;gap:18px;max-width:980px;margin:0 auto}
      .layout-tiles .all-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
      .layout-tiles .det-card-b{padding:10px 12px;font-size:13px}
      .layout-wide .all-grid{grid-template-columns:1fr 1fr;gap:18px}
      /* 瀑布流：CSS 多列 */
      .layout-masonry .all-grid.is-columns{display:block;column-count:3;column-gap:14px}
      .layout-masonry .det-card{break-inside:avoid;margin-bottom:14px}
      /* 列表式：标题在左、结果在右 */
      .layout-list .all-grid.is-list{display:block}
      .layout-list .det-card{display:flex;align-items:stretch;margin-bottom:10px}
      .layout-list .det-card-h{width:190px;flex:none;border-bottom:none;border-right:1px solid var(--line,#2a3566);flex-direction:column;align-items:flex-start;gap:6px;padding:14px}
      .layout-list .det-card-b{flex:1;min-width:0}
      /* 看板：按分类分列 */
      .layout-kanban-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
      .kanban-col{background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:14px;padding:10px}
      .kanban-col-h{font-weight:700;font-size:14px;margin-bottom:8px;display:flex;align-items:center;gap:8px}
      .kanban-col-b{display:flex;flex-direction:column;gap:10px}
      /* 表格 */
      .det-table{border:1px solid var(--line,#2a3566);border-radius:14px;overflow:hidden}
      .det-table-h,.det-table-row{display:flex}
      .det-table-h{background:#1a2236;font-weight:700;font-size:13px}
      .det-table-h .c-nm,.det-table-row .c-nm{width:240px;flex:none;padding:10px 14px}
      .det-table-h .c-bd,.det-table-row .c-bd{flex:1;padding:10px 14px;border-left:1px solid var(--line,#2a3566)}
      .det-table-row+.det-table-row{border-top:1px solid var(--line,#2a3566)}
      /* 焦点大卡 / 杂志 */
      .layout-spotlight .all-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
      .layout-spotlight .det-feat{grid-column:1/-1;border-color:rgba(79,124,255,.5);border-width:1.5px}
      .layout-spotlight .det-feat .det-card-b{padding:16px 18px}
      .layout-magazine .all-grid{grid-template-columns:1fr 1fr;gap:18px}
      .layout-magazine .det-feat{grid-column:1/-1;border-color:rgba(79,124,255,.5)}
      .det-card{background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:14px;overflow:hidden}
      .det-card-h{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line,#2a3566);font-size:14px;font-weight:600}
      .det-card-h .ic{font-size:17px;flex:none}
      .det-card-h .nm{flex:1;min-width:0}
      .det-card-b{padding:12px 14px}
      .det-card.collapsed .det-card-h{border-bottom-color:transparent}
      /* 全站广告位 */
      .ad-slot{margin:14px 0}
      .ad-side{margin-top:12px;max-height:260px;overflow:auto}
      .ad-ph{padding:14px;border:1px dashed var(--line,#2a3566);border-radius:10px;color:var(--muted,#97a3c9);font-size:12.5px;text-align:center}
      .ad-slot.has-ad img{max-width:100%;height:auto;display:block;margin:0 auto}
      .ad-slot.has-ad iframe{max-width:100%}
      /* 站点统计页脚 */
      .site-foot{margin-top:26px;padding:16px 4px;border-top:1px solid var(--line,#2a3566);color:var(--muted,#97a3c9);font-size:13px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
      .site-stats b{color:#e8ecf8}
      .foot-sep{opacity:.6}
      .friend-links a{color:var(--muted,#97a3c9);text-decoration:none;margin:0 2px}
      .friend-links a:hover{color:#e8ecf8;text-decoration:underline}
      /* 友情链接栏目 */
      .fl-section{margin-top:24px;padding:18px 20px;background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:14px}
      .fl-section h3{margin:0 0 12px;font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}
      .fl-list{display:flex;flex-wrap:wrap;gap:10px}
      .fl-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--line,#2a3566);border-radius:999px;color:var(--muted,#97a3c9);text-decoration:none;font-size:13px;transition:color .15s,border-color .15s,background .15s}
      .fl-chip:hover{color:#e8ecf8;border-color:var(--brand,#4f7cff);background:rgba(79,124,255,.08)}
      @media(max-width:760px){
        .layout-sidebar{flex-direction:column}
        .layout-sidebar .detnav{flex:1 1 auto;position:static;max-height:none;overflow:visible}
        .layout-split .all-grid,.layout-minimal .all-grid,.layout-wide .all-grid,.layout-magazine .all-grid{grid-template-columns:1fr}
        .layout-kanban-grid{grid-template-columns:1fr}
        .layout-masonry .all-grid.is-columns{column-count:1}
        .layout-topnav .detnav{position:static}
        .layout-list .det-card{flex-direction:column}
        .layout-list .det-card-h{width:auto;border-right:none;border-bottom:1px solid var(--line,#2a3566)}
        .det-table-h .c-nm,.det-table-row .c-nm{width:120px}
      }
    
/* ===== 顶部检测导航（可横向滚动，吸顶） ===== */
/* ===== 检测导航：左侧竖向列表（非推拉框） ===== */
.detlayout{display:flex;align-items:flex-start;gap:18px;margin-top:4px;}
.detnav{position:sticky;top:12px;z-index:10;flex:0 0 236px;align-self:flex-start;display:flex;flex-direction:column;gap:2px;padding:10px;background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:14px;max-height:calc(100vh - 28px);overflow-y:auto;}
.detlist-group{margin-bottom:8px;}
.detlist-group:last-child{margin-bottom:0;}
.det-group-h{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted,#97a3c9);margin:6px 4px;font-weight:600;letter-spacing:.3px;}
.det-tab{display:flex;align-items:center;gap:10px;width:100%;text-align:left;white-space:normal;background:transparent;border:1px solid transparent;color:var(--muted,#97a3c9);border-radius:10px;padding:9px 12px;font-size:13.5px;cursor:pointer;transition:.15s;}
.det-tab .ic{font-size:16px;line-height:1;flex:none;}
.det-tab .nm{flex:1;min-width:0;}
.det-tab:hover{background:var(--panel-2,#1c2750);color:var(--text,#e8ecf8);}
.det-tab.active{background:var(--brand,#4f7cff);color:#fff;border-color:var(--brand,#4f7cff);}
.det-tab.active .nm,.det-tab.active .ic{color:#fff;}
.detpanes{flex:1 1 auto;min-width:0;}
.det-pane{display:none;}
.det-pane.active{display:block;animation:detfade .2s ease;}
@keyframes detfade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@media(max-width:760px){.detlayout{flex-direction:column;}.detnav{flex:1 1 auto;position:static;max-height:none;overflow:visible;}.detpanes{width:100%;}}
.ghostbtn{background:transparent;border:1px solid var(--line,#2a3566);color:var(--muted,#97a3c9);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:13px;}
.ghostbtn:hover{color:var(--text,#e8ecf8);border-color:var(--brand,#4f7cff);}
/* 自定义检测项弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:60;}
.modal-mask.open{display:flex;}
.modal-box{background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:14px;padding:20px 22px;width:min(560px,92vw);max-height:84vh;overflow:auto;}
.modal-box h3{margin:0 0 4px;font-size:17px;}
.modal-box .sub{color:var(--muted,#97a3c9);font-size:12px;margin-bottom:14px;}
.det-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.det-opts label{display:flex;align-items:center;gap:8px;background:var(--panel-2,#1c2750);border:1px solid var(--line,#2a3566);border-radius:10px;padding:9px 11px;font-size:13px;cursor:pointer;}
.det-opts input{accent-color:var(--brand,#4f7cff);width:16px;height:16px;}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;}
.whoer-scope .ring-wrap{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
.whoer-scope .ring{position:relative;width:180px;height:180px;flex:none;}
.whoer-scope .ring svg{transform:rotate(-90deg);}
.whoer-scope .ring .val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.whoer-scope .ring .val b{font-size:44px;line-height:1;}
.whoer-scope .ring .val span{color:var(--muted);font-size:13px;margin-top:4px;}
.whoer-scope .grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:18px;}
.whoer-scope .card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;}
.whoer-scope .card h3{margin:0 0 10px;font-size:15px;display:flex;align-items:center;gap:8px;}
.whoer-scope .kv{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:5px 0;border-bottom:1px dashed var(--line);}
.whoer-scope .kv:last-child{border-bottom:0;}
.whoer-scope .kv .k{color:var(--muted);}
.whoer-scope .kv .v{text-align:right;word-break:break-all;}
.whoer-scope .ok{color:var(--green);} .whoer-scope .bad{color:var(--red);} .whoer-scope .warn{color:var(--yellow);}
.whoer-scope .pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;border:1px solid var(--line);}
.whoer-scope .reasons li{color:var(--red);font-size:13px;margin:4px 0;}
.whoer-scope .btn{background:var(--brand);color:#fff;border:0;border-radius:10px;padding:10px 16px;font-size:14px;cursor:pointer;}
.whoer-scope .btn:disabled{opacity:.5;cursor:not-allowed;}
.whoer-scope .mini{font-size:12px;color:var(--muted);margin-top:6px;}
.whoer-scope .ipbox{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.whoer-scope .ipbox input{flex:1;min-width:240px;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px 14px;font-size:14px;}
.whoer-scope .ipbox input::placeholder{color:var(--muted);}
.whoer-scope .hidden{display:none;}
/* 分类与设置弹窗分组 */
.det-group{margin-bottom:14px;}
.det-group-h{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text,#e8ecf8);margin-bottom:8px;font-weight:600;}
.det-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none;}
.det-tab .dot{width:8px;height:8px;border-radius:50%;background:var(--cat,#4f7cff);flex:none;box-shadow:0 0 0 2px rgba(255,255,255,.08);}
/* 全局检测目标 IP 输入条 */
.ipbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:12px;padding:12px 14px;margin:0 0 16px;}
.ipbar .ipbar-label{font-size:13px;color:var(--muted,#97a3c9);font-weight:600;white-space:nowrap;}
.ipbar input{flex:1;min-width:220px;background:var(--panel-2,#1c2750);border:1px solid var(--line,#2a3566);color:var(--text,#e8ecf8);border-radius:10px;padding:9px 14px;font-size:14px;}
.ipbar input::placeholder{color:var(--muted,#97a3c9);}
.ipbar .btn{background:var(--brand,#4f7cff);color:#fff;border:0;border-radius:10px;padding:9px 18px;font-size:14px;cursor:pointer;}
.ipbar .btn:hover{filter:brightness(1.08);}
.ipbar .ipbar-cur{flex-basis:100%;font-size:12px;color:var(--muted,#97a3c9);line-height:1.6;}
.ipbar .ipbar-cur b{color:var(--brand,#4f7cff);}
.ipbar .ipbar-cur .tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;border:1px solid var(--line,#2a3566);margin-left:6px;}
/* 默认概览（自动显示本地检测，无需点击） */
.ov-wrap{margin-top:2px;}
.ov-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px;background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:12px;padding:12px 14px;}
.ov-title{font-size:16px;font-weight:700;white-space:nowrap;}
.ov-sub{font-size:12px;color:var(--muted,#97a3c9);flex:1;min-width:240px;line-height:1.6;}
.ov-refresh{background:var(--brand,#4f7cff);color:#fff;border:0;border-radius:10px;padding:8px 14px;font-size:13px;cursor:pointer;white-space:nowrap;}
.ov-refresh:hover{filter:brightness(1.08);}
.ov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;}
.ov-card{background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:14px;overflow:hidden;}
.ov-card-h{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line,#2a3566);font-size:14px;font-weight:600;}
.ov-card-h .ic{font-size:17px;flex:none;}
.ov-card-h .nm{flex:1;min-width:0;}
.ov-open{background:transparent;border:1px solid var(--line,#2a3566);color:var(--muted,#97a3c9);border-radius:8px;padding:4px 9px;font-size:12px;cursor:pointer;white-space:nowrap;}
.ov-open:hover{color:#fff;border-color:var(--brand,#4f7cff);}
.ov-card-b{padding:12px 14px;}
.ov-card-b .whoer-scope{display:flex;flex-direction:column;gap:12px;padding:0;}
.ov-card-b .whoer-scope .card{margin:0;}
.ov-card-b .mini{font-size:12px;color:var(--muted,#97a3c9);}
.ov-grp-h{font-size:12px;font-weight:700;color:var(--muted,#97a3c9);margin:16px 2px 8px;letter-spacing:.4px;}
.ov-card-ip{border-color:rgba(56,189,248,.45);}
.ip-badge{margin-left:8px;font-size:9px;background:var(--accent,#38bdf8);color:#04222e;padding:1px 6px;border-radius:6px;font-weight:700;white-space:nowrap;}

/* ===== 顶部检测导航（可横向滚动，吸顶） ===== */
/* ===== 检测导航：左侧竖向列表（非推拉框） ===== */
.detlayout{display:flex;align-items:flex-start;gap:18px;margin-top:4px;}
.detnav{position:sticky;top:12px;z-index:10;flex:0 0 236px;align-self:flex-start;display:flex;flex-direction:column;gap:2px;padding:10px;background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:14px;max-height:calc(100vh - 28px);overflow-y:auto;}
.detlist-group{margin-bottom:8px;}
.detlist-group:last-child{margin-bottom:0;}
.det-group-h{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted,#97a3c9);margin:6px 4px;font-weight:600;letter-spacing:.3px;}
.det-tab{display:flex;align-items:center;gap:10px;width:100%;text-align:left;white-space:normal;background:transparent;border:1px solid transparent;color:var(--muted,#97a3c9);border-radius:10px;padding:9px 12px;font-size:13.5px;cursor:pointer;transition:.15s;}
.det-tab .ic{font-size:16px;line-height:1;flex:none;}
.det-tab .nm{flex:1;min-width:0;}
.det-tab:hover{background:var(--panel-2,#1c2750);color:var(--text,#e8ecf8);}
.det-tab.active{background:var(--brand,#4f7cff);color:#fff;border-color:var(--brand,#4f7cff);}
.det-tab.active .nm,.det-tab.active .ic{color:#fff;}
.detpanes{flex:1 1 auto;min-width:0;}
.det-pane{display:none;}
.det-pane.active{display:block;animation:detfade .2s ease;}
@keyframes detfade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@media(max-width:760px){.detlayout{flex-direction:column;}.detnav{flex:1 1 auto;position:static;max-height:none;overflow:visible;}.detpanes{width:100%;}}
.ghostbtn{background:transparent;border:1px solid var(--line,#2a3566);color:var(--muted,#97a3c9);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:13px;}
.ghostbtn:hover{color:var(--text,#e8ecf8);border-color:var(--brand,#4f7cff);}
/* 自定义检测项弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:60;}
.modal-mask.open{display:flex;}
.modal-box{background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:14px;padding:20px 22px;width:min(560px,92vw);max-height:84vh;overflow:auto;}
.modal-box h3{margin:0 0 4px;font-size:17px;}
.modal-box .sub{color:var(--muted,#97a3c9);font-size:12px;margin-bottom:14px;}
.det-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.det-opts label{display:flex;align-items:center;gap:8px;background:var(--panel-2,#1c2750);border:1px solid var(--line,#2a3566);border-radius:10px;padding:9px 11px;font-size:13px;cursor:pointer;}
.det-opts input{accent-color:var(--brand,#4f7cff);width:16px;height:16px;}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;}
.whoer-scope .ring-wrap{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
.whoer-scope .ring{position:relative;width:180px;height:180px;flex:none;}
.whoer-scope .ring svg{transform:rotate(-90deg);}
.whoer-scope .ring .val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.whoer-scope .ring .val b{font-size:44px;line-height:1;}
.whoer-scope .ring .val span{color:var(--muted);font-size:13px;margin-top:4px;}
.whoer-scope .grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:18px;}
.whoer-scope .card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;}
.whoer-scope .card h3{margin:0 0 10px;font-size:15px;display:flex;align-items:center;gap:8px;}
.whoer-scope .kv{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:5px 0;border-bottom:1px dashed var(--line);}
.whoer-scope .kv:last-child{border-bottom:0;}
.whoer-scope .kv .k{color:var(--muted);}
.whoer-scope .kv .v{text-align:right;word-break:break-all;}
.whoer-scope .ok{color:var(--green);} .whoer-scope .bad{color:var(--red);} .whoer-scope .warn{color:var(--yellow);}
.whoer-scope .pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;border:1px solid var(--line);}
.whoer-scope .reasons li{color:var(--red);font-size:13px;margin:4px 0;}
.whoer-scope .btn{background:var(--brand);color:#fff;border:0;border-radius:10px;padding:10px 16px;font-size:14px;cursor:pointer;}
.whoer-scope .btn:disabled{opacity:.5;cursor:not-allowed;}
.whoer-scope .mini{font-size:12px;color:var(--muted);margin-top:6px;}
.whoer-scope .ipbox{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.whoer-scope .ipbox input{flex:1;min-width:240px;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px 14px;font-size:14px;}
.whoer-scope .ipbox input::placeholder{color:var(--muted);}
.whoer-scope .hidden{display:none;}
/* 分类与设置弹窗分组 */
.det-group{margin-bottom:14px;}
.det-group-h{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text,#e8ecf8);margin-bottom:8px;font-weight:600;}
.det-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none;}
.det-tab .dot{width:8px;height:8px;border-radius:50%;background:var(--cat,#4f7cff);flex:none;box-shadow:0 0 0 2px rgba(255,255,255,.08);}
/* 全局检测目标 IP 输入条 */
.ipbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:12px;padding:12px 14px;margin:0 0 16px;}
.ipbar .ipbar-label{font-size:13px;color:var(--muted,#97a3c9);font-weight:600;white-space:nowrap;}
.ipbar input{flex:1;min-width:220px;background:var(--panel-2,#1c2750);border:1px solid var(--line,#2a3566);color:var(--text,#e8ecf8);border-radius:10px;padding:9px 14px;font-size:14px;}
.ipbar input::placeholder{color:var(--muted,#97a3c9);}
.ipbar .btn{background:var(--brand,#4f7cff);color:#fff;border:0;border-radius:10px;padding:9px 18px;font-size:14px;cursor:pointer;}
.ipbar .btn:hover{filter:brightness(1.08);}
.ipbar .ipbar-cur{flex-basis:100%;font-size:12px;color:var(--muted,#97a3c9);line-height:1.6;}
.ipbar .ipbar-cur b{color:var(--brand,#4f7cff);}
.ipbar .ipbar-cur .tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;border:1px solid var(--line,#2a3566);margin-left:6px;}
/* 默认概览（自动显示本地检测，无需点击） */
.ov-wrap{margin-top:2px;}
.ov-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px;background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:12px;padding:12px 14px;}
.ov-title{font-size:16px;font-weight:700;white-space:nowrap;}
.ov-sub{font-size:12px;color:var(--muted,#97a3c9);flex:1;min-width:240px;line-height:1.6;}
.ov-refresh{background:var(--brand,#4f7cff);color:#fff;border:0;border-radius:10px;padding:8px 14px;font-size:13px;cursor:pointer;white-space:nowrap;}
.ov-refresh:hover{filter:brightness(1.08);}
.ov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;}
.ov-card{background:var(--panel,#161f3d);border:1px solid var(--line,#2a3566);border-radius:14px;overflow:hidden;}
.ov-card-h{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line,#2a3566);font-size:14px;font-weight:600;}
.ov-card-h .ic{font-size:17px;flex:none;}
.ov-card-h .nm{flex:1;min-width:0;}
.ov-open{background:transparent;border:1px solid var(--line,#2a3566);color:var(--muted,#97a3c9);border-radius:8px;padding:4px 9px;font-size:12px;cursor:pointer;white-space:nowrap;}
.ov-open:hover{color:#fff;border-color:var(--brand,#4f7cff);}
.ov-card-b{padding:12px 14px;}
.ov-card-b .whoer-scope{display:flex;flex-direction:column;gap:12px;padding:0;}
.ov-card-b .whoer-scope .card{margin:0;}
.ov-card-b .mini{font-size:12px;color:var(--muted,#97a3c9);}
.ov-grp-h{font-size:12px;font-weight:700;color:var(--muted,#97a3c9);margin:16px 2px 8px;letter-spacing:.4px;}
.ov-card-ip{border-color:rgba(56,189,248,.45);}
.ip-badge{margin-left:8px;font-size:9px;background:var(--accent,#38bdf8);color:#04222e;padding:1px 6px;border-radius:6px;font-weight:700;white-space:nowrap;}
