/* disable previous single-end handle patch */
                                                        #ganttOut .ga-edge-link-handle {
                                                          display: none !important;
                                                          pointer-events: none !important;
                                                          opacity: 0 !important;
                                                        }

                                                        #ganttOut #v9-gantt-outer .p6-right {
                                                          position: relative;
                                                          overflow: visible !important;
                                                        }

                                                        #ganttOut .ga-link-node {
                                                          position: absolute;
                                                          top: 50%;
                                                          width: 24px;
                                                          height: 24px;
                                                          border-radius: 50%;
                                                          border: none;
                                                          background: transparent;
                                                          box-shadow: none;
                                                          transform: translate(-50%, -50%) scale(.96);
                                                          transform-origin: center center;
                                                          opacity: 0;
                                                          pointer-events: none;
                                                          cursor: crosshair;
                                                          transition: opacity .22s ease, transform .18s ease;
                                                          z-index: 30;
                                                        }

                                                        #ganttOut .ga-link-node::before {
                                                          content: '';
                                                          position: absolute;
                                                          border-radius: 8px;
                                                          background: transparent;
                                                        }

                                                        /* Hitbox expands OUTSIDE the bar more than INSIDE */
                                                        #ganttOut .ga-link-node[data-side="start"]::before {
                                                          inset: -12px -14px -12px -120px;
                                                        }

                                                        #ganttOut .ga-link-node[data-side="finish"]::before {
                                                          inset: -12px -120px -12px -14px;
                                                        }

                                                        #ganttOut .ga-link-node::after {
                                                          content: '';
                                                          position: absolute;
                                                          left: 50%;
                                                          top: 50%;
                                                          width: 8px;
                                                          height: 8px;
                                                          border-radius: 50%;
                                                          border: 1px solid rgba(147, 197, 253, .68);
                                                          background: rgba(147, 197, 253, .20);
                                                          box-shadow: 0 0 0 0 rgba(31, 78, 121, 0), 0 0 12px rgba(31, 78, 121, .18);
                                                          transform: translate(-50%, -50%) scale(.92);
                                                          transition: transform .18s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease, opacity .2s ease;
                                                        }

                                                        #ganttOut .ga-link-node.is-soft-visible {
                                                          opacity: .78;
                                                          pointer-events: auto;
                                                          transform: translate(-50%, -50%) scale(1);
                                                        }

                                                        #ganttOut .ga-link-node.is-visible,
                                                        #ganttOut .ga-link-node.is-dragging,
                                                        #ganttOut .ga-link-node.is-target {
                                                          opacity: 1;
                                                          pointer-events: auto;
                                                          transform: translate(-50%, -50%) scale(1);
                                                        }

                                                        #ganttOut .ga-link-node:hover::after,
                                                        #ganttOut .ga-link-node.is-dragging::after,
                                                        #ganttOut .ga-link-node.is-target::after {
                                                          background: rgba(191, 219, 254, .38);
                                                          border-color: rgba(191, 219, 254, .96);
                                                          box-shadow: 0 0 0 4px rgba(31, 78, 121, .12), 0 0 18px rgba(79, 127, 168, .36);
                                                          transform: translate(-50%, -50%) scale(1.08);
                                                        }

                                                        #ganttOut .ga-link-node[data-side="start"]::after {
                                                          background: rgba(125, 211, 252, .18);
                                                        }

                                                        #ganttOut .ga-link-node[data-side="finish"]::after {
                                                          background: rgba(95, 137, 174, .18);
                                                        }

                                                        #ganttOut .p6-row.ga-link-source .p6-right {
                                                          box-shadow: inset 0 0 0 1px rgba(79, 127, 168, .22);
                                                        }

                                                        #ganttOut .p6-row.ga-link-target .p6-right {
                                                          box-shadow: inset 0 0 0 1px rgba(34, 197, 94, .28);
                                                          background-image: linear-gradient(90deg, rgba(34, 197, 94, .06), transparent 58%);
                                                        }

                                                        #ganttOut #ga-smart-link-overlay {
                                                          position: absolute;
                                                          left: 0;
                                                          top: 0;
                                                          pointer-events: none;
                                                          overflow: visible;
                                                          z-index: 29;
                                                        }

                                                        #ganttOut #ga-smart-link-overlay .ga-link-draft {
                                                          fill: none;
                                                          stroke: rgba(191, 219, 254, .95);
                                                          stroke-width: 2.2;
                                                          stroke-linecap: round;
                                                          stroke-dasharray: 7 6;
                                                          filter: drop-shadow(0 0 8px rgba(79, 127, 168, .22));
                                                        }

                                                        #ganttOut #ga-smart-link-overlay .ga-link-end {
                                                          fill: rgba(191, 219, 254, .95);
                                                          filter: drop-shadow(0 0 8px rgba(79, 127, 168, .25));
                                                        }

                                                        body[data-gantt-theme="light"] #ganttOut .ga-link-node::after {
                                                          border-color: rgba(30, 64, 175, .48);
                                                          background: rgba(79, 127, 168, .20);
                                                          box-shadow: 0 0 0 0 rgba(31, 78, 121, 0), 0 0 10px rgba(31, 78, 121, .14);
                                                        }

                                                        body[data-gantt-theme="light"] #ganttOut .p6-row.ga-link-target .p6-right {
                                                          background-image: linear-gradient(90deg, rgba(34, 197, 94, .08), transparent 58%);
                                                        }
