
.cap-viz {
    position: relative;
    width: 220px;
    height: 190px;
    margin: 0.5rem auto 1.5rem;
}

.cap-lines {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.cap-lines line {
    stroke: rgba(255, 255, 255, 0.12);
    stroke-width: 2;
    transition: stroke 0.3s ease, stroke-width 0.3s ease;
}

.cap-lines line.active {
    stroke: #F87171;
    stroke-width: 3;
}

.cap-item {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.cap-item.top {
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}

.cap-item.left {
    bottom: 0;
    left: 0;
}

.cap-item.right {
    bottom: 0;
    right: 0;
}

.cap-node {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--badge-color);
}

.cap-item .viz-label {
    font-size: 0.7rem;
    max-width: 90px;
    margin-top: 0.5rem;
}
