/* ============================================================================
   VPNJM · 首页专属样式
   只包含:主列高度补位、数据条间距、线路状态脚手架容器、区块内的少量排版补位。
   令牌与组件全部来自 base.css / components.css,此处不重复定义。
   ========================================================================== */

/* 主列撑满视口,让 .hero 的 flex:1 在短内容页也生效 */
.page > main{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}

/* Hero 与数据条之间的呼吸 */
.home-stats{margin-top:8px;margin-bottom:4px}

/* ── 线路状态(servers.js 注入;空容器不占位) ─────────────────────────── */
#server-status.server-status{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-bottom:22px;
}
#server-status.server-status:empty{display:none}

.srv-row{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:9px 13px;
  border-radius:var(--r-sm);
  background:var(--bg-panel);
  border:1px solid rgb(var(--text-rgb)/.08);
  box-shadow:inset 0 1px 0 var(--white);
}
.srv-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--success);
  box-shadow:0 0 0 3px rgb(var(--success-rgb)/.14);
  flex:none;
  animation:srv-breathe 2.6s ease-in-out infinite;
}
@keyframes srv-breathe{
  0%,100%{opacity:.5}
  50%{opacity:1}
}
.srv-flag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:15px;
  border-radius:3px;
  overflow:hidden;
  flex:none;
  background:rgb(var(--panel-rgb)/.9);
  box-shadow:inset 0 0 0 1px rgb(var(--text-rgb)/.14);
}
.srv-flag svg,.srv-flag img{width:100%;height:100%;object-fit:cover;display:block}
.srv-name{
  font-size:12.5px;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0;
}
.srv-type{
  flex:none;
  font-family:var(--font-mono);
  font-size:9.5px;
  letter-spacing:.08em;
  padding:2px 8px;
  border-radius:var(--r-pill);
  background:rgb(var(--accent-rgb)/.09);
  color:var(--accent);
  white-space:nowrap;
}
.srv-ms{
  margin-left:auto;
  flex:none;
  font-family:var(--font-mono);
  font-size:11.5px;
  font-variant-numeric:tabular-nums;
  color:var(--text);
  white-space:nowrap;
}
.srv-bw{
  flex:none;
  font-family:var(--font-mono);
  font-size:11px;
  font-variant-numeric:tabular-nums;
  color:var(--text-muted);
  white-space:nowrap;
}

/* ── 线路预览的补充说明 ───────────────────────────────────────────────── */
.route-note{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:16px;
  max-width:82ch;
  min-width:0;
}
.route-note p{font-size:13.5px;line-height:1.75;color:var(--text-muted)}
.route-note strong{color:var(--text);font-weight:600}

/* ── 判断点三列 ───────────────────────────────────────────────────────── */
.judge{
  margin-top:18px;
  padding:22px;
  border-radius:var(--r-lg);
  background:linear-gradient(160deg,var(--white) 0%,var(--bg-panel-3) 58%,var(--bg-panel-2) 100%);
  border:1px solid rgb(var(--text-rgb)/.08);
  box-shadow:var(--shadow-card);
  min-width:0;
}
.judge h3{font-size:16px}
.judge-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:14px;
}
.judge-item{min-width:0}
.judge-item h4{font-size:13.5px;color:var(--text)}
.judge-item p{margin-top:5px;font-size:12.5px;line-height:1.72;color:var(--text-muted)}

/* ── 套餐档位说明 ─────────────────────────────────────────────────────── */
.plan-explain{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:20px;
}
.explain-item{
  min-width:0;
  padding:16px 18px;
  border-radius:var(--r-md);
  background:rgb(var(--panel-rgb)/.72);
  border:1px solid rgb(var(--text-rgb)/.08);
  box-shadow:inset 0 1px 0 var(--white);
}
.explain-item h3{font-size:14px}
.explain-item p{margin-top:6px;font-size:12.5px;line-height:1.72;color:var(--text-muted)}

/* ── 缓滚带与上下区块的留白 ───────────────────────────────────────────── */
.ticker-row{padding-block:6px}

/* ── 窄屏 ─────────────────────────────────────────────────────────────── */
@media (max-width:900px){
  #server-status.server-status{grid-template-columns:1fr}
  .judge-grid{grid-template-columns:1fr;gap:12px}
  .plan-explain{grid-template-columns:1fr}
}

@media (max-width:640px){
  .judge{padding:18px}
  .srv-row{padding:9px 11px;gap:8px}
}