* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #1a1a2e; color: #eee; height: 100vh; display: flex; flex-direction: column; overflow: hidden; }
#top-bar { display: flex; align-items: center; padding: 8px 16px; background: #16213e; border-bottom: 1px solid #0f3460; flex-shrink: 0; }
#title-section h1 { font-size: 18px; font-weight: 600; }
#title-section .subtitle { font-size: 12px; color: #8899aa; margin-left: 8px; }
#main { flex: 1; overflow-y: auto; padding: 20px; }

.flow-row { display: flex; align-items: center; margin-bottom: 6px; }
.flow-label { width: 180px; text-align: right; padding-right: 12px; font-size: 13px; color: #aabbcc; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.flow-bar { flex: 1; display: flex; height: 24px; border-radius: 3px; overflow: hidden; }
.flow-segment { height: 100%; position: relative; transition: opacity 0.2s; }
.flow-segment:hover { opacity: 0.8; }
.flow-segment:hover::after { content: attr(data-label); position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); background: #0f1a2e; padding: 2px 8px; border-radius: 3px; font-size: 11px; white-space: nowrap; z-index: 5; color: #eee; }
.flow-total { width: 50px; text-align: right; font-size: 12px; color: #667788; padding-left: 8px; }

.legend { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; font-size: 12px; }
.legend-item { display: flex; align-items: center; gap: 4px; }
.legend-dot { width: 10px; height: 10px; border-radius: 50%; }
