@keyframes pulse-green { 0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.7); } 70% { box-shadow: 0 0 0 8px rgba(34, 197, 94, 0); } 100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); } }
  .status-dot.live{background:#22c55e; animation: pulse-green 2s infinite;}
  .status-dot.single{background:#cbd5e1}
  .status-banner { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid var(--line2); background: #fff; gap:16px; flex-wrap:wrap; }
  .status-left { display:flex; align-items:flex-start; gap:10px; flex:1; min-width:200px; }
  .status-left strong { display:block; font-size:17px; margin-bottom:2px; }
  .status-left .desc { color:var(--sub); font-size:13px; }
  .grid-2 { display:grid; grid-template-columns: 1.2fr 1fr; gap:16px; margin: 16px; align-items: stretch; }
  .map-card, .summary-card { background: #fff; border: 1px solid #d5dce8; border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; box-shadow:0 2px 8px rgba(0,0,0,0.05);}
  .map-card { min-height: 480px; }
  .summary-card { height: auto; overflow: visible; }
  .map-card .card-head { border-bottom: 1px solid var(--line2); padding: 14px 16px; z-index: 2; position: relative;}
  .map-container-wrapper { position: relative; flex: 1; width:100%; }
  #china_map { position: absolute; top:0; left:0; width: 100%; height: 100%; }
  .summary-card .card-body { flex: 1; padding: 0; background: #fff; overflow-y: auto; }
  .result-table { width:100%; border-collapse:collapse; border-spacing:0; table-layout:auto; }
  .result-table tbody tr:hover { background: #f5f8ff; transition: background-color 0.15s; }
  .result-table thead th { position: sticky; top: var(--navbar-h, 52px); z-index: 30; background: #fafcff; color: #546276; font-weight: 600; padding: 9px 6px; white-space: nowrap; border-bottom: 2px solid #dce3ed; border-right: 1px solid #e7edf5; font-size: 13px; width: auto !important; }
  .result-table thead th:last-child { border-right: none; }
  .result-table tbody td { overflow: hidden; text-overflow: ellipsis; }
  .result-table tbody td[data-label="响应IP"],
  .result-table tbody td[data-label="响应IP:端口"] { white-space: normal; word-break: break-all; overflow: visible; text-overflow: unset; }
  .result-table tbody td:last-child { border-right: none; }

  .result-table.single-mode thead th:last-child { width: 180px !important; }
  .result-table.single-mode .ad-col { width:350px; min-width:350px; max-width:350px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--sub); font-size:13px; }

  .result-table:not(.single-mode) thead th:last-child { width: 180px !important; }
  .result-table:not(.single-mode) .ad-col { width:210px; min-width:210px; max-width:210px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--sub); font-size:13px; }
  .dns-card .card-head{padding-bottom:8px}
  .dns-head-meta{display:flex;align-items:center;gap:10px}
  .circle-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:1px solid #d2dbe6;color:#4a586c;font-size:12px; font-weight:bold;}
  .copy-btn{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 12px;border:1px solid #f0c38f;border-radius:14px;background:#fff7ed;color:#c97712;font-size:13px;cursor:pointer;transition:all 0.2s;}
  .copy-btn:hover{background:#ffedd5; border-color:#fb923c;}
  .dns-tip{color:var(--sub);font-size:13px;margin-top:-4px}
  .dns-list{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:10px}
  .dns-list.ipv6{grid-template-columns:repeat(3,1fr)}
  .dns-item{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line2);background:#fafcff;border-radius:6px;padding:8px 12px;cursor:pointer;transition:all .15s}
  .dns-item.active{border-color:var(--blue);background:#eff6ff}
  .dns-item .ip{font-size:13px;color:var(--text);word-break:break-all;line-height:1.4}
  .dns-item .percent{font-size:13px;color:var(--blue);font-weight:600;flex-shrink:0;margin-left:8px;}
  .result-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
  .result-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .ip-cell { display:flex; align-items:center; gap:8px; overflow:visible; line-height:1.4; }
  @keyframes val-flash { 0% { background-color: rgba(59,130,246,0.18); } 100% { background-color: transparent; } }
  @keyframes val-flash-timeout { 0% { background-color: rgba(239,68,68,0.15); } 100% { background-color: transparent; } }
  .val-changed { animation: val-flash 1.2s ease-out; }
  .val-changed-timeout { animation: val-flash-timeout 1.2s ease-out; }
  .sent-pulse { animation: val-flash 0.8s ease-out; }
  .row-pending { opacity: 0.6; }
  @keyframes pending-pulse { 0%,100% { opacity:0.4; } 50% { opacity:1; } }
  .pending-text { color: var(--blue); animation: pending-pulse 1.5s ease-in-out infinite; }
  .latest.pending { color: var(--blue); font-weight: 500; }
  .loc-full { max-width: 100%; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
