.kx-wire {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 420px;
  background: var(--color-canvas-bg);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.kx-wire__svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* 가정 트렌치 배지 */
.kx-wire__assumed {
  position: absolute;
  top: var(--space-3);
  left: var(--space-3);
  z-index: 2;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  color: #fde68a;
  background: rgba(180, 83, 9, 0.28);
  border: 1px solid rgba(253, 224, 71, 0.4);
}

/* 범례 */
.kx-wire__legend {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  background: rgba(16, 24, 40, 0.55);
}
.kx-wire__legend-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-caption);
  color: var(--color-on-accent);
}
.kx-wire__legend-item::before {
  content: '';
  width: 14px;
  height: 3px;
  border-radius: 2px;
}
.kx-wire__legend-item.is-power::before {
  background: var(--color-wire-power);
}
.kx-wire__legend-item.is-network::before {
  background: var(--color-wire-network);
}
.kx-wire__legend-item.is-water::before {
  background: var(--color-wire-water);
}

/* 트렌치 그리드 */
.kx-wire__trench line {
  stroke: var(--color-canvas-line);
  stroke-width: 0.08;
  stroke-dasharray: 0.6 0.5;
  vector-effect: non-scaling-stroke;
}

/* 부스 외곽 */
.kx-wire__booth {
  fill: rgba(0, 102, 179, 0.16);
  stroke: var(--color-primary-600);
  stroke-width: 0.2;
  vector-effect: non-scaling-stroke;
}

/* 배선 경로 */
.kx-wire__path-line {
  fill: none;
  stroke-width: 2.4;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.kx-wire__path.is-power .kx-wire__path-line {
  stroke: var(--color-wire-power);
}
.kx-wire__path.is-network .kx-wire__path-line {
  stroke: var(--color-wire-network);
  stroke-dasharray: 6 4;
}
.kx-wire__path.is-water .kx-wire__path-line {
  stroke: var(--color-wire-water);
  stroke-dasharray: 1 4;
}
.kx-wire__path-label {
  fill: var(--color-white);
  font-size: 1.4px;
  font-weight: var(--fw-semibold);
  text-anchor: middle;
  paint-order: stroke;
  stroke: rgba(16, 24, 40, 0.85);
  stroke-width: 0.5px;
}

/* 단말 노드 */
.kx-wire__terminal circle {
  stroke: var(--color-white);
  stroke-width: 0.18;
  vector-effect: non-scaling-stroke;
  cursor: pointer;
}
.kx-wire__terminal.is-power circle {
  fill: var(--color-wire-power);
}
.kx-wire__terminal.is-network circle {
  fill: var(--color-wire-network);
}
.kx-wire__terminal.is-water circle {
  fill: var(--color-wire-water);
}
.kx-wire__terminal.is-selected circle {
  stroke: var(--color-white);
  stroke-width: 0.4;
}
.kx-wire__terminal:focus-visible {
  outline: none;
}
.kx-wire__terminal:focus-visible circle {
  stroke: var(--color-primary-100);
  stroke-width: 0.4;
}
