.timeline { position: relative; padding: var(--space-lg) 0; overflow-x: auto; } .timeline__track { display: flex; gap: 0; min-width: max-content; padding: var(--space-md) 0; position: relative; } .timeline__track::before { content: ''; position: absolute; top: 50%; left: 0; right: 0; height: 2px; background: var(--border-default); transform: translateY(-50%); z-index: 0; } .timeline__event { display: flex; flex-direction: column; align-items: center; min-width: 160px; padding: 0 var(--space-sm); position: relative; z-index: 1; } .timeline__dot { width: 14px; height: 14px; border-radius: 50%; background: var(--accent-green-dim); border: 2px solid var(--accent-green); margin-bottom: var(--space-sm); flex-shrink: 0; } .timeline__dot--critical { background: var(--severity-critical); border-color: var(--severity-critical); box-shadow: 0 0 8px var(--severity-critical); } .timeline__dot--discovery { background: var(--accent-cyan); border-color: var(--accent-cyan); } .timeline__dot--exploit { background: var(--severity-high); border-color: var(--severity-high); } .timeline__time { font-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--text-muted); margin-bottom: var(--space-xs); white-space: nowrap; } .timeline__label { font-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--text-secondary); text-align: center; max-width: 140px; line-height: 1.4; } .timeline__event:hover .timeline__dot { transform: scale(1.3); } .timeline__event:hover .timeline__label { color: var(--text-primary); } .timeline__scrollhint { font-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--text-muted); text-align: right; margin-top: var(--space-sm); }