#graph-root{position:fixed;inset:0}.graph-app{position:absolute;inset:0;overflow:hidden}.graph-canvas{position:absolute;inset:0}.graph-toolbar{position:absolute;top:12px;left:12px;z-index:10;display:flex;align-items:center;gap:1em;flex-wrap:wrap;max-width:calc(100% - 24px)}.graph-toolbar-title h1{margin:0;font-size:1.05em;line-height:1.2}.graph-toolbar-title p{margin:.1em 0 0;font-size:.7em;color:var(--gray);font-family:var(--mono-font)}.graph-search-wrap{position:relative;display:flex;flex-direction:column;gap:.35em}.graph-search-box{position:relative;display:flex;align-items:center}.graph-search input{font-family:var(--mono-font);font-size:.85em;padding:.45em .8em;width:280px;max-width:45vw;background:var(--white-lighter);color:var(--black);border:1px solid var(--gray);border-radius:6px;box-shadow:0 2px 8px #0000000f;transition:border-color .2s,box-shadow .2s}.graph-search input:focus{outline:none;border-color:#58a6ff;box-shadow:0 0 0 3px #58a6ff40}.graph-pills{display:flex;gap:.35em;flex-wrap:wrap;align-items:center}.graph-pills-label{font-family:var(--mono-font);font-size:.65em;color:var(--gray);text-transform:uppercase;letter-spacing:.05em}.graph-pill-btn{font-family:var(--mono-font);font-size:.68em;padding:.15em .5em;border-radius:12px;background:var(--white-darker);color:var(--black);border:1px solid var(--white-darker);cursor:pointer;transition:all .15s ease}.graph-pill-btn:hover{background:#58a6ff26;color:#58a6ff;border-color:#58a6ff66}.graph-pill-btn.active{background:#58a6ff;color:#fff;border-color:#58a6ff}.graph-search-dropdown{position:absolute;top:calc(100% + 6px);left:0;width:360px;max-width:90vw;max-height:380px;overflow-y:auto;background:var(--white-lighter);border:1px solid var(--white-darker);border-radius:8px;box-shadow:0 8px 24px #0003;z-index:100;padding:.4em 0}.graph-search-header{padding:.4em .8em;font-family:var(--mono-font);font-size:.68em;text-transform:uppercase;letter-spacing:.05em;color:var(--gray);border-bottom:1px solid var(--white-darker);display:flex;justify-content:space-between;align-items:center}.graph-search-item{display:flex;flex-direction:column;padding:.55em .8em;cursor:pointer;border-bottom:1px solid var(--white-darker);transition:background .12s ease}.graph-search-item:last-child{border-bottom:none}.graph-search-item:hover,.graph-search-item.selected{background:#58a6ff14}.graph-search-item-head{display:flex;align-items:center;justify-content:space-between;gap:.5em}.graph-search-item-title{display:flex;align-items:center;gap:.4em;font-weight:600;font-size:.85em;color:var(--black)}.graph-search-score{font-family:var(--mono-font);font-size:.65em;font-weight:700;padding:.1em .4em;border-radius:3px;background:#3fb95026;color:#2da44e}.graph-search-score.medium{background:#58a6ff26;color:#0969da}.graph-search-item-desc{margin-top:.2em;font-size:.76em;color:var(--gray);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}.graph-zoom{display:flex;gap:.3em}.graph-zoom button{font-size:.85em;line-height:1;padding:.4em .65em;min-width:2em}.graph-edge-toggle{min-width:auto!important;white-space:nowrap}.graph-legend{position:absolute;left:12px;bottom:12px;z-index:10;font-size:.8em}.graph-legend details{background:var(--white-lighter);border:1px solid var(--white-darker);border-radius:4px;padding:.5em .8em;box-shadow:0 2px 10px #00000026}.graph-legend summary{cursor:pointer;font-weight:600;user-select:none}.graph-legend ul{list-style:none;margin:.6em 0 0;padding:0;display:flex;flex-direction:column;gap:.35em}.graph-legend li{display:flex;align-items:center;gap:.5em}.graph-legend-hint{margin:.6em 0 0;font-size:.75em;color:var(--gray);max-width:260px}.graph-domain-dot{display:inline-block;width:.8em;height:.8em;border-radius:50%;flex:0 0 auto}.graph-panel{position:absolute;top:0;right:0;bottom:0;z-index:20;width:min(430px,100%);overflow-y:auto;background:var(--white-lighter);border-left:1px solid var(--white-darker);box-shadow:-8px 0 30px #0003;padding:1.2em 1.4em;box-sizing:border-box}.graph-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75em}.graph-panel-title{display:flex;align-items:center;gap:.6em;min-width:0}.graph-panel-title h2{margin:0;font-size:1.1em;overflow-wrap:anywhere}.graph-panel-close{flex:0 0 auto;font-size:1.1em;line-height:1;padding:.25em .6em}.graph-panel-domain{margin-top:.5em;font-family:var(--mono-font);font-size:.72em;color:var(--gray);text-transform:uppercase;letter-spacing:.06em}.graph-archived-tag{margin-top:.6em;display:inline-block;font-family:var(--mono-font);font-size:.7em;color:var(--gray);border:1px solid var(--gray);border-radius:3px;padding:.1em .5em}.graph-repo{margin:.6em 0 0;font-family:var(--mono-font);font-size:.8em;overflow-wrap:anywhere}.graph-summary{margin:.7em 0 0;font-size:.9em;color:var(--gray);line-height:1.5}.graph-meta{display:flex;flex-wrap:wrap;gap:.5em 1em;margin-top:.8em;font-family:var(--mono-font);font-size:.78em}.graph-links{display:flex;gap:.5em;margin-top:.9em;flex-wrap:wrap}.graph-link-btn{font-size:.8em;text-decoration:none;border:1px solid var(--gray);border-radius:4px;padding:.3em .8em}.graph-topics{display:flex;flex-wrap:wrap;gap:.35em;margin-top:.9em}.graph-topic{font-family:var(--mono-font);font-size:.68em;background:var(--white-darker);border-radius:3px;padding:.15em .5em}.graph-relations{margin-top:1em}.graph-relations h3,.graph-readme h3{margin:0;font-size:.8em;text-transform:uppercase;letter-spacing:.05em;color:var(--gray);border-bottom:1px solid var(--white-darker);padding-bottom:.3em}.graph-relations ul{margin:.6em 0 0;padding-left:1.2em;font-size:.82em;color:var(--gray);display:flex;flex-direction:column;gap:.25em}.graph-relations code{font-family:var(--mono-font);font-size:.92em;overflow-wrap:anywhere}.graph-relation-link{font-family:var(--mono-font);font-size:.92em;overflow-wrap:anywhere;background:none;border:none;padding:0;margin:0;color:#58a6ff;cursor:pointer;text-align:left;text-decoration:none}.graph-relation-link:hover{text-decoration:underline}.graph-relation-score{margin-left:.5em;font-size:.85em;color:var(--gray);opacity:.8}.graph-relation-score:before{content:"· score "}.graph-readme{margin-top:1.2em}.graph-readme-empty{margin:.6em 0 0;font-size:.85em;color:var(--gray)}.graph-readme-body{margin-top:.6em;font-size:.9em;line-height:1.6;overflow-wrap:anywhere}.graph-readme-body h1,.graph-readme-body h2,.graph-readme-body h3,.graph-readme-body h4,.graph-readme-body h5,.graph-readme-body h6{margin:1em 0 .4em;line-height:1.3}.graph-readme-body h1{font-size:1.25em}.graph-readme-body h2{font-size:1.1em}.graph-readme-body h3{font-size:1em}.graph-readme-body p{margin:.5em 0}.graph-readme-body ul,.graph-readme-body ol{margin:.5em 0;padding-left:1.4em}.graph-readme-body li{margin:.2em 0}.graph-readme-body blockquote{margin:.6em 0;padding-left:1em;border-left:3px solid var(--white-darker);color:var(--gray)}.graph-readme-body .gh-alert{margin:.8em 0;padding:.6em .9em;border-left:3px solid var(--gray);background:var(--white-darker);border-radius:0 4px 4px 0}.graph-readme-body .gh-alert p:first-child,.graph-readme-body .gh-alert-title{margin-top:0}.graph-readme-body .gh-alert p:last-child{margin-bottom:0}.graph-readme-body .gh-alert-title{font-size:.82em;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3em}.graph-readme-body .gh-alert-note{border-left-color:#58a6ff}.graph-readme-body .gh-alert-note .gh-alert-title{color:#58a6ff}.graph-readme-body .gh-alert-tip{border-left-color:#3fb950}.graph-readme-body .gh-alert-tip .gh-alert-title{color:#3fb950}.graph-readme-body .gh-alert-important{border-left-color:#a371f7}.graph-readme-body .gh-alert-important .gh-alert-title{color:#a371f7}.graph-readme-body .gh-alert-warning{border-left-color:#d29922}.graph-readme-body .gh-alert-warning .gh-alert-title{color:#d29922}.graph-readme-body .gh-alert-caution{border-left-color:#f85149}.graph-readme-body .gh-alert-caution .gh-alert-title{color:#f85149}.graph-readme-body pre{background:var(--white-darker);border-radius:4px;padding:.7em .9em;overflow-x:auto;margin:.6em 0}.graph-readme-body code{font-family:var(--mono-font);font-size:.85em;background:var(--white-darker);padding:.05em .3em;border-radius:3px}.graph-readme-body pre code{padding:0;background:none}.graph-readme-body img{max-width:100%;border-radius:4px;margin:.5em 0}.graph-readme-body hr{border:none;border-top:1px solid var(--white-darker);margin:1em 0}@media (max-width: 600px){.graph-toolbar{gap:.6em}.graph-search input{width:100%;max-width:none}}
