BallieZA commited on
Commit
cc90c8a
·
verified ·
1 Parent(s): 41f4ed7

Upload style.css with huggingface_hub

Browse files
Files changed (1) hide show
  1. style.css +980 -18
style.css CHANGED
@@ -1,28 +1,990 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
 
 
 
 
 
 
 
 
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
 
 
 
 
 
 
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* CSS Variables */
2
+ :root {
3
+ --primary-color: #2563eb;
4
+ --primary-dark: #1d4ed8;
5
+ --secondary-color: #64748b;
6
+ --success-color: #10b981;
7
+ --warning-color: #f59e0b;
8
+ --danger-color: #ef4444;
9
+ --bg-primary: #f8fafc;
10
+ --bg-secondary: #ffffff;
11
+ --bg-dark: #1e293b;
12
+ --text-primary: #1e293b;
13
+ --text-secondary: #64748b;
14
+ --border-color: #e2e8f0;
15
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
16
+ --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
17
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
18
+ --radius-sm: 6px;
19
+ --radius-md: 10px;
20
+ --radius-lg: 16px;
21
+ --transition: all 0.3s ease;
22
+ }
23
+
24
+ /* Reset & Base */
25
+ * {
26
+ margin: 0;
27
+ padding: 0;
28
+ box-sizing: border-box;
29
+ }
30
+
31
  body {
32
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
33
+ background: var(--bg-primary);
34
+ color: var(--text-primary);
35
+ line-height: 1.6;
36
+ min-height: 100vh;
37
+ }
38
+
39
+ /* App Container */
40
+ .app-container {
41
+ max-width: 1400px;
42
+ margin: 0 auto;
43
+ padding: 20px;
44
+ }
45
+
46
+ /* Header */
47
+ .header {
48
+ display: flex;
49
+ justify-content: space-between;
50
+ align-items: center;
51
+ padding: 20px 30px;
52
+ background: var(--bg-secondary);
53
+ border-radius: var(--radius-lg);
54
+ box-shadow: var(--shadow-md);
55
+ margin-bottom: 20px;
56
+ }
57
+
58
+ .header-content {
59
+ display: flex;
60
+ flex-direction: column;
61
+ gap: 5px;
62
+ }
63
+
64
+ .logo {
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 12px;
68
+ }
69
+
70
+ .logo-icon {
71
+ font-size: 2rem;
72
+ }
73
+
74
+ .logo h1 {
75
+ font-size: 1.8rem;
76
+ font-weight: 700;
77
+ color: var(--bg-dark);
78
+ }
79
+
80
+ .tagline {
81
+ color: var(--text-secondary);
82
+ font-size: 0.95rem;
83
+ }
84
+
85
+ .attribution {
86
+ font-size: 0.85rem;
87
+ color: var(--text-secondary);
88
+ }
89
+
90
+ .attribution a {
91
+ color: var(--primary-color);
92
+ text-decoration: none;
93
+ font-weight: 500;
94
+ }
95
+
96
+ .attribution a:hover {
97
+ text-decoration: underline;
98
+ }
99
+
100
+ /* Status Panel */
101
+ .status-panel {
102
+ display: flex;
103
+ gap: 20px;
104
+ margin-bottom: 20px;
105
+ }
106
+
107
+ .status-card {
108
+ flex: 1;
109
+ background: var(--bg-secondary);
110
+ padding: 20px;
111
+ border-radius: var(--radius-md);
112
+ box-shadow: var(--shadow-sm);
113
+ }
114
+
115
+ .status-indicator {
116
+ display: flex;
117
+ align-items: center;
118
+ gap: 10px;
119
+ margin-bottom: 10px;
120
+ }
121
+
122
+ .status-dot {
123
+ width: 12px;
124
+ height: 12px;
125
+ border-radius: 50%;
126
+ background: var(--warning-color);
127
+ animation: pulse 2s infinite;
128
+ }
129
+
130
+ .status-dot.loaded {
131
+ background: var(--success-color);
132
+ animation: none;
133
+ }
134
+
135
+ .status-dot.error {
136
+ background: var(--danger-color);
137
+ animation: none;
138
+ }
139
+
140
+ @keyframes pulse {
141
+ 0%, 100% { opacity: 1; }
142
+ 50% { opacity: 0.5; }
143
+ }
144
+
145
+ .status-text {
146
+ font-weight: 500;
147
+ color: var(--text-primary);
148
+ }
149
+
150
+ .progress-container {
151
+ display: flex;
152
+ align-items: center;
153
+ gap: 15px;
154
+ }
155
+
156
+ .progress-bar {
157
+ flex: 1;
158
+ height: 8px;
159
+ background: var(--border-color);
160
+ border-radius: 4px;
161
+ overflow: hidden;
162
+ }
163
+
164
+ .progress-fill {
165
+ height: 100%;
166
+ background: var(--primary-color);
167
+ width: 0%;
168
+ transition: width 0.3s ease;
169
+ }
170
+
171
+ .progress-text {
172
+ font-size: 0.9rem;
173
+ color: var(--text-secondary);
174
+ min-width: 45px;
175
+ }
176
+
177
+ .model-info {
178
+ background: var(--bg-secondary);
179
+ padding: 20px;
180
+ border-radius: var(--radius-md);
181
+ box-shadow: var(--shadow-sm);
182
+ display: flex;
183
+ flex-direction: column;
184
+ justify-content: center;
185
+ }
186
+
187
+ .info-label {
188
+ font-size: 0.85rem;
189
+ color: var(--text-secondary);
190
+ }
191
+
192
+ .info-value {
193
+ font-weight: 600;
194
+ color: var(--text-primary);
195
+ margin-top: 5px;
196
+ }
197
+
198
+ /* Input Section */
199
+ .input-section {
200
+ margin-bottom: 20px;
201
+ }
202
+
203
+ .input-card {
204
+ background: var(--bg-secondary);
205
+ padding: 25px;
206
+ border-radius: var(--radius-md);
207
+ box-shadow: var(--shadow-md);
208
+ }
209
+
210
+ .input-card h2 {
211
+ margin-bottom: 20px;
212
+ color: var(--text-primary);
213
+ }
214
+
215
+ /* Tabs */
216
+ .input-tabs {
217
+ display: flex;
218
+ gap: 10px;
219
+ margin-bottom: 20px;
220
+ border-bottom: 2px solid var(--border-color);
221
+ padding-bottom: 10px;
222
+ }
223
+
224
+ .tab-btn {
225
+ padding: 10px 20px;
226
+ border: none;
227
+ background: transparent;
228
+ color: var(--text-secondary);
229
+ font-size: 0.95rem;
230
+ font-weight: 500;
231
+ cursor: pointer;
232
+ border-radius: var(--radius-sm);
233
+ transition: var(--transition);
234
+ }
235
+
236
+ .tab-btn:hover {
237
+ background: var(--bg-primary);
238
+ color: var(--text-primary);
239
+ }
240
+
241
+ .tab-btn.active {
242
+ background: var(--primary-color);
243
+ color: white;
244
+ }
245
+
246
+ .tab-content {
247
+ display: none;
248
+ }
249
+
250
+ .tab-content.active {
251
+ display: block;
252
  }
