/* Связи между стикерами: мягкая кривая с булавками на концах */
.arrow-layer {
  position: absolute; top: 0; left: 0;
  pointer-events: none;
  z-index: 10;
  overflow: visible;
}

.thread {
  fill: none;
  stroke-width: 2.2;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}
.thread.shadow { stroke: rgba(88, 108, 145, .22); stroke-width: 4.2; filter: blur(2px); }
.thread.hit { stroke: transparent; stroke-width: 18; pointer-events: stroke; cursor: pointer; }
.thread.selected { stroke-width: 3.4; filter: drop-shadow(0 1px 3px rgba(88, 108, 145, .4)); }

.thread.blocks { stroke: var(--thread-blocks); }
.thread.depends_on { stroke: var(--thread-depends); stroke-dasharray: 9 5; }
.thread.transfers { stroke: var(--thread-transfers); stroke-dasharray: 3 6; }
.thread.related { stroke: var(--thread-related); stroke-dasharray: 1 7; }

/* Канцелярская кнопка на конце нитки */
.pin-shadow { fill: rgba(88, 108, 145, .3); }
.pin-body { stroke: rgba(255, 255, 255, .9); stroke-width: 1.2; }
.pin-gloss { fill: rgba(255, 255, 255, .9); }
.pin-group { pointer-events: all; cursor: pointer; }

.arrow-label {
  font-size: 10.5px; fill: var(--text-primary); font-weight: 600;
  paint-order: stroke; stroke: rgba(255, 255, 255, .92); stroke-width: 4px; stroke-linejoin: round;
  pointer-events: none; user-select: none;
}

.arrow-cp {
  fill: #fff; stroke: var(--accent-blue); stroke-width: 1.8;
  pointer-events: all; cursor: grab;
}
.arrow-cp:hover { fill: var(--accent-blue); }
.arrow-cp-line { stroke: var(--accent-blue); stroke-width: 1; stroke-dasharray: 3 3; opacity: .5; }

/* Нитка, которую тянут мышью */
.thread-draft {
  stroke: var(--accent-blue); stroke-width: 2.4; stroke-dasharray: 7 5; fill: none; opacity: .95;
}

.arrow-hint {
  position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%);
  background: rgba(255, 255, 255, .95); backdrop-filter: blur(14px);
  border: 1px solid var(--accent-blue);
  color: var(--text-primary); padding: 8px 16px; border-radius: 999px;
  font-size: 12px; z-index: 50; box-shadow: 0 8px 24px rgba(88, 108, 145, .28);
}
