* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background: #1B1B1B;
    overflow: hidden;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

svg {
    width: 100vw;
    height: 100vh;
    display: block;
}

#side-panel {
    position: fixed;
    border-radius: 8px;
    top: 16px;
    right: 16px;
    width: 400px;
    height: calc(100vh - 32px);
    background: #222;
    pointer-events: auto;
    z-index: 1000;
    transition: height 0.3s ease;
}

#side-panel.collapsed {
    height: 64px;
}

#toggle-chevron {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 24px;
    height: 24px;
    cursor: pointer;
    transition: transform 0.3s ease;
    background: none;
    border: none;
    padding: 0;
}

#toggle-chevron svg {
    width: 100%;
    height: 100%;
    fill: #999;
    transition: fill 0.2s;
}

#toggle-chevron:hover svg {
    fill: #fff;
}

#side-panel.collapsed #toggle-chevron {
    transform: rotate(180deg);
}

.link {
    stroke: #999;
    stroke-width: 1px;
    fill: none;
}

.arrow {
    fill: #999;
}

.node-rect {
    fill: #2a2a2a;
    rx: 8px;
    ry: 8px;
}

.node-text {
    fill: #1a1a1a;
    font-size: 14px;
    font-weight: 600;
    pointer-events: none;
    user-select: none;
}

.node {
    cursor: grab;
}

.node:active {
    cursor: grabbing;
}