253
 
254
+ /* Text Input */
255
+ textarea {
256
+ width: 100%;
257
+ min-height: 200px;
258
+ padding: 15px;
259
+ border: 2px solid var(--border-color);
260
+ border-radius: var(--radius-md);
261
+ font-family: 'Monaco', 'Consolas', monospace;
262
+ font-size: 0.9rem;
263
+ resize: vertical;
264
+ transition: var(--transition);
265
  }
266
 
267
+ textarea:focus {
268
+ outline: none;
269
+ border-color: var(--primary-color);
 
 
270
  }
271
 
272
+ .input-actions {
273
+ display: flex;
274
+ justify-content: flex-end;
275
+ gap: 10px;
276
+ margin-top: 15px;
 
277
  }
278
 
279
+ /* Buttons */
280
+ .btn {
281
+ padding: 12px 24px;
282
+ border: none;
283
+ border-radius: var(--radius-sm);
284
+ font-size: 0.95rem;
285
+ font-weight: 500;
286
+ cursor: pointer;
287
+ transition: var(--transition);
288
  }
289
+
290
+ .btn-primary {
291
+ background: var(--primary-color);
292
+ color: white;
293
+ }
294
+
295
+ .btn-primary:hover:not(:disabled) {
296
+ background: var(--primary-dark);
297
+ }
298
+
299
+ .btn-primary:disabled {
300
+ background: var(--secondary-color);
301
+ cursor: not-allowed;
302
+ }
303
+
304
+ .btn-secondary {
305
+ background: var(--bg-primary);
306
+ color: var(--text-primary);
307
+ border: 1px solid var(--border-color);
308
+ }
309
+
310
+ .btn-secondary:hover {
311
+ background: var(--border-color);
312
+ }
313
+
314
+ /* File Upload */
315
+ .file-upload-area {
316
+ border: 2px dashed var(--border-color);
317
+ border-radius: var(--radius-md);
318
+ padding: 50px;
319
+ text-align: center;
320
+ cursor: pointer;
321
+ transition: var(--transition);
322
+ }
323
+
324
+ .file-upload-area:hover,
325
+ .file-upload-area.dragover {
326
+ border-color: var(--primary-color);
327
+ background: rgba(37, 99, 235, 0.05);
328
+ }
329
+
330
+ .upload-icon {
331
+ font-size: 3rem;
332
+ margin-bottom: 15px;
333
+ }
334
+
335
+ .file-upload-area p {
336
+ color: var(--text-primary);
337
+ margin: 5px 0;
338
+ }
339
+
340
+ .upload-hint {
341
+ color: var(--text-secondary) !important;
342
+ font-size: 0.9rem;
343
+ }
344
+
345
+ .file-types {
346
+ color: var(--text-secondary) !important;
347
+ font-size: 0.8rem !important;
348
+ }
349
+
350
+ .file-info {
351
+ display: flex;
352
+ align-items: center;
353
+ gap: 15px;
354
+ padding: 15px;
355
+ background: var(--bg-primary);
356
+ border-radius: var(--radius-sm);
357
+ margin-top: 15px;
358
+ }
359
+
360
+ .file-name {
361
+ font-weight: 500;
362
+ color: var(--text-primary);
363
+ }
364
+
365
+ .file-size {
366
+ color: var(--text-secondary);
367
+ font-size: 0.85rem;
368
+ }
369
+
370
+ /* Log Presets */
371
+ .log-presets {
372
+ margin-bottom: 15px;
373
+ }
374
+
375
+ .log-presets h4 {
376
+ font-size: 0.9rem;
377
+ color: var(--text-secondary);
378
+ margin-bottom: 10px;
379
+ }
380
+
381
+ .preset-buttons {
382
+ display: flex;
383
+ flex-wrap: wrap;
384
+ gap: 10px;
385
+ }
386
+
387
+ .preset-btn {
388
+ padding: 8px 16px;
389
+ background: var(--bg-primary);
390
+ border: 1px solid var(--border-color);
391
+ border-radius: var(--radius-sm);
392
+ font-size: 0.85rem;
393
+ cursor: pointer;
394
+ transition: var(--transition);
395
+ }
396
+
397
+ .preset-btn:hover {
398
+ background: var(--border-color);
399
+ }
400
+
401
+ /* Options Section */
402
+ .options-section {
403
+ margin-bottom: 20px;
404
+ }
405
+
406
+ .options-card {
407
+ background: var(--bg-secondary);
408
+ padding: 25px;
409
+ border-radius: var(--radius-md);
410
+ box-shadow: var(--shadow-md);
411
+ }
412
+
413
+ .options-card h2 {
414
+ margin-bottom: 20px;
415
+ }
416
+
417
+ .options-grid {
418
+ display: grid;
419
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
420
+ gap: 15px;
421
+ }
422
+
423
+ .option-item {
424
+ display: flex;
425
+ align-items: center;
426
+ gap: 12px;
427
+ padding: 15px;
428
+ background: var(--bg-primary);
429
+ border-radius: var(--radius-sm);
430
+ cursor: pointer;
431
+ transition: var(--transition);
432
+ }
433
+
434
+ .option-item:hover {
435
+ background: var(--border-color);
436
+ }
437
+
438
+ .option-item input[type="checkbox"] {
439
+ width: 18px;
440
+ height: 18px;
441
+ accent-color: var(--primary-color);
442
+ }
443
+
444
+ .option-label {
445
+ font-weight: 500;
446
+ color: var(--text-primary);
447
+ }
448
+
449
+ .option-desc {
450
+ font-size: 0.8rem;
451
+ color: var(--text-secondary);
452
+ margin-left: auto;
453
+ }
454
+
455
+ /* Results Section */
456
+ .results-section {
457
+ margin-bottom: 20px;
458
+ }
459
+
460
+ .results-header {
461
+ display: flex;
462
+ justify-content: space-between;
463
+ align-items: center;
464
+ margin-bottom: 20px;
465
+ }
466
+
467
+ .results-header h2 {
468
+ color: var(--text-primary);
469
+ }
470
+
471
+ .result-actions {
472
+ display: flex;
473
+ gap: 10px;
474
+ }
475
+
476
+ /* Risk Assessment */
477
+ .risk-assessment {
478
+ background: var(--bg-secondary);
479
+ padding: 25px;
480
+ border-radius: var(--radius-md);
481
+ box-shadow: var(--shadow-md);
482
+ margin-bottom: 20px;
483
+ }
484
+
485
+ .risk-assessment h3 {
486
+ margin-bottom: 15px;
487
+ }
488
+
489
+ .risk-meter {
490
+ display: flex;
491
+ align-items: center;
492
+ gap: 20px;
493
+ }
494
+
495
+ .risk-label {
496
+ font-weight: 500;
497
+ }
498
+
499
+ .risk-indicator {
500
+ display: flex;
501
+ align-items: center;
502
+ gap: 15px;
503
+ flex: 1;
504
+ }
505
+
506
+ .risk-value {
507
+ font-weight: 700;
508
+ font-size: 1.2rem;
509
+ min-width: 100px;
510
+ }
511
+
512
+ .risk-value.low { color: var(--success-color); }
513
+ .risk-value.medium { color: var(--warning-color); }
514
+ .risk-value.high { color: var(--danger-color); }
515
+
516
+ .risk-bar-container {
517
+ flex: 1;
518
+ height: 12px;
519
+ background: var(--border-color);
520
+ border-radius: 6px;
521
+ overflow: hidden;
522
+ }
523
+
524
+ .risk-bar {
525
+ height: 100%;
526
+ width: 0%;
527
+ transition: width 0.5s ease, background-color 0.3s ease;
528
+ border-radius: 6px;
529
+ }
530
+
531
+ .risk-bar.low { background: var(--success-color); }
532
+ .risk-bar.medium { background: var(--warning-color); }
533
+ .risk-bar.high { background: var(--danger-color); }
534
+
535
+ /* Results Tabs */
536
+ .results-tabs {
537
+ display: flex;
538
+ gap: 5px;
539
+ background: var(--bg-secondary);
540
+ padding: 10px;
541
+ border-radius: var(--radius-md) var(--radius-md) 0 0;
542
+ border-bottom: 2px solid var(--border-color);
543
+ }
544
+
545
+ .result-tab {
546
+ padding: 10px 20px;
547
+ border: none;
548
+ background: transparent;
549
+ color: var(--text-secondary);
550
+ font-size: 0.9rem;
551
+ font-weight: 500;
552
+ cursor: pointer;
553
+ border-radius: var(--radius-sm);
554
+ transition: var(--transition);
555
+ }
556
+
557
+ .result-tab:hover {
558
+ background: var(--bg-primary);
559
+ }
560
+
561
+ .result-tab.active {
562
+ background: var(--primary-color);
563
+ color: white;
564
+ }
565
+
566
+ /* Results Content */
567
+ .results-content {
568
+ background: var(--bg-secondary);
569
+ padding: 25px;
570
+ border-radius: 0 0 var(--radius-md) var(--radius-md);
571
+ box-shadow: var(--shadow-md);
572
+ }
573
+
574
+ .result-panel {
575
+ display: none;
576
+ }
577
+
578
+ .result-panel.active {
579
+ display: block;
580
+ }
581
+
582
+ /* Entity Category */
583
+ .entity-category {
584
+ margin-bottom: 25px;
585
+ }
586
+
587
+ .entity-category h4 {
588
+ color: var(--text-primary);
589
+ margin-bottom: 12px;
590
+ padding-bottom: 8px;
591
+ border-bottom: 1px solid var(--border-color);
592
+ }
593
+
594
+ .entity-list {
595
+ display: flex;
596
+ flex-wrap: wrap;
597
+ gap: 10px;
598
+ }
599
+
600
+ .entity-tag {
601
+ padding: 8px 14px;
602
+ background: var(--bg-primary);
603
+ border: 1px solid var(--border-color);
604
+ border-radius: var(--radius-sm);
605
+ font-family: 'Monaco', 'Consolas', monospace;
606
+ font-size: 0.85rem;
607
+ color: var(--text-primary);
608
+ cursor: pointer;
609
+ transition: var(--transition);
610
+ }
611
+
612
+ .entity-tag:hover {
613
+ background: var(--primary-color);
614
+ color: white;
615
+ border-color: var(--primary-color);
616
+ }
617
+
618
+ .entity-tag.suspicious {
619
+ background: rgba(239, 68, 68, 0.1);
620
+ border-color: var(--danger-color);
621
+ color: var(--danger-color);
622
+ }
623
+
624
+ .entity-tag.malicious {
625
+ background: var(--danger-color);
626
+ color: white;
627
+ border-color: var(--danger-color);
628
+ }
629
+
630
+ /* Classification Results */
631
+ .classification-results {
632
+ display: flex;
633
+ flex-direction: column;
634
+ gap: 15px;
635
+ }
636
+
637
+ .classification-item {
638
+ padding: 15px;
639
+ background: var(--bg-primary);
640
+ border-radius: var(--radius-sm);
641
+ border-left: 4px solid var(--primary-color);
642
+ }
643
+
644
+ .classification-item.high-risk {
645
+ border-left-color: var(--danger-color);
646
+ background: rgba(239, 68, 68, 0.05);
647
+ }
648
+
649
+ .classification-item.medium-risk {
650
+ border-left-color: var(--warning-color);
651
+ background: rgba(245, 158, 11, 0.05);
652
+ }
653
+
654
+ .classification-category {
655
+ font-weight: 600;
656
+ color: var(--text-primary);
657
+ margin-bottom: 8px;
658
+ }
659
+
660
+ .classification-confidence {
661
+ display: flex;
662
+ align-items: center;
663
+ gap: 10px;
664
+ }
665
+
666
+ .confidence-bar {
667
+ flex: 1;
668
+ height: 6px;
669
+ background: var(--border-color);
670
+ border-radius: 3px;
671
+ overflow: hidden;
672
+ }
673
+
674
+ .confidence-fill {
675
+ height: 100%;
676
+ background: var(--primary-color);
677
+ border-radius: 3px;
678
+ }
679
+
680
+ .confidence-value {
681
+ font-size: 0.85rem;
682
+ color: var(--text-secondary);
683
+ min-width: 50px;
684
+ }
685
+
686
+ /* IOC Section */
687
+ .ioc-section {
688
+ margin-bottom: 25px;
689
+ }
690
+
691
+ .ioc-section h4 {
692
+ color: var(--text-primary);
693
+ margin-bottom: 12px;
694
+ }
695
+
696
+ .ioc-list {
697
+ display: flex;
698
+ flex-direction: column;
699
+ gap: 10px;
700
+ }
701
+
702
+ .ioc-item {
703
+ display: flex;
704
+ align-items: center;
705
+ gap: 15px;
706
+ padding: 12px 15px;
707
+ background: var(--bg-primary);
708
+ border-radius: var(--radius-sm);
709
+ border-left: 3px solid var(--border-color);
710
+ }
711
+
712
+ .ioc-item.high {
713
+ border-left-color: var(--danger-color);
714
+ }
715
+
716
+ .ioc-item.medium {
717
+ border-left-color: var(--warning-color);
718
+ }
719
+
720
+ .ioc-item.low {
721
+ border-left-color: var(--success-color);
722
+ }
723
+
724
+ .ioc-type {
725
+ padding: 4px 10px;
726
+ background: var(--bg-dark);
727
+ color: white;
728
+ border-radius: var(--radius-sm);
729
+ font-size: 0.75rem;
730
+ font-weight: 600;
731
+ min-width: 80px;
732
+ text-align: center;
733
+ }
734
+
735
+ .ioc-value {
736
+ flex: 1;
737
+ font-family: 'Monaco', 'Consolas', monospace;
738
+ font-size: 0.9rem;
739
+ word-break: break-all;
740
+ }
741
+
742
+ .ioc-description {
743
+ font-size: 0.85rem;
744
+ color: var(--text-secondary);
745
+ }
746
+
747
+ /* Summary */
748
+ .summary-content {
749
+ line-height: 1.8;
750
+ color: var(--text-primary);
751
+ }
752
+
753
+ .summary-content h4 {
754
+ margin-top: 20px;
755
+ margin-bottom: 10px;
756
+ }
757
+
758
+ .summary-content ul {
759
+ margin-left: 20px;
760
+ }
761
+
762
+ /* Raw Data */
763
+ .raw-data {
764
+ background: var(--bg-dark);
765
+ color: #e2e8f0;
766
+ padding: 20px;
767
+ border-radius: var(--radius-sm);
768
+ overflow-x: auto;
769
+ font-family: 'Monaco', 'Consolas', monospace;
770
+ font-size: 0.85rem;
771
+ line-height: 1.6;
772
+ max-height: 500px;
773
+ overflow-y: auto;
774
+ }
775
+
776
+ /* History Section */
777
+ .history-section {
778
+ margin-bottom: 20px;
779
+ }
780
+
781
+ .history-header {
782
+ display: flex;
783
+ justify-content: space-between;
784
+ align-items: center;
785
+ margin-bottom: 15px;
786
+ }
787
+
788
+ .history-header h2 {
789
+ color: var(--text-primary);
790
+ }
791
+
792
+ .history-list {
793
+ background: var(--bg-secondary);
794
+ border-radius: var(--radius-md);
795
+ padding: 20px;
796
+ box-shadow: var(--shadow-sm);
797
+ max-height: 300px;
798
+ overflow-y: auto;
799
+ }
800
+
801
+ .empty-history {
802
+ color: var(--text-secondary);
803
+ text-align: center;
804
+ padding: 30px;
805
+ }
806
+
807
+ .history-item {
808
+ display: flex;
809
+ justify-content: space-between;
810
+ align-items: center;
811
+ padding: 12px 15px;
812
+ background: var(--bg-primary);
813
+ border-radius: var(--radius-sm);
814
+ margin-bottom: 10px;
815
+ cursor: pointer;
816
+ transition: var(--transition);
817
+ }
818
+
819
+ .history-item:hover {
820
+ background: var(--border-color);
821
+ }
822
+
823
+ .history-item:last-child {
824
+ margin-bottom: 0;
825
+ }
826
+
827
+ .history-info {
828
+ display: flex;
829
+ flex-direction: column;
830
+ gap: 3px;
831
+ }
832
+
833
+ .history-time {
834
+ font-size: 0.8rem;
835
+ color: var(--text-secondary);
836
+ }
837
+
838
+ .history-type {
839
+ font-weight: 500;
840
+ }
841
+
842
+ .history-risk {
843
+ padding: 4px 12px;
844
+ border-radius: var(--radius-sm);
845
+ font-size: 0.8rem;
846
+ font-weight: 600;
847
+ }
848
+
849
+ .history-risk.low {
850
+ background: rgba(16, 185, 129, 0.1);
851
+ color: var(--success-color);
852
+ }
853
+
854
+ .history-risk.medium {
855
+ background: rgba(245, 158, 11, 0.1);
856
+ color: var(--warning-color);
857
+ }
858
+
859
+ .history-risk.high {
860
+ background: rgba(239, 68, 68, 0.1);
861
+ color: var(--danger-color);
862
+ }
863
+
864
+ /* Footer */
865
+ .footer {
866
+ text-align: center;
867
+ padding: 25px;
868
+ color: var(--text-secondary);
869
+ font-size: 0.9rem;
870
+ }
871
+
872
+ .disclaimer {
873
+ margin-top: 10px;
874
+ font-size: 0.8rem;
875
+ color: var(--text-secondary);
876
+ opacity: 0.8;
877
+ }
878
+
879
+ /* Loading Overlay */
880
+ .loading-overlay {
881
+ position: fixed;
882
+ top: 0;
883
+ left: 0;
884
+ right: 0;
885
+ bottom: 0;
886
+ background: rgba(0, 0, 0, 0.7);
887
+ display: none;
888
+ justify-content: center;
889
+ align-items: center;
890
+ flex-direction: column;
891
+ gap: 20px;
892
+ z-index: 1000;
893
+ }
894
+
895
+ .loading-overlay.active {
896
+ display: flex;
897
+ }
898
+
899
+ .loading-spinner {
900
+ width: 50px;
901
+ height: 50px;
902
+ border: 4px solid rgba(255, 255, 255, 0.3);
903
+ border-top-color: white;
904
+ border-radius: 50%;
905
+ animation: spin 1s linear infinite;
906
+ }
907
+
908
+ @keyframes spin {
909
+ to { transform: rotate(360deg); }
910
+ }
911
+
912
+ #loadingText {
913
+ color: white;
914
+ font-size: 1.1rem;
915
+ }
916
+
917
+ /* Toast Notifications */
918
+ .toast-container {
919
+ position: fixed;
920
+ bottom: 20px;
921
+ right: 20px;
922
+ display: flex;
923
+ flex-direction: column;
924
+ gap: 10px;
925
+ z-index: 1001;
926
+ }
927
+
928
+ .toast {
929
+ padding: 15px 20px;
930
+ background: var(--bg-dark);
931
+ color: white;
932
+ border-radius: var(--radius-sm);
933
+ box-shadow: var(--shadow-lg);
934
+ animation: slideIn 0.3s ease;
935
+ max-width: 350px;
936
+ }
937
+
938
+ .toast.success {
939
+ background: var(--success-color);
940
+ }
941
+
942
+ .toast.error {
943
+ background: var(--danger-color);
944
+ }
945
+
946
+ .toast.warning {
947
+ background: var(--warning-color);
948
+ }
949
+
950
+ @keyframes slideIn {
951
+ from {
952
+ transform: translateX(100%);
953
+ opacity: 0;
954
+ }
955
+ to {
956
+ transform: translateX(0);
957
+ opacity: 1;
958
+ }
959
+ }
960
+
961
+ /* Responsive */
962
+ @media (max-width: 768px) {
963
+ .header {
964
+ flex-direction: column;
965
+ gap: 15px;
966
+ text-align: center;
967
+ }
968
+
969
+ .status-panel {
970
+ flex-direction: column;
971
+ }
972
+
973
+ .options-grid {
974
+ grid-template-columns: 1fr;
975
+ }
976
+
977
+ .risk-meter {
978
+ flex-direction: column;
979
+ align-items: flex-start;
980
+ }
981
+
982
+ .input-tabs {
983
+ flex-wrap: wrap;
984
+ }
985
+
986
+ .results-header {
987
+ flex-direction: column;
988
+ gap: 15px;
989
+ }
990
+ }