/* network-analysis.html companion — layout + glass chrome (press tokens own palette)
   Aesthetics: ProPublica near/far + hairball avoidance (Cambridge / Munzner).
   No page-local :root. Severity hue only via --red / --gold. */
body.press-interior .press-main.net-main{
  max-width:min(1240px,100%);
  padding: clamp(36px, 6vw, 72px) clamp(18px, 3.5vw, 40px) 120px;
}
/* Kill press-main 920px squeeze so the board can breathe */
body.press-interior .press-main.net-main.press-main{
  max-width:min(1240px,100%);
}
body.press-interior .press-main.net-main > .kick{
  margin-bottom:0.55rem;
}
body.press-interior .press-main.net-main > .stand{
  max-width:62ch;
  color:var(--ivory-dim);
}
/* Proximity: one visual unit for board chrome */
.net-chrome{
  margin:2rem 0 1.15rem;
  padding:1.1rem 1.15rem 1rem;
  border-radius:12px;
  background:linear-gradient(168deg,rgba(255,255,255,.035),rgba(5,7,8,.42));
  border:1px solid rgba(154,219,232,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
}
.net-toolbar{
  display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;
  margin:0 0 0.85rem;
}
/* “Do something” affordance — ice border on the action that filters the far→near */
.net-toolbar input[type="search"]{
  flex:1 1 220px;min-width:180px;max-width:360px;
  background:rgba(9,13,16,.55);border:1px solid rgba(154,219,232,.28);
  color:var(--ivory);font-family:var(--mono);font-size:12px;
  padding:10px 14px;border-radius:8px;outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.net-toolbar input[type="search"]::placeholder{color:var(--ivory-faint)}
.net-toolbar input[type="search"]:focus{
  border-color:rgba(154,219,232,.55);
  box-shadow:0 0 0 1px rgba(154,219,232,.2), inset 0 1px 0 rgba(255,255,255,.05);
}
.net-tabs{display:flex;gap:8px;flex-wrap:wrap}
.net-tabs button{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  padding:8px 14px;border-radius:999px;cursor:pointer;
  background:rgba(9,13,16,.4);border:1px solid rgba(154,219,232,.16);
  color:var(--ivory-dim);
}
.net-tabs button.on,.net-tabs button:hover{
  color:var(--void);background:var(--ice);border-color:var(--ice);
}
.net-tabs button:focus-visible,
.net-view button:focus-visible,
.hub-chip:focus-visible,
.chip:focus-visible{
  outline:1px solid var(--ice);outline-offset:2px;
}
.net-export{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.net-export button{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  padding:6px 12px;border:1px solid rgba(154,219,232,.18);border-radius:999px;
  color:var(--ivory-dim);cursor:pointer;background:rgba(9,13,16,.35);
}
.net-export button:hover{border-color:rgba(154,219,232,.4);color:var(--ice)}
.net-export button:focus-visible{outline:1px solid var(--ice);outline-offset:2px}
.net-stats{
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;
  color:var(--ivory-faint);margin:0 0 0.35rem;
}
.net-stats b{color:var(--ice);font-weight:500}
.board-wrap{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(268px,328px);
  gap:22px;align-items:start;
}
@media(max-width:900px){.board-wrap{grid-template-columns:1fr}}
.net-view{
  display:flex;flex-wrap:wrap;gap:8px;margin:0 0 0.75rem;
  align-items:center;
}
.net-view .view-hint{
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;
  color:var(--ivory-faint);margin-left:4px;
}
.net-view button{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  padding:7px 12px;border-radius:999px;cursor:pointer;
  background:rgba(9,13,16,.4);border:1px solid rgba(154,219,232,.16);
  color:var(--ivory-dim);
}
.net-view button.on,.net-view button:hover{
  color:var(--void);background:var(--ice);border-color:var(--ice);
}
.net-view button.quiet{
  opacity:.65;border-style:dashed;
}
.net-view button.quiet.on{opacity:1;border-style:solid}
/* Legend — press tokens only, no inline hex */
.net-legend{
  display:flex;flex-wrap:wrap;gap:10px 18px;margin:0.15rem 0 0.85rem;
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ivory-faint);
}
.net-legend i{
  display:inline-block;width:7px;height:7px;border-radius:50%;
  margin-right:6px;vertical-align:middle;
  background:var(--ice);
}
.net-legend .lg-ice i{background:var(--ice)}
.net-legend .lg-silver i{background:var(--ivory-dim)}
.net-legend .lg-gold i{background:var(--gold)}
.net-legend .lg-alert i{background:var(--red)}
.net-legend .lg-ivory i{background:var(--ivory);box-shadow:inset 0 0 0 1px rgba(5,7,8,.35)}
.net-hubs{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  margin:0 0 1.15rem;max-height:6.5rem;overflow:auto;
  padding-bottom:2px;
}
.net-hubs .hubs-lab{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ivory-faint);margin-right:4px;
}
.net-hubs .hub-chip{
  font-family:var(--mono);font-size:11px;letter-spacing:.02em;
  padding:7px 12px;border-radius:6px;cursor:pointer;
  background:rgba(9,13,16,.4);border:1px solid rgba(154,219,232,.12);
  color:var(--ivory-dim);max-width:min(300px,100%);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.net-hubs .hub-chip:hover{border-color:rgba(154,219,232,.32);color:var(--ice)}
.net-hubs .hub-chip.on{
  border-color:rgba(154,219,232,.5);color:var(--void);
  background:var(--ice);
}
/* Board surface — cold glass, white top-glint (Quantanium) */
.board{
  padding:16px 14px;min-height:480px;position:relative;
  background:
    linear-gradient(180deg,rgba(255,255,255,.045) 0%,transparent 28%),
    rgba(5,7,8,.62);
  backdrop-filter:blur(22px) saturate(1.08);
  border:1px solid rgba(154,219,232,.14);
  border-radius:12px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.09),
    0 12px 40px rgba(0,0,0,.28);
  overflow:hidden;
}
.board svg{display:block;width:100%;height:auto;min-height:460px;touch-action:manipulation}
/* Edges: quiet by default (invisibility); hot = contrast only on selection */
.board .edge{
  stroke:rgba(154,219,232,.16);
  stroke-linecap:round;
  fill:none;
}
.board .edge.hot{stroke:rgba(154,219,232,.55)}
.board .edge.fact-hot{stroke:rgba(154,219,232,.62)}
.board .edge.dim{opacity:.035}
.board .guide-ring{
  fill:none;
  stroke:rgba(154,219,232,.07);
  stroke-width:1;
  stroke-dasharray:2 6;
  pointer-events:none;
}
.board .node{cursor:pointer}
.board .node circle{
  stroke:rgba(5,7,8,.92);stroke-width:1.1;
  transition:stroke .12s ease, r .12s ease;
}
.board .node .hub-halo{
  fill:none;
  stroke:rgba(154,219,232,.28);
  stroke-width:1;
  pointer-events:none;
}
.board .node text{
  font-family:var(--mono);font-size:10.5px;fill:var(--ivory-dim);
  pointer-events:none;paint-order:stroke;stroke:rgba(5,7,8,.9);stroke-width:3.2px;
}
.board .node.sel circle,.board .node:hover circle{
  stroke:var(--ice);
}
.board .node.hub circle{
  stroke:var(--ice);stroke-width:2;
  filter:drop-shadow(0 0 6px rgba(154,219,232,.22));
}
.board .node.sel text,.board .node:hover text,.board .node.hub text{fill:var(--ivory)}
@media(min-width:900px){
  .board .node.hub text{font-size:12.5px;font-weight:500}
}
.board .node.dim{opacity:.14}
.board .cluster-lab{
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  fill:var(--ivory-faint);
}
/* Annotation layer (Amanda Cox / ProPublica) — near the data, not a HUD */
.board .view-cap{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;
  fill:var(--ivory-faint);
}
.board .view-cap-strong{
  fill:var(--ivory-dim);
}
.board .empty-msg{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:12px;color:var(--ivory-faint);padding:24px;text-align:center;
}
.detail{
  padding:22px 24px;align-self:start;position:sticky;top:72px;
  /* Gestalt: inspector common-region with board; white top-glint */
  background:
    linear-gradient(180deg,rgba(255,255,255,.08) 0%,transparent 22%),
    linear-gradient(165deg,rgba(154,219,232,.05),rgba(5,7,8,.68));
  backdrop-filter:blur(20px) saturate(1.15);
  border:1px solid rgba(154,219,232,.16);
  border-radius:12px;
  box-shadow:0 8px 28px rgba(5,7,8,0.42), inset 0 1px 0 rgba(255,255,255,.1);
}
.detail .kick{margin-bottom:8px;display:block}
.detail h3{font-weight:400;font-size:1.35rem;line-height:1.2;margin:0 0 6px;color:var(--ivory)}
.detail .sub{
  font-family:var(--mono);font-size:10.5px;color:var(--ivory-faint);
  letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;
}
.detail p{font-size:14px;color:var(--ivory-dim);line-height:1.55;margin:0 0 12px;max-width:none}
.detail .claim{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);margin-bottom:10px;
}
.detail .cons{
  margin-top:14px;border-top:1px solid rgba(154,219,232,.12);padding-top:12px;
}
.detail .cons h4{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ivory-faint);margin:0 0 8px;font-weight:500;
}
.detail .cons div{
  font-family:var(--mono);font-size:11.5px;color:var(--ivory-dim);
  padding:5px 0;border-bottom:1px solid rgba(154,219,232,.06);line-height:1.4;
}
.detail .cons b{color:var(--ice);font-weight:500}
.detail .degree{
  font-family:var(--mono);font-size:11px;color:var(--ivory-faint);
  letter-spacing:.04em;margin:0 0 10px;
}
.detail .con-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px}
.detail button.con-link,
.detail button.con-more,
.list-fallback button.list-label{
  font:inherit;font-family:var(--mono);font-size:11.5px;color:var(--ice);
  background:transparent;border:0;padding:0;cursor:pointer;text-align:left;
  border-bottom:1px solid rgba(154,219,232,.28);
}
.detail button.con-link:hover,
.detail button.con-more:hover,
.list-fallback button.list-label:hover{color:var(--ivory);border-bottom-color:var(--ice)}
.detail button.con-more{
  display:block;margin-top:8px;letter-spacing:.12em;text-transform:uppercase;font-size:10px;
}
.detail a.con-src{
  color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(211,166,37,.35);
}
.detail a.con-src:hover{border-bottom-color:var(--gold)}
.list-fallback a.list-open{
  display:inline;margin-left:8px;font-family:var(--mono);font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ivory-faint);
  text-decoration:none;border-bottom:1px solid rgba(154,219,232,.15);
}
.list-fallback a.list-open:hover{color:var(--ice)}
.detail a.open{
  display:inline-block;margin-top:16px;font-family:var(--mono);font-size:10px;
  font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ice);
  border-bottom:1px solid rgba(154,219,232,.35);text-decoration:none;
}
#net-stats .capped-note{color:var(--ivory-faint);font-size:11px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 1rem}
.chip{
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  padding:6px 12px;border:1px solid rgba(154,219,232,.18);border-radius:999px;
  color:var(--ivory-dim);cursor:pointer;background:rgba(9,13,16,.35);
}
.chip:hover{border-color:rgba(154,219,232,.4);color:var(--ice)}
.chip.on{background:var(--ice);color:var(--void);border-color:var(--ice)}
.guide{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:2.5rem;
}
@media(max-width:860px){.guide{grid-template-columns:1fr}}
.guide .glass{
  padding:18px 20px;font-size:13.5px;color:var(--ivory-dim);line-height:1.5;
  background:linear-gradient(165deg,rgba(154,219,232,.06),rgba(5,7,8,.45));
  border:1px solid rgba(154,219,232,.14);border-radius:12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.guide b{
  color:var(--ivory);font-weight:600;display:block;margin-bottom:8px;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
}
.list-fallback{
  margin-top:2.5rem;border-top:1px solid rgba(154,219,232,.12);padding-top:1.5rem;
}
.list-fallback h2{font-size:1.25rem;margin:0 0 12px;color:var(--ivory);font-weight:400}
.list-fallback ul{list-style:none;padding:0;margin:0;columns:2;column-gap:28px}
@media(max-width:700px){.list-fallback ul{columns:1}}
.list-fallback li{
  break-inside:avoid;font-size:13.5px;padding:8px 0;
  border-bottom:1px solid rgba(154,219,232,.08);color:var(--ivory-dim);
}
.list-fallback li a{color:var(--ice);text-decoration:none}
.list-fallback li span{
  display:block;font-family:var(--mono);font-size:10px;color:var(--ivory-faint);
  letter-spacing:.06em;margin-top:2px;
}
.disclaimer{
  margin-top:2rem;font-family:var(--mono);font-size:11px;line-height:1.65;
  color:var(--ivory-faint);max-width:72ch;
}
.disclaimer code{color:var(--ice);font-size:10px}
