/* =========================================================================
   VPNWu — nodes.css
   线路页专属样式:事实条 / 地区分组 / 线路类型卡 / 选线建议 / 覆盖徽章墙
   ========================================================================= */

/* 表格与卡片里的胶囊在本页需要更大的触达与字号（默认尺寸为设备样机设计） */
.nodes-main .chip{height:22px;padding:0 9px;font-size:11px;letter-spacing:.02em}

/* ------------------------------------------------------------- 首屏事实条 */
.nodes-facts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:28px;
  background:var(--bg-panel);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);
  overflow:hidden;
}
.nodes-fact{
  display:flex;flex-direction:column;gap:3px;
  min-width:0;padding:15px 18px;
  border-left:1px solid var(--border-soft);
}
.nodes-fact:first-child{border-left:0}
.nodes-fact .num{
  font-family:var(--font-mono);
  font-size:18px;font-weight:700;letter-spacing:-.02em;
  line-height:1.25;color:var(--ink);
}
.nodes-fact .lbl{font-size:12.5px;color:var(--muted);letter-spacing:.04em}

/* ------------------------------------------------------------- 地区分组 */
.region-block + .region-block{margin-top:42px}
.region-head{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}
.region-title{font-size:19px;font-weight:800;letter-spacing:-.01em}
.region-tag{
  font-family:var(--font-mono);font-size:11.5px;font-weight:600;
  color:var(--accent-dark);background:var(--accent-wash);
  border:1px solid var(--accent-wash-2);border-radius:var(--r-pill);
  padding:2px 8px;line-height:1.5;
}
.region-desc{max-width:780px;margin-bottom:14px;font-size:15px;line-height:1.78;color:var(--muted)}
.node-table{min-width:660px}
.node-table td:last-child{white-space:nowrap}

/* 装饰虚线（draw-lines 描线目标） */
.route-divider{
  padding-top:10px;padding-bottom:10px;
  overflow-x:clip;max-width:100%;
}
.route-divider svg{display:block;width:100%;height:44px}

/* ------------------------------------------------------------- 线路类型卡 */
.line-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.line-card{position:relative;overflow:hidden}
.line-card::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:3px;
  background:var(--border-strong);
}
.line-card.is-direct::before{background:var(--success)}
.line-card.is-relay::before{background:var(--warn)}
.line-card.is-dedicated::before{background:var(--accent)}
.route-svg{display:block;width:100%;height:44px;margin-bottom:8px}
.line-card-head{display:flex;align-items:center;gap:10px}
.line-card-idx{
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.06em;
  color:var(--muted);flex:none;
}
.line-card-head h3{font-size:18px;font-weight:800;letter-spacing:-.01em}
.line-dl{display:grid;gap:11px;margin-top:14px}
.line-dl-row{display:grid;gap:2px;min-width:0}
.line-dl dt{font-size:11.5px;font-weight:700;letter-spacing:.1em;color:var(--accent-dark)}
.line-dl dd{font-size:14px;line-height:1.72;color:var(--muted)}
.type-table{min-width:840px}

/* ------------------------------------------------------------- 选线建议 */
.pick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pick-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}
.pick-head h3{font-size:16.5px;font-weight:800;letter-spacing:-.01em}
.pick-card p{font-size:14px;line-height:1.75;color:var(--muted)}
.pick-step{
  margin-top:auto;padding-top:14px;
  border-top:1px solid var(--border-soft);
  font-size:12.5px;line-height:1.65;color:var(--ink);
}
.pick-step .mono{
  font-size:11px;letter-spacing:.08em;color:var(--accent-dark);margin-right:6px;
}

/* 文末提示与推广块 */
.nodes-cta{margin-top:28px}
.nodes-cta .btn-row{margin-top:14px}
.nodes-note{
  display:flex;flex-wrap:wrap;gap:6px 16px;
  margin-top:20px;font-size:13.5px;color:var(--muted);
}
.nodes-note a{color:var(--accent-dark);text-decoration:underline;text-underline-offset:.18em}
.nodes-note a:hover{color:var(--ink)}

/* ------------------------------------------------------------- 覆盖徽章墙 */
.coverage-wall{display:grid;gap:24px}
.cov-group{display:grid;gap:10px;min-width:0}
.cov-group h3{font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--accent-dark)}
.cov-list{display:flex;flex-wrap:wrap;gap:8px}
.cov-chip{
  display:inline-flex;align-items:center;gap:7px;
  max-width:100%;min-height:30px;padding:4px 12px;
  border-radius:var(--r-pill);
  background:var(--bg-panel);
  border:1px solid var(--border);
  font-size:13px;line-height:1.4;color:var(--muted);
}
.cov-chip::before{
  content:"";width:5px;height:5px;border-radius:50%;
  background:var(--accent);flex:none;
}

/* ------------------------------------------------------------- 响应式 */
@media (max-width:1180px){
  .line-type-grid{gap:14px}
  .pick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:980px){
  .nodes-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nodes-fact:nth-child(3){border-left:0}
  .nodes-fact:nth-child(n+3){border-top:1px solid var(--border-soft)}
  .line-type-grid{grid-template-columns:minmax(0,1fr)}
  .route-svg{height:40px}
}

@media (max-width:640px){
  .nodes-facts{margin-top:22px}
  .nodes-fact{padding:13px 15px}
  .nodes-fact .num{font-size:16.5px}
  .pick-grid{grid-template-columns:minmax(0,1fr)}
  .region-block + .region-block{margin-top:34px}
  .route-divider svg{height:36px}
}