/* ==========================================================================
   VPNQF · nodes.css
   Page-scoped styles for the line / node page:
   table follow-up notes, line-type explainer cards, route-pick cards,
   coverage notes. All values reference :root tokens from base.css.
   ========================================================================== */

/* ---------- table follow-up ---------- */

.table-after{
  margin-top:var(--space-5);
  min-width:0;
}

.table-after .callout{
  margin-bottom:0;
  max-width:78ch;
}

.coverage-note{
  margin:var(--space-5) 0 0;
  max-width:70ch;
  font-size:13.5px;
  line-height:1.78;
  color:var(--text-muted);
}

/* ---------- line-type explainer cards ---------- */

.line-type-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));
  gap:18px;
  align-items:stretch;
}

.line-type-card{
  display:flex;
  flex-direction:column;
  gap:14px;
  min-width:0;
  padding:24px 22px 22px;
  background:var(--surface-1);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);
  transition:border-color .2s ease,box-shadow .2s ease;
}

.line-type-card:hover{
  border-color:var(--border-strong);
  box-shadow:0 22px 38px -28px var(--ink-40);
}

.lt-head{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 10px;
  min-width:0;
}

.lt-num{
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  flex:none;
  border-radius:50%;
  background-image:linear-gradient(180deg,var(--accent-light),var(--accent) 58%,var(--accent-dark));
  color:var(--white);
  font-family:var(--font-mono);
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.02em;
  box-shadow:0 10px 18px -12px var(--accent-40),inset 0 1px 0 var(--white-24);
}

.lt-name{
  margin:0;
  font-size:19px;
  line-height:1.25;
  letter-spacing:-.02em;
}

.lt-text{
  margin:0;
  font-size:14px;
  line-height:1.78;
  color:var(--text-muted);
}

.lt-facts{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:auto 0 0;
  padding-top:14px;
  border-top:1px dashed var(--border);
}

.lt-fact{
  display:grid;
  grid-template-columns:max-content minmax(0,1fr);
  gap:10px;
  align-items:start;
}

.lt-fact dt{
  padding-top:2px;
  font-family:var(--font-mono);
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--accent-dark);
}

.lt-fact dd{
  margin:0;
  font-size:13px;
  line-height:1.7;
  color:var(--text-muted);
}

/* ---------- route-pick cards ---------- */

.pick-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));
  gap:16px;
  align-items:stretch;
}

.pick-card{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
  padding:20px;
  background:var(--bg-panel);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-soft);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}

.pick-card:hover{
  transform:translateY(-2px);
  border-color:var(--border-strong);
  box-shadow:var(--shadow-card);
}

.pick-kicker{
  margin:0;
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.14em;
  color:var(--accent-dark);
}

.pick-title{
  margin:0;
  font-size:17px;
  line-height:1.35;
  letter-spacing:-.015em;
}

.pick-text{
  margin:0;
  font-size:13.5px;
  line-height:1.75;
  color:var(--text-muted);
}

.pick-route{
  margin:auto 0 0;
  padding-top:12px;
  border-top:1px dashed var(--border);
  font-size:12.5px;
  line-height:1.7;
  color:var(--text);
  overflow-wrap:anywhere;
}

.pick-label{
  display:inline-block;
  margin-right:6px;
  font-family:var(--font-mono);
  font-size:10px;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--accent-dark);
}

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

@media (max-width:640px){
  .line-type-card{padding:20px 18px;}
  .pick-card{padding:18px 16px;}
  .pick-card:hover{transform:none;}
  .lt-fact{grid-template-columns:minmax(0,1fr);gap:2px;}
  .lt-fact dt{padding-top:0;}
}

@media (prefers-reduced-motion: reduce){
  .line-type-card,
  .pick-card,
  .pick-card:hover,
  .line-type-card:hover{
    transition:none;
    transform:none;
  }
}