.container { width: 100%; height: 100%; position: relative; --journey-line-color: var(--base600); --journey-active-color: var(--primary400); --journey-faded-color: var(--base300); } .view { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; flex-direction: row; flex-wrap: nowrap; overflow: auto; gap: 100px; } .header { margin-bottom: 20px; } .stats { display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; } .visitors { font-weight: 600; font-size: 16px; text-transform: lowercase; } .dropoff { font-weight: 600; color: var(--base800); background: var(--base200); padding: 4px 8px; border-radius: 5px; } .num { display: flex; align-items: center; justify-content: center; border-radius: 100%; width: 50px; height: 50px; font-size: 16px; font-weight: 700; color: var(--base100); background: var(--base800); z-index: 1; margin: 0 auto 20px; } .column { display: flex; flex-direction: column; } .nodes { position: relative; display: flex; flex-direction: column; height: 100%; } .wrapper { padding-bottom: 10px; } .item { position: relative; cursor: pointer; padding: 10px 20px; background: var(--base75); border-radius: 5px; display: flex; align-items: center; justify-content: space-between; min-width: 300px; min-height: 60px; } .item:hover:not(.selected) { color: var(--base900); background: var(--base100); } .item.selected { color: var(--base75); background: var(--base900); font-weight: 400; } .item.active { color: var(--light50); background: var(--primary400); } .behind { color: var(--base400); } .ahead { color: var(--base400); } .current { color: var(--base500); } .name { font-weight: 500; } .count { border-radius: 4px; padding: 5px 10px; background: var(--base200); } .item.selected .count { color: var(--base50); background: var(--base800); } .item.selected.active .count { background: var(--primary600); } .line { position: absolute; bottom: 0; left: -100px; width: 100px; } .line.up { bottom: 0; } .line.down { top: 0; } .segment { position: absolute; } .start { left: 0; width: 50px; height: 30px; border: 0; } .mid { top: 60px; width: 50px; border-right: 3px solid var(--journey-line-color); } .end { width: 50px; height: 30px; border: 0; } .up .start { top: 30px; border-top-right-radius: 100%; border-top: 3px solid var(--journey-line-color); border-right: 3px solid var(--journey-line-color); } .up .end { width: 52px; bottom: 27px; right: 0; border-bottom-left-radius: 100%; border-bottom: 3px solid var(--journey-line-color); border-left: 3px solid var(--journey-line-color); } .down .start { bottom: 27px; border-bottom-right-radius: 100%; border-bottom: 3px solid var(--journey-line-color); border-right: 3px solid var(--journey-line-color); } .down .end { width: 52px; top: 30px; right: 0; border-top-left-radius: 100%; border-top: 3px solid var(--journey-line-color); border-left: 3px solid var(--journey-line-color); } .flat .start { left: 0; top: 30px; border-top: 3px solid var(--journey-line-color); } .flat .end { right: 0; top: 30px; border-top: 3px solid var(--journey-line-color); } .start:before, .end:before { content: ''; position: absolute; border-radius: 100%; border: 3px solid var(--journey-line-color); background: var(--light50); width: 13px; height: 13px; } .line:not(.active) .start:before, .line:not(.active) .end:before { display: none; } .up .start:before { left: -8px; top: -8px; } .up .end:before { right: -8px; bottom: -8px; } .down .start:before { left: -8px; bottom: -8px; } .down .end:before { right: -8px; top: -8px; } .flat .start:before { left: -8px; top: -8px; } .flat .end:before { right: -8px; top: -8px; } .line.active .segment, .line.active .segment:before { border-color: var(--journey-active-color); z-index: 1; } .column.active .line:not(.active) .segment { border-color: var(--journey-faded-color); } .column.active .line:not(.active) .segment:before { display: none; }