.wrap { position: relative; width: 100%; height: 100%; min-height: 0; background: #0c0c0f; } .zoomBar { display: flex; gap: 6px; padding: 6px; border-radius: 10px; background: rgba(24, 24, 27, 0.92); border: 1px solid var(--stroke); } .zoomBtn { width: 32px; height: 32px; border: 1px solid var(--stroke); border-radius: 8px; background: #18181b; color: var(--text1); cursor: pointer; font-size: 16px; line-height: 1; } .zoomBtn:hover { background: #27272a; } .node { width: 120px; display: grid; gap: 6px; padding: 8px; border-radius: 12px; border: 1px solid var(--stroke); background: #18181b; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35); border-left-width: 3px; border-left-color: var(--npc-group-color, var(--stroke)); } .nodeActive { border-color: #60a5fa; border-left-color: var(--npc-group-color, #60a5fa); box-shadow: 0 0 0 1px var(--npc-group-color, #60a5fa), 0 8px 24px rgba(0, 0, 0, 0.35); } .nodeDimmed { opacity: 0.28; } .avatar { width: 100%; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: #09090b; } .avatarImg { width: 100%; height: 100%; object-fit: cover; display: block; } .name { font-size: 12px; font-weight: 700; text-align: center; color: var(--text1); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .handle { width: 10px !important; height: 10px !important; background: #71717a !important; border: 2px solid #18181b !important; } .handle:hover { background: #60a5fa !important; } .edgeLabel { pointer-events: all; padding: 2px 8px; border-radius: 6px; background: rgba(24, 24, 27, 0.92); border: 1px solid var(--stroke); color: var(--text1); font-size: 11px; font-weight: 700; white-space: nowrap; max-width: 160px; overflow: hidden; text-overflow: ellipsis; cursor: pointer; transform: translate(-50%, -50%); position: absolute; z-index: 5; } .edgeLabelActive { border-color: #60a5fa; color: #93c5fd; box-shadow: 0 0 0 1px #60a5fa; z-index: 20; } .menuBackdrop { position: fixed; inset: 0; z-index: 79; border: 0; padding: 0; margin: 0; background: transparent; cursor: default; } .menu { position: fixed; z-index: 80; min-width: 160px; padding: 6px; border-radius: 10px; background: #18181b; border: 1px solid var(--stroke); box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45); display: grid; gap: 2px; } .menuItem { border: 0; background: transparent; color: var(--text1); text-align: left; padding: 8px 10px; border-radius: 8px; cursor: pointer; font-size: 13px; } .menuItem:hover { background: #27272a; } .menuItemDanger:hover { background: rgba(239, 68, 68, 0.18); color: #fca5a5; } .filterSelect { min-width: 160px; padding: 6px 10px; padding-right: 28px; border-radius: 8px; border: 1px solid var(--stroke); background-color: rgba(24, 24, 27, 0.92); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.25L6 7.75L9.5 4.25' stroke='rgba(255,255,255,0.72)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 8px center; background-size: 12px 12px; color: var(--text1); font-size: 12px; font-weight: 600; }