.connection-groups { display: grid; gap: var(--weave-space-4); min-width: 0; }
.connection-family, .connection-label {
  font: var(--weave-weight-semibold) var(--weave-text-sm) / var(--weave-leading-ui) var(--weave-font-ui);
  letter-spacing: normal; text-transform: none;
}
.connection-family { margin: 0 0 var(--weave-space-2); color: var(--weave-color-action); }
.connection-groups .entity-connections { margin: 0; }
.connection-groups a { color: var(--weave-color-action); text-decoration: underline; text-underline-offset: .12em; }
.connection-groups li { overflow-wrap: anywhere; }
.connection-groups a:focus-visible { outline: 2px solid var(--weave-color-action); outline-offset: 2px; }
/* World Connections follows the World rows and Rubric's paper, ink and ruled relationships. */
.world-view-switch { display: inline-flex; flex-shrink: 0; margin-left: auto; border: 1px solid var(--weave-color-rule-strong); border-radius: var(--weave-radius-sm); }
.world-view-switch a { padding: var(--weave-space-2) var(--weave-space-3); font-size: var(--weave-text-sm); font-weight: var(--weave-weight-semibold); color: var(--weave-color-secondary); text-decoration: none; }
.world-view-switch a[aria-current] { color: var(--weave-color-action); background: var(--weave-color-selected); }
#worldPageHeader.world-view-header { flex-wrap: wrap; justify-content: flex-start; column-gap: var(--weave-space-6); }
#worldCount { flex: 1; }
#worldIndexSurface, #worldConnectionsSurface { overflow-anchor: none; }
.connections-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: var(--weave-space-3) var(--weave-space-5); margin-bottom: var(--weave-space-5); }
.connections-controls .world-find { grid-column: 1; align-self: end; }
.connections-kinds { grid-column: 1; display: flex; flex-wrap: wrap; gap: var(--weave-space-4); }
.connections-kinds button { min-height: 36px; padding: var(--weave-space-1) 0; border: 0; border-bottom: 2px solid transparent; background: transparent; font-size: var(--weave-text-sm); color: var(--weave-color-secondary); cursor: pointer; }
.connections-kinds button[aria-pressed="true"] { color: var(--weave-color-ink); border-bottom-color: var(--weave-color-action); }
.connections-kinds small { margin-left: var(--weave-space-1); font-size: var(--weave-text-2xs); }
.connections-family { grid-column: 2; grid-row: 1; display: grid; gap: var(--weave-space-1); color: var(--weave-color-secondary); font-size: var(--weave-text-xs); }
.connections-family select { width: 100%; min-width: 0; min-height: 44px; font-size: var(--weave-text-sm); }
.connections-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); align-items: start; gap: var(--weave-space-5); }
.connections-list .world-row { grid-template-columns: 30px minmax(0, 1fr) auto; gap: var(--weave-space-2); padding: var(--weave-space-2) var(--weave-space-1); }
.connections-list .world-face { width: 30px; height: 30px; }
.connections-list .world-row-text strong { font: var(--weave-weight-semibold) var(--weave-text-sm) / var(--weave-leading-ui) var(--weave-font-ui); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.connections-list .world-row-meta { font-size: var(--weave-text-xs); }
.connections-list { gap: var(--weave-space-6); min-width: 0; max-height: 760px; overflow: auto; padding-right: var(--weave-space-1); }
.connections-list .world-block-head { gap: var(--weave-space-2); }
.connections-list .world-block-head h3 { font-size: var(--weave-text-lg); }
.connections-list .world-block-head span { font-size: var(--weave-text-xs); }
.connections-list button.world-row { width: 100%; border: 0; border-bottom: 1px solid var(--weave-color-rule); border-radius: 0; background: transparent; text-align: left; cursor: pointer; font-weight: var(--weave-weight-regular); }
.connections-list button.world-row:hover { background: var(--weave-color-hover); }
.connections-list button.world-row[aria-pressed="true"] { background: var(--weave-color-selected); }
.connections-no-page { display: block; color: var(--weave-color-secondary); font: var(--weave-text-2xs) / var(--weave-leading-ui) var(--weave-font-ui); }
.connections-panel { position: sticky; top: var(--weave-space-5); padding: var(--weave-space-5); border: 1px solid var(--weave-color-rule); border-radius: var(--weave-radius-md); background: var(--weave-color-paper); min-width: 0; }
.connections-panel-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--weave-space-2) var(--weave-space-4); justify-content: space-between; }
.connections-panel-head h3 { margin: 0; font: var(--weave-weight-semibold) var(--weave-text-xl) / var(--weave-leading-snug) var(--weave-font-display); }
.connections-panel-head a { color: var(--weave-color-action); font-size: var(--weave-text-xs); white-space: nowrap; }
.connections-back { border: 0; background: transparent; padding: 0; margin-bottom: var(--weave-space-3); color: var(--weave-color-action); font-size: var(--weave-text-xs); cursor: pointer; }
.ranks-graph { position: relative; margin-top: var(--weave-space-4); min-width: 0; }
.ranks-canvas { width: 100%; height: 320px; position: relative; }
.ranks-card { position: absolute; z-index: 2; display: grid; gap: var(--weave-space-1); width: 280px; max-width: 100%; padding: var(--weave-space-3); border-radius: var(--weave-radius-sm); box-shadow: var(--weave-shadow-raised); background: var(--weave-color-deep-ink); color: var(--weave-color-on-deep); font: var(--weave-text-xs) / var(--weave-leading-ui) var(--weave-font-ui); pointer-events: none; overflow-wrap: anywhere; }
.ranks-card[hidden] { display: none; }
.ranks-accessible { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ranks-accessible:focus-within { position: relative; width: auto; height: auto; margin: var(--weave-space-3) 0 0; padding: var(--weave-space-4); overflow: visible; clip-path: none; white-space: normal; }
.ranks-accessible li { margin-bottom: var(--weave-space-2); }
.ranks-accessible span { display: block; font-size: var(--weave-text-xs); color: var(--weave-color-secondary); }
.world-view-switch a:focus-visible, .connections-controls button:focus-visible, .connections-list button:focus-visible, .connections-back:focus-visible, .ranks-accessible :focus-visible { outline: 2px solid var(--weave-color-action); outline-offset: 2px; }
@media (max-width: 999px) {
  .connections-layout { grid-template-columns: minmax(0, 1fr); }
  .connections-panel { position: static; grid-row: 1; }
}
@media (max-width: 640px) {
  #worldCount { display: none; }
  .connections-controls { grid-template-columns: minmax(0, 1fr); }
  .connections-family { grid-column: 1; grid-row: 3; }
  .connections-panel { padding: var(--weave-space-3); }
  .connections-list .world-row-meta { display: block; }
}
