/* ==========================================================================
   VPNBL · nodes.css
   线路页(zh-CN/network.html)专属样式。
   只声明本页独有组件;颜色 / 圆角 / 阴影 / 字体一律引用 base.css 的 :root 令牌。
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 页首:文案 + 线路类型图例
   -------------------------------------------------------------------------- */
.nodes-intro{
  position:relative;
  overflow-x:clip;
  max-width:100%;
  background:linear-gradient(180deg,var(--bg-hero-top) 0%,var(--bg-hero-bottom) 100%);
  border-bottom:1px solid var(--border-soft);
}
.nodes-intro__inner{
  display:grid;
  grid-template-columns:minmax(0,1.32fr) minmax(0,.88fr);
  gap:34px;
  align-items:center;
  padding-block:50px 46px;
}
.nodes-intro__text{min-width:0}
.nodes-intro h1{margin-top:10px}
.nodes-intro__lead{
  margin-top:14px;
  max-width:660px;
  font-size:17px;
  line-height:1.7;
  color:var(--text-muted);
}
.nodes-intro__facts{
  display:flex;
  flex-wrap:wrap;
  gap:14px 36px;
  margin-top:24px;
}
.nodes-intro__facts li{display:flex;flex-direction:column;gap:1px;min-width:0}
.nodes-intro__facts b{
  font-family:var(--font-mono);
  font-size:23px;
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.2;
  color:var(--accent-dark);
}
.nodes-intro__facts span{font-size:12.5px;color:var(--text-muted)}
.nodes-intro__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

.nodes-legend{
  min-width:0;
  padding:22px;
  border-radius:var(--r-card);
  background:var(--bg-panel);
  border:1px solid var(--border);
  box-shadow:var(--shadow-panel);
}
.nodes-legend__title{
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  color:var(--text-muted);
}
.nodes-legend__list{display:grid;gap:9px;margin-top:14px}
.nodes-legend__row{
  display:flex;
  align-items:center;
  gap:11px;
  padding:11px 13px;
  border-radius:var(--r-btn);
  background:var(--bg-panel-3);
  border:1px solid var(--border-soft);
  min-width:0;
}
.nodes-legend__row .badge{flex:none}
.nodes-legend__row p{min-width:0;font-size:12.5px;line-height:1.5;color:var(--text-muted)}
.nodes-legend__foot{
  margin-top:14px;
  padding-top:13px;
  border-top:1px dashed var(--border);
  font-size:12.5px;
  line-height:1.62;
  color:var(--text-muted);
}
.badge--relay{background:var(--warn-wash);color:var(--warn);border-color:var(--warn-edge)}

/* --------------------------------------------------------------------------
   2. 长文档容器与章节
   -------------------------------------------------------------------------- */
.nodes-doc > section{padding-block:46px}
.nodes-lede{
  max-width:860px;
  margin-bottom:22px;
  font-size:15.5px;
  line-height:1.72;
  color:var(--text-muted);
}
.nodes-lede a{
  color:var(--accent);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}

/* 表格里的线路类型标记:颜色 + 圆点双通道,不靠颜色单独表意 */
.lt{font-weight:700;font-size:13.5px;color:var(--text)}
.lt::before{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  margin-right:7px;
  vertical-align:middle;
  background:currentColor;
}
.lt--iepl{color:var(--accent)}
.lt--relay{color:var(--warn)}
.lt--direct{color:var(--text-muted)}

.nodes-note{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 16px;
  margin-top:16px;
}
.nodes-note p{flex:1 1 320px;min-width:0;font-size:13.5px;line-height:1.66;color:var(--text-muted)}

/* --------------------------------------------------------------------------
   3. 线路类型卡
   -------------------------------------------------------------------------- */
.type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.type-card{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:24px 22px;
  border-radius:var(--r-card);
  background:var(--bg-panel);
  border:1px solid var(--border);
  box-shadow:var(--shadow-panel);
  min-width:0;
}
.type-card__params{
  padding-bottom:13px;
  border-bottom:1px dashed var(--border);
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.06em;
  color:var(--text-muted);
}
.type-card h3{font-size:19px;letter-spacing:-.015em}
.type-card__desc{font-size:14px;line-height:1.72;color:var(--text-muted)}
.type-card__meta{display:grid;gap:9px;margin-top:auto}
.type-card__meta li{
  display:grid;
  gap:3px;
  padding:11px 13px;
  border-radius:var(--r-btn);
  background:var(--bg-panel-3);
  border:1px solid var(--border-soft);
  min-width:0;
}
.type-card__meta span{
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.1em;
  color:var(--text-muted);
}
.type-card__meta p{font-size:13px;line-height:1.62;color:var(--text)}
.type-card__fact{align-self:flex-start}

/* --------------------------------------------------------------------------
   4. 选线建议
   -------------------------------------------------------------------------- */
.pick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.pick-card{
  display:flex;
  gap:15px;
  padding:20px;
  border-radius:var(--r-card);
  background:var(--bg-panel);
  border:1px solid var(--border);
  box-shadow:var(--shadow-xs);
  min-width:0;
}
.pick-card--wide{grid-column:1/-1}
.pick-card__ico{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  flex:none;
  border-radius:10px;
  background:var(--accent-wash);
  border:1px solid var(--accent-edge);
  color:var(--accent);
}
.pick-card__ico svg{width:20px;height:20px}
.pick-card__body{min-width:0}
.pick-card__body h3{font-size:16px;margin-bottom:6px}
.pick-card__desc{font-size:13.8px;line-height:1.7;color:var(--text-muted)}

/* --------------------------------------------------------------------------
   5. 覆盖地区
   -------------------------------------------------------------------------- */
.cover-label{
  text-align:center;
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  color:var(--text-muted);
}
.cover-flags{justify-content:center;margin-top:14px}
.cover-wall{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin-top:24px;
}
.cover-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:9px 16px;
  border-radius:var(--r-pill);
  background:var(--bg-panel);
  border:1px solid var(--border);
  font-size:13.5px;
  font-weight:600;
  color:var(--text-muted);
  box-shadow:var(--shadow-xs);
}
.cover-chip::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  flex:none;
  background:var(--accent);
  opacity:.5;
}

/* --------------------------------------------------------------------------
   6. 响应式
   -------------------------------------------------------------------------- */
@media (max-width:1100px){
  .nodes-intro__inner{grid-template-columns:minmax(0,1fr);gap:26px;padding-block:38px 40px}
  .nodes-intro__lead{max-width:none}
}
@media (max-width:980px){
  .type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .type-card:last-child{grid-column:1/-1}
}
@media (max-width:860px){
  .pick-grid{grid-template-columns:minmax(0,1fr)}
  .pick-card--wide{grid-column:auto}
}
@media (max-width:640px){
  .nodes-intro__inner{padding-block:28px 32px}
  .nodes-intro__facts{gap:12px 26px}
  .nodes-intro__facts b{font-size:20px}
  .nodes-doc > section{padding-block:34px}
  .type-grid{grid-template-columns:minmax(0,1fr)}
  .type-card:last-child{grid-column:auto}
  .type-card{padding:20px 18px}
  .pick-card{padding:17px 16px}
  .nodes-legend{padding:18px}
  .cover-chip{padding:8px 13px;font-size:13px}
}