.graph-trail{min-height:38px;margin:8px 20px 0;display:flex;align-items:center;gap:8px}.graph-trail>button{width:29px;height:29px;border:1px solid #3c4b31;border-radius:50%;display:grid;place-content:center;font-size:16px}.graph-trail>button:disabled{opacity:.25;cursor:default}#graph-breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:10px;line-height:1.5;color:#7b8c6c}#graph-breadcrumbs button{font:inherit;padding:5px 0;color:#9bae8c}#graph-breadcrumbs button[aria-current]{color:var(--lime)}#graph-breadcrumbs button:hover{color:var(--ink)}.graph .node{max-width:175px;white-space:normal;min-height:53px;gap:9px}.graph .node:where(:not([data-node="roma"])){padding:12px 13px}.graph .node-label{line-height:1.25;font-size:12px}.graph .node-meta{font-size:7px;letter-spacing:.4px;line-height:1.5;max-width:115px}.graph .node-toggle{font:15px var(--mono);color:var(--lime);margin-left:3px}.graph .node-hub{background:#314322;border-color:#8ba85d;box-shadow:0 0 0 7px #b9f17c06}.graph .node-parent:not([data-node="roma"]){padding:8px 10px;min-height:42px;opacity:.8}.graph .node-parent .node-meta{font-size:6px}.graph .node-parent .node-icon{display:none}.graph .node[data-node="roma"].node-parent{width:65px;height:65px;min-height:0;padding:4px;box-shadow:0 0 0 7px #b9f17c05}.graph .node[data-node="roma"].node-parent img{width:55px;height:55px}.graph .node[data-node="roma"].node-parent .node-copy{top:69px}.graph .node[data-node="roma"].node-parent .node-label{font-size:9px;white-space:nowrap}.graph .node[data-node="roma"]{max-width:none}.graph .node[data-node="roma"] .node-copy{white-space:nowrap}.graph .node[data-node="labtutor"]{background:#1b2419;border-color:#45523c}.graph .node[data-node="labtutor"]:hover{border-color:var(--lime)}#edges .edge-label{font:9px var(--mono);fill:#8ea17c;paint-order:stroke;stroke:var(--bg);stroke-width:7px;stroke-linejoin:round;pointer-events:none}#edges .graph-cross path{stroke-dasharray:3 7;opacity:.18}#edges .graph-relationship path{opacity:.6;stroke:#62784d}.graph-caption{font-size:9px;bottom:-5px;padding-inline:8px;line-height:1.5}.node-entry{animation:node-appear .24s ease-out both;animation-delay:calc(var(--node-order)*24ms)}@keyframes node-appear{from{opacity:0;transform:translate(-50%,-40%)}to{opacity:1;transform:translate(-50%,-50%)}}
@media(max-width:1100px){.graph .node{max-width:145px;gap:6px}.graph .node:where(:not([data-node="roma"])){padding:10px}.graph .node-label{font-size:10px}.graph .node-meta{font-size:6px}.graph .node-toggle{font-size:13px}.graph-trail{margin-inline:5px}#edges .edge-label{font-size:10px}}
@media(max-width:760px){.graph{height:440px;aspect-ratio:auto}.graph .node{max-width:160px;min-height:51px}.graph .node-label{font-size:12px}.graph .node-meta{font-size:7px}.graph-trail{margin:10px 0 7px}#graph-breadcrumbs{font-size:10px}.graph .node[data-node="roma"].node-parent{width:56px;height:56px}.graph .node[data-node="roma"].node-parent img{width:46px;height:46px}.graph .node[data-node="roma"].node-parent .node-copy{top:62px}.graph .node[data-node="roma"].node-parent .node-meta{font-size:5px}#edges .edge-label{font-size:14px}.graph-caption{font-size:9px;bottom:-8px}}
@media(max-width:420px){.graph .node{max-width:115px;gap:5px;min-height:48px}.graph .node:where(:not([data-node="roma"])){padding:9px}.graph .node-label{font-size:11px}.graph .node-meta{font-size:6px}.graph .node-icon,.graph .node-icon svg{width:16px;height:16px}.graph .node-toggle{font-size:13px;margin-left:1px}.graph .node-hub{max-width:150px}.graph .node[data-node="roma"] .node-label{font-size:10px}.graph .node[data-node="roma"] .node-meta{font-size:6px}.graph .node-parent:not([data-node="roma"]){max-width:105px}.graph-caption{font-size:8px}#graph-breadcrumbs{gap:6px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.node-entry{animation:none}}

@media(max-width:760px){.graph[data-count="6"]{height:560px}}
@media(max-width:1100px){.graph{min-height:440px}.graph[data-count="6"]{height:560px;min-height:560px}}

@media(max-width:1100px){.graph[data-count="5"],.graph[data-count="6"]{height:560px;min-height:560px}}
.graph[data-count="5"],.graph[data-count="6"]{min-height:560px}
.graph .node:not([data-node="roma"]){width:max-content}

.graph[data-count="7"] {
  height: 640px;
  min-height: 640px;
}

.graph-controls {
  position: absolute;
  inset-inline: 8px;
  bottom: 12px;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 10px;
}
.graph-controls .graph-trail {
  flex: 1;
  min-width: 0;
  margin: 0;
}
.graph-controls #graph-breadcrumbs {
  min-width: 0;
  flex-wrap: nowrap;
  white-space: nowrap;
  overflow-x: auto;
}
.graph-controls .plain-button,
.graph-controls .search-trigger {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  padding: 0;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--bg);
}
.graph-controls #reset-graph { font-size: 18px; }
.graph .node:not([data-node="roma"]) .node-copy { min-width: 0; overflow-wrap: anywhere; }
.graph .node-icon, .graph .node-toggle { flex-shrink: 0; }
.graph a.node .node-meta { text-transform: uppercase; }
.language-select {
  flex-shrink: 0;
  max-width: 112px;
  height: 32px;
  padding: 0 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg);
  color: var(--ink);
  font: 12px Arial, sans-serif;
  color-scheme: dark;
}
.language-select:focus-visible { outline: 2px solid var(--lime); outline-offset: 3px; }
.language-status { position: absolute; right: 8px; bottom: 54px; max-width: 290px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg); color: var(--ink); font-size: 12px; z-index: 11; }
.language-status:empty { display: none; }
@media(max-width:420px) {
  .graph-controls { gap: 6px; }
  .language-select { max-width: 94px; font-size: 11px; }
  html[lang="ru"] .graph .node:not(.node-parent):not(.node-hub):not([data-node="roma"]) { max-width: 132px; }
}
.graph .graph-caption.sr-only {
  inset: auto;
  padding: 0;
  width: 1px;
  height: 1px;
}
