/* ==========================================================================
   VPNVO · nodes page
   line inventory table · line type cards · scenario rows · region wall
   ========================================================================== */

.node-hero{padding-bottom:var(--sp-6)}
.node-hero .sec-head{margin-bottom:0}
.node-hero .cta-row{margin-top:var(--sp-5)}
.node-hero .trust{margin-top:var(--sp-4)}

.node-facts{margin-top:var(--sp-6)}
.node-facts .fact-strip{
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  background:var(--bg-panel);
}

/* line inventory table ---------------------------------------------------- */

.node-table td:first-child{font-weight:600}
.node-table .stream-cell{display:flex;flex-wrap:wrap;gap:4px}
.node-note{
  margin-top:var(--sp-4);
  max-width:78ch;
  font-size:12.5px;
  line-height:1.75;
  color:var(--text-muted);
}

/* line types -------------------------------------------------------------- */

.line-type-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  align-items:stretch;
}
.lt-card{
  display:flex;
  flex-direction:column;
  gap:var(--sp-4);
  min-width:0;
  padding:22px 20px;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-1), var(--hi);
}
.lt-card--featured{
  border-color:var(--accent-24);
  background:linear-gradient(180deg, var(--bg) 0%, var(--bg-panel) 100%);
  box-shadow:0 26px 52px -34px var(--accent-40), var(--hi);
}
.lt-top{display:flex;align-items:center;gap:10px;min-width:0}
.lt-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;flex:none;
  border-radius:var(--r-md);
  background:var(--accent-08);
  border:1px solid var(--accent-18);
  color:var(--accent-dark);
}
.lt-mark svg{width:18px;height:18px;flex:none}
.lt-name{font-size:16px;font-weight:700;letter-spacing:-.01em;line-height:1.3}
.lt-key{
  margin-left:auto;
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.08em;
  color:var(--text-muted);
  white-space:nowrap;
}
.lt-card--featured .lt-key{color:var(--accent-dark)}

.lt-list{display:grid;gap:10px;margin:0}
.lt-list > div{display:grid;gap:3px;padding-top:10px;border-top:1px dashed var(--border)}
.lt-list dt{
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.1em;
  color:var(--accent-dark);
}
.lt-list dd{margin:0;font-size:13.5px;line-height:1.75;color:var(--text-muted)}

.node-callout{margin-top:var(--sp-5)}

/* scenario rows ----------------------------------------------------------- */

.pick-list{
  display:grid;
  margin:0;
  padding:0;
  list-style:none;
  overflow:hidden;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-1), var(--hi);
}
.pick-row{
  display:grid;
  grid-template-columns:104px 196px minmax(0,1fr);
  gap:var(--sp-4);
  align-items:start;
  padding:14px 18px;
  min-width:0;
}
.pick-row + .pick-row{border-top:1px solid var(--border)}
.pick-scene{font-size:13.5px;font-weight:700;line-height:1.6;color:var(--text)}
.pick-tags{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.pick-text{min-width:0;font-size:13.5px;line-height:1.75;color:var(--text-muted)}

.node-steps{margin-top:var(--sp-6)}
.node-subtitle{margin-bottom:var(--sp-4);font-size:16px;font-weight:700}
.node-steps .steps p{margin:0;font-size:13.5px;line-height:1.75;color:var(--text-muted)}

/* coverage ---------------------------------------------------------------- */

.node-split{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:var(--sp-6);
  align-items:start;
}
.node-split .sec-head{margin-bottom:0}
.region-wall{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.region-wall li{
  display:inline-flex;align-items:center;gap:6px;
  max-width:100%;
  padding:5px 11px;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:var(--r-pill);
  font-size:12.5px;
  color:var(--text-muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.region-wall .dot{flex:none}
.node-foot-note{margin-top:var(--sp-4);font-size:13px;line-height:1.75;color:var(--text-muted)}

.node-more{margin-top:var(--sp-5);font-size:13.5px;line-height:1.75;color:var(--text-muted)}

/* responsive -------------------------------------------------------------- */

@media (max-width:980px){
  .line-type-grid{grid-template-columns:1fr}
  .node-split{grid-template-columns:1fr}
  .pick-row{grid-template-columns:92px minmax(0,1fr);gap:var(--sp-2) var(--sp-4)}
  .pick-text{grid-column:1 / -1}
}

@media (max-width:640px){
  .pick-row{grid-template-columns:1fr;gap:6px;padding:14px 14px}
  .pick-text{grid-column:auto}
  .node-table td:first-child{white-space:nowrap}
  .node-facts .fact-strip{gap:8px 18px;padding:12px 14px}
}