.graph-page{width:min(1440px,100% - 40px);margin:0 auto;padding:28px 0 72px}.graph-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.graph-header h1{margin:0;font-size:34px;line-height:1.1}.graph-header p{color:var(--text-sub-color);margin:8px 0 0}.graph-header button,.graph-search button,.search-results button,.edge-list button,.relationship-filter input,.overview-filter input{cursor:pointer;border:0;border-radius:6px}.graph-header button,.graph-search button{background:var(--button-background-color);color:var(--button-text-color);padding:10px 16px;font-size:14px}.graph-header button:hover,.graph-search button:hover{background:var(--button-hover-background-color)}.graph-header button:disabled,.graph-search button:disabled{cursor:default;opacity:.7}.graph-header button.loading-action:disabled,.graph-search button.loading-action:disabled{cursor:wait}.graph-search button.secondary{color:var(--text-color);border:1px solid var(--input-border-color);background:0 0}.graph-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:stretch;gap:16px;min-height:max(760px,100vh - 150px);display:grid}.graph-stage,.graph-panel{border:1px solid var(--input-border-color);background:var(--input-background-color);border-radius:8px}.graph-stage{grid-template-rows:auto auto minmax(560px,1fr);min-width:0;display:grid;overflow:hidden}.graph-search{border-bottom:1px solid var(--input-border-color);grid-template-columns:minmax(180px,1fr) auto auto;gap:10px;padding:12px;display:grid}.graph-search input,.relationship-filter input,.overview-filter input{border:1px solid var(--input-border-color);background:var(--background-color);min-width:0;color:var(--text-color);border-radius:6px;padding:10px 12px;font-size:15px}.search-results{border-bottom:1px solid var(--input-border-color);color:var(--text-sub-color);gap:8px;padding:10px 12px;display:flex;overflow-x:auto}.search-results button,.edge-list button{text-align:left;background:var(--background-color);color:var(--text-color);border:1px solid var(--input-border-color);gap:3px;display:grid}.search-results button{min-width:180px;padding:9px 10px}.search-results button span,.edge-list button span{overflow-wrap:anywhere;font-weight:600}.search-results button small,.edge-list button small{color:var(--text-sub-color)}.canvas-wrap{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;overscroll-behavior:contain;min-height:clamp(560px,100vh - 260px,900px);position:relative}.canvas-wrap.loading{cursor:wait}.canvas-wrap.panning{cursor:grabbing}.canvas-wrap canvas{width:100%;height:100%;min-height:inherit;touch-action:none;display:block}.canvas-status{background:color-mix(in srgb, var(--input-background-color) 88%, transparent);color:var(--text-sub-color);border:1px solid var(--input-border-color);border-radius:6px;padding:8px 10px;position:absolute;top:16px;left:16px}.canvas-status.error{color:#e57373}.canvas-controls{border:1px solid var(--input-border-color);background:color-mix(in srgb, var(--input-background-color) 92%, transparent);max-width:min(360px,100% - 32px);color:var(--text-color);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;display:grid;position:absolute;top:16px;right:16px;box-shadow:0 8px 24px #0000002e}.canvas-controls div{gap:2px;min-width:0;display:grid}.canvas-controls span{white-space:nowrap;font-size:12px;font-weight:600}.canvas-controls small{color:var(--text-sub-color);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.canvas-controls label{color:var(--text-sub-color);align-items:center;gap:6px;font-size:12px;display:flex}.canvas-controls select{border:1px solid var(--input-border-color);background:var(--background-color);color:var(--text-color);border-radius:6px;padding:6px 8px}.graph-panel{padding:16px;overflow:auto}.panel-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.panel-heading h2{overflow-wrap:anywhere;margin:0;font-size:22px;line-height:1.2}.panel-heading a{color:var(--url-color);font-size:13px;text-decoration:none}.panel-heading a:hover{text-decoration:underline}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.metric-grid div{border:1px solid var(--input-border-color);background:var(--background-color);border-radius:6px;gap:5px;padding:11px;display:grid}.metric-grid span{color:var(--text-sub-color);font-size:12px}.metric-grid strong{overflow-wrap:anywhere;font-size:20px}.indexed-at{color:var(--text-sub-color);margin:14px 0 18px;font-size:13px}.relationship-filter{margin-bottom:18px}.relationship-filter input{cursor:text;width:100%}.overview-filter{gap:7px;margin-bottom:18px;display:grid}.overview-filter label{color:var(--text-color);font-size:13px;font-weight:600}.overview-filter input{cursor:text;width:100%}.overview-filter small{color:var(--text-sub-color);font-size:12px;line-height:1.4}.relationship-status{color:var(--text-sub-color);margin:-8px 0 12px;font-size:13px}.relationship-status.error{color:#e57373}.edge-list{gap:8px;margin-top:18px;display:grid}.edge-list-title{justify-content:space-between;align-items:center;gap:10px;display:flex}.edge-list-title h3{margin:0;font-size:16px}.edge-list-title span{color:var(--text-sub-color);white-space:nowrap;font-size:12px}.edge-list p{color:var(--text-sub-color);margin:0}.edge-scroll{gap:8px;max-height:min(34vh,360px);padding-right:4px;display:grid;overflow-y:auto}.edge-list button{width:100%;padding:10px}.edge-list button:hover,.search-results button:hover{border-color:var(--button-background-color)}@media (width<=1040px){.graph-layout{grid-template-columns:1fr;min-height:auto}.canvas-wrap{min-height:clamp(520px,70vh,780px)}.graph-panel{max-height:none}}@media (width<=640px){.graph-page{width:min(100% - 24px,1440px);padding-top:22px}.graph-header{flex-direction:column;align-items:flex-start}.graph-header h1{font-size:30px}.graph-header button{width:100%}.graph-search{grid-template-columns:1fr}.canvas-wrap{min-height:520px}.canvas-controls{grid-template-columns:1fr;top:12px;left:12px;right:12px}.canvas-status{top:104px;left:12px}.metric-grid{grid-template-columns:1fr}}
