|
5 | 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
6 | 6 | <title>Network TimeArcs</title> |
7 | 7 | <script src="https://d3js.org/d3.v7.min.js"></script> |
8 | | - <style> |
9 | | - body { |
10 | | - margin: 0; |
11 | | - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; |
12 | | - color: #212529; |
13 | | - background: #f8f9fa; |
14 | | - } |
15 | | - header { |
16 | | - padding: 12px 16px; |
17 | | - background: #ffffff; |
18 | | - border-bottom: 1px solid #e9ecef; |
19 | | - position: sticky; |
20 | | - top: 0; |
21 | | - z-index: 100; |
22 | | - } |
23 | | - .header-controls { |
24 | | - display: flex; |
25 | | - gap: 12px; |
26 | | - align-items: center; |
27 | | - flex-wrap: wrap; |
28 | | - } |
29 | | - .secondary-controls { |
30 | | - display: flex; |
31 | | - gap: 12px; |
32 | | - align-items: center; |
33 | | - flex-wrap: wrap; |
34 | | - padding: 12px 16px 8px 16px; |
35 | | - background: #ffffff; |
36 | | - border-bottom: 1px solid #e9ecef; |
37 | | - position: sticky; |
38 | | - top: 48px; |
39 | | - z-index: 99; |
40 | | - } |
41 | | - main { padding: 8px 16px 12px 16px; } |
42 | | - .top-bar { |
43 | | - position: sticky; |
44 | | - top: 110px; |
45 | | - z-index: 98; |
46 | | - background: #ffffff; |
47 | | - border-bottom: 1px solid #e9ecef; |
48 | | - padding: 8px 0; |
49 | | - } |
50 | | - #axis-top { display: block; height: 36px; } |
51 | | - #chart-container { |
52 | | - background: #fff; |
53 | | - border: 1px solid #e9ecef; |
54 | | - border-radius: 6px; |
55 | | - padding: 8px; |
56 | | - overflow: auto; |
57 | | - min-height: 400px; |
58 | | - margin-top: 8px; |
59 | | - position: relative; |
60 | | - } |
61 | | - .row-line { stroke: #e9ecef; stroke-width: 1; } |
62 | | - .ip-label { font-size: 8px; fill: #343a40; } |
63 | | - .time-axis text { font-size: 10px; fill: #000; } |
64 | | - .time-axis path, .time-axis line { stroke: #000; } |
65 | | - .arc { fill: none; stroke-opacity: 0.8; pointer-events: stroke; } |
66 | | - .arc:hover { stroke-opacity: 1; } |
67 | | - .legend { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin: 0; } |
68 | | - .legend-item { display: flex; align-items: center; gap: 6px; font-size: 12px; } |
69 | | - .swatch { width: 12px; height: 12px; border-radius: 2px; border: 1px solid #dee2e6; } |
70 | | - .controls { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; } |
71 | | - .hint { color: #6c757d; font-size: 12px; } |
72 | | - #status { color: #6c757d; font-size: 12px; margin-left: auto; white-space: nowrap; } |
73 | | - .tooltip { position: fixed; background: rgba(0,0,0,0.85); color: #fff; padding: 8px 10px; border-radius: 4px; font-size: 12px; pointer-events: none; display: none; z-index: 99999; } |
74 | | - </style> |
| 8 | + <link rel="stylesheet" href="attack_timearcs.css"> |
75 | 9 | <link rel="preconnect" href="https://d3js.org" /> |
76 | 10 | <link rel="dns-prefetch" href="https://d3js.org" /> |
77 | 11 | </head> |
|
0 commit comments