/* =============================================================================
   VPNZM · iplookup.css
   IP 查询页专用：查询结果卡、字段网格、结果解读条目、自查步骤与下一步入口。
   颜色 / 圆角 / 阴影一律取自 base.css 的 :root 令牌。
   ========================================================================== */

/* ------------------------------------------------------------- 首屏 ------ */
.ip-hero{
  position:relative;
  background:linear-gradient(180deg,var(--hero-top) 0%,var(--hero-mid) 58%,var(--bg) 100%);
  padding-top:38px;
  padding-bottom:var(--sec-y);
  overflow-x:clip;
}
.ip-halo{
  position:absolute;z-index:0;pointer-events:none;
  top:-180px;right:-140px;
  width:min(560px,86vw);height:min(560px,86vw);
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%,var(--halo-rose),transparent 70%);
}
.ip-head{
  position:relative;z-index:2;
  max-width:780px;margin:0 auto;text-align:center;
}
.ip-head h1{margin-top:12px}
.ip-lede{
  margin-top:14px;
  font-size:15.5px;line-height:1.75;color:var(--text-muted);
}
.ip-lede strong{color:var(--text);font-weight:700}

/* --------------------------------------------------------- 查询结果卡 ---- */
.lookup{
  position:relative;z-index:2;
  max-width:880px;margin:30px auto 0;
  padding:0;
  overflow:hidden;
  border-radius:var(--r-lg);
}
.lookup-bar{
  display:flex;align-items:center;gap:10px;
  padding:12px 16px;
  border-bottom:1px solid var(--border);
  background:linear-gradient(180deg,var(--bg-panel) 0%,var(--bg-panel-2) 210%);
}
.lookup-title{
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.1em;
  color:var(--text-muted);
}
.lookup-state{
  margin-left:auto;display:inline-flex;align-items:center;gap:6px;
  padding:3px 10px;border-radius:var(--r-pill);
  background:var(--warn-ghost);color:var(--warn);
  font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.04em;
  white-space:nowrap;
}
.lookup-state i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.lookup-state[data-state="ok"]{background:var(--success-ghost);color:var(--success)}
.lookup-state[data-state="error"]{background:var(--accent-ghost);color:var(--error)}

.ip-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  margin:0;
  background:var(--border);
}
.ip-cell{min-width:0;padding:16px 18px;background:var(--bg-panel)}
.ip-cell dt{
  margin:0 0 6px;
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;
  color:var(--text-muted);
}
.ip-cell dd{
  margin:0;
  font-size:16px;font-weight:700;line-height:1.45;color:var(--text);
  overflow-wrap:anywhere;
}
.ip-cell dd.is-mono{
  font-family:var(--font-mono);font-size:15px;font-variant-numeric:tabular-nums;
}
.ip-cell dd.is-quiet{font-size:14px;font-weight:500;color:var(--text-muted)}
.ip-cell dd.is-ok{color:var(--success)}
.ip-cell dd.is-warn{color:var(--warn)}

.ip-note{
  padding:14px 18px;
  border-top:1px solid var(--border);
  background:var(--bg-panel);
  font-size:13px;line-height:1.75;color:var(--text-muted);
}
.ip-actions{
  display:flex;align-items:center;flex-wrap:wrap;gap:10px;
  padding:14px 18px;
:0;
  border-top:1px solid var(--border);
  background:var(--bg-panel-2);
}
.ip-copy-state{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.02em;
  color:var(--success);
}
.ip-copy-state[data-tone="warn"]{color:var(--warn)}
.ip-noscript{
  padding:14px 18px;
  border-top:1px solid var(--border);
  background:var(--warn-ghost);
  font-size:13px;line-height:1.7;color:var(--text);
}
.btn:disabled{opacity:.55;cursor:progress}
.ip-copy-helper{
  position:fixed;top:0;left:-9999px;
  width:1px;height:1px;opacity:0;pointer-events:none;
}

.ip-facts{
  position:relative;z-index:2;
  display:flex;justify-content:center;
  margin-top:26px;
}
.ip-facts .stat-band{max-width:100%}

/* ------------------------------------------------------------- 解读 ------ */
.ip-defs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px 32px;
  margin-top:26px;
}
.ip-def{min-width:0;padding-top:14px;border-top:1px solid var(--border)}
.ip-def-no{
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;
  color:var(--accent);
}
.ip-def h3{margin:6px 0 6px;font-size:16px}
.ip-def p{font-size:13.5px;line-height:1.8;color:var(--text-muted)}

.ip-block{margin-top:22px}
.ip-table{min-width:640px}
.ip-table th{white-space:nowrap}
.ip-table td{
  white-space:normal;
  word-break:keep-all;
  vertical-align:top;
  line-height:1.65;
}

/* --------------------------------------------------------- 自查步骤 ------ */
.ip-steps{counter-reset:ipstep;display:grid;gap:12px;margin-top:22px}
.ip-steps li{
  counter-increment:ipstep;position:relative;min-width:0;
  padding:14px 16px 14px 54px;
  background:var(--bg-panel);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-soft);
  font-size:13.5px;line-height:1.8;color:var(--text-muted);
}
.ip-steps li::before{
  content:counter(ipstep,decimal-leading-zero);
  position:absolute;left:14px;top:14px;
  width:26px;height:26px;border-radius:50%;
  display:grid;place-items:center;
  background:var(--accent-ghost);
  border:1px solid var(--accent-line);
  color:var(--accent);
  font-family:var(--font-mono);font-size:11px;font-weight:700;
}
.ip-steps b{display:block;margin-bottom:2px;font-size:14.5px;color:var(--text)}

/* ------------------------------------------------------------- 隐私 ------ */
.ip-privacy{
  display:grid;gap:10px;
  margin-top:20px;padding:20px 22px;
  background:var(--bg-panel);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-soft);
}
.ip-privacy li{
  display:flex;gap:10px;align-items:flex-start;min-width:0;
  font-size:13.5px;line-height:1.75;color:var(--text-muted);
}
.ip-privacy li svg{flex:none;margin-top:4px;color:var(--success)}

/* ----------------------------------------------------------- 下一步 ------ */
.ip-next{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:14px;
  margin-top:24px;
}
.ip-next a{
  display:flex;flex-direction:column;gap:6px;
  min-width:0;padding:18px;
  background:var(--bg-panel);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-soft);
  transition:transform var(--ease),border-color var(--ease),box-shadow var(--ease);
}
.ip-next a:hover{
  transform:translateY(-2px);
  border-color:var(--accent-line);
  box-shadow:var(--shadow-card);
}
.ip-next .nx-t{font-size:14.5px;font-weight:700;color:var(--text)}
.ip-next .nx-d{font-size:12.5px;line-height:1.7;color:var(--text-muted)}
.ip-next .nx-m{
  margin-top:auto;padding-top:8px;
  font-family:var(--font-mono);font-size:11px;font-weight:700;
  color:var(--accent);
}
.ip-next + .promo-block{margin-top:26px}

/* --------------------------------------------------------- 窄屏适配 ------ */
@media (max-width:760px){
  .ip-defs{grid-template-columns:1fr;gap:18px}
}
@media (max-width:640px){
  .ip-grid{grid-template-columns:1fr}
  .ip-cell dd{font-size:15px}
  .ip-actions .btn{width:100%}
  .ip-copy-state{width:100%}
  .ip-halo{display:none}
  .ip-table{min-width:520px}
}