arcticaurora commited on
Commit
02d41e6
·
verified ·
1 Parent(s): 8de2156

Delete static/app.css

Browse files
Files changed (1) hide show
  1. static/app.css +0 -562
static/app.css DELETED
@@ -1,562 +0,0 @@
1
- /* static/css/app.css */
2
-
3
- /* --- ROOT VARIABLES & RESET --- */
4
- :root {
5
- --bg-primary: #111827;
6
- --bg-secondary: #1F2937;
7
- --bg-tertiary: #374151;
8
- --border-color: #4B5563;
9
- --text-primary: #F9FAFB;
10
- --text-secondary: #D1D5DB;
11
- --text-muted: #9CA3AF;
12
- --accent-primary: #06B6D4; /* Cyan */
13
- --accent-secondary: #8B5CF6; /* Violet */
14
- --accent-success: #10B981;
15
- --accent-warning: #F59E0B;
16
- --accent-danger: #EF4444;
17
- --font-sans: 'Inter', sans-serif;
18
- --font-mono: 'JetBrains Mono', monospace;
19
- --sidebar-width: 240px;
20
- --header-height: 60px;
21
- --border-radius: 8px;
22
- --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
23
- }
24
-
25
- * {
26
- margin: 0;
27
- padding: 0;
28
- box-sizing: border-box;
29
- }
30
-
31
- body {
32
- font-family: var(--font-sans);
33
- background-color: var(--bg-primary);
34
- color: var(--text-primary);
35
- font-size: 16px;
36
- line-height: 1.5;
37
- overflow-x: hidden;
38
- }
39
-
40
- /* --- MAIN LAYOUT --- */
41
- .app-container {
42
- display: flex;
43
- height: 100vh;
44
- }
45
-
46
- .sidebar {
47
- width: var(--sidebar-width);
48
- background-color: var(--bg-primary);
49
- border-right: 1px solid var(--border-color);
50
- display: flex;
51
- flex-direction: column;
52
- padding: 1.5rem 1rem;
53
- transition: width 0.3s ease;
54
- }
55
-
56
- .sidebar-header {
57
- font-size: 1.5rem;
58
- font-weight: 700;
59
- color: var(--accent-primary);
60
- display: flex;
61
- align-items: center;
62
- gap: 0.75rem;
63
- margin-bottom: 2rem;
64
- }
65
-
66
- .sidebar-nav {
67
- list-style: none;
68
- display: flex;
69
- flex-direction: column;
70
- gap: 0.5rem;
71
- }
72
-
73
- .nav-link {
74
- display: flex;
75
- align-items: center;
76
- gap: 0.75rem;
77
- padding: 0.75rem 1rem;
78
- border-radius: var(--border-radius);
79
- text-decoration: none;
80
- color: var(--text-secondary);
81
- font-weight: 500;
82
- transition: background-color 0.2s ease, color 0.2s ease;
83
- }
84
-
85
- .nav-link i {
86
- width: 20px;
87
- text-align: center;
88
- }
89
-
90
- .nav-link:hover {
91
- background-color: var(--bg-secondary);
92
- color: var(--text-primary);
93
- }
94
-
95
- .nav-link.active {
96
- background-color: var(--accent-primary);
97
- color: var(--bg-primary);
98
- font-weight: 600;
99
- }
100
-
101
- .main-content {
102
- flex: 1;
103
- display: flex;
104
- flex-direction: column;
105
- overflow-y: auto;
106
- }
107
-
108
- .main-header {
109
- height: var(--header-height);
110
- display: flex;
111
- align-items: center;
112
- justify-content: space-between;
113
- padding: 0 2rem;
114
- border-bottom: 1px solid var(--border-color);
115
- background-color: var(--bg-primary);
116
- position: sticky;
117
- top: 0;
118
- z-index: 10;
119
- }
120
-
121
- .main-header h1 {
122
- font-size: 1.25rem;
123
- font-weight: 600;
124
- }
125
-
126
- .page-content {
127
- padding: 2rem;
128
- flex: 1;
129
- }
130
-
131
- .page {
132
- display: none;
133
- }
134
-
135
- .page.active {
136
- display: block;
137
- animation: fadeIn 0.5s ease-in-out;
138
- }
139
-
140
- @keyframes fadeIn {
141
- from { opacity: 0; transform: translateY(10px); }
142
- to { opacity: 1; transform: translateY(0); }
143
- }
144
-
145
- /* --- STATUS BADGE --- */
146
- .status-badge {
147
- display: flex;
148
- align-items: center;
149
- gap: 0.5rem;
150
- padding: 0.375rem 0.75rem;
151
- border-radius: 999px;
152
- font-size: 0.875rem;
153
- font-weight: 500;
154
- }
155
- .status-dot {
156
- width: 10px;
157
- height: 10px;
158
- border-radius: 50%;
159
- }
160
- .status-badge.idle { background-color: rgba(156, 163, 175, 0.2); color: var(--text-muted); }
161
- .status-badge.idle .status-dot { background-color: var(--text-muted); }
162
- .status-badge.running { background-color: rgba(6, 182, 212, 0.2); color: var(--accent-primary); }
163
- .status-badge.running .status-dot { background-color: var(--accent-primary); animation: pulse 1.5s infinite; }
164
- .status-badge.success { background-color: rgba(16, 185, 129, 0.2); color: var(--accent-success); }
165
- .status-badge.success .status-dot { background-color: var(--accent-success); }
166
- .status-badge.error { background-color: rgba(239, 68, 68, 0.2); color: var(--accent-danger); }
167
- .status-badge.error .status-dot { background-color: var(--accent-danger); }
168
-
169
- @keyframes pulse {
170
- 0% { box-shadow: 0 0 0 0 var(--accent-primary); }
171
- 70% { box-shadow: 0 0 0 8px rgba(6, 182, 212, 0); }
172
- 100% { box-shadow: 0 0 0 0 rgba(6, 182, 212, 0); }
173
- }
174
-
175
-
176
- /* --- DASHBOARD --- */
177
- .dashboard-grid {
178
- display: grid;
179
- grid-template-columns: repeat(2, 1fr);
180
- gap: 1.5rem;
181
- }
182
- .dashboard-card {
183
- background-color: var(--bg-secondary);
184
- border: 1px solid var(--border-color);
185
- border-radius: var(--border-radius);
186
- padding: 1.5rem;
187
- }
188
- .dashboard-card.full-width {
189
- grid-column: 1 / -1;
190
- }
191
- .dashboard-card h4 {
192
- font-size: 1rem;
193
- font-weight: 500;
194
- color: var(--text-secondary);
195
- margin-bottom: 1rem;
196
- }
197
- .status-highlight p {
198
- font-size: 1.125rem;
199
- color: var(--text-primary);
200
- margin-bottom: 1.5rem;
201
- }
202
- .quick-actions {
203
- display: flex;
204
- gap: 1rem;
205
- }
206
- #last-operation-summary .op-status {
207
- font-size: 1.25rem;
208
- font-weight: 600;
209
- margin-bottom: 0.5rem;
210
- }
211
- #last-operation-summary .op-status.success { color: var(--accent-success); }
212
- #last-operation-summary .op-status.error { color: var(--accent-danger); }
213
- #last-operation-summary .op-details {
214
- display: grid;
215
- grid-template-columns: auto 1fr;
216
- gap: 0.25rem 1rem;
217
- color: var(--text-muted);
218
- font-size: 0.875rem;
219
- }
220
- .mini-log-feed {
221
- font-family: var(--font-mono);
222
- font-size: 0.875rem;
223
- max-height: 200px;
224
- overflow-y: auto;
225
- }
226
- .mini-log-entry {
227
- display: flex;
228
- gap: 1rem;
229
- padding: 0.25rem 0;
230
- color: var(--text-secondary);
231
- }
232
- .mini-log-entry .timestamp { color: var(--text-muted); }
233
- .mini-log-entry .level-info { color: var(--accent-primary); }
234
- .mini-log-entry .level-success { color: var(--accent-success); }
235
- .mini-log-entry .level-warning { color: var(--accent-warning); }
236
- .mini-log-entry .level-error { color: var(--accent-danger); }
237
-
238
- /* --- FORMS & CONNECTIONS --- */
239
- .form-card {
240
- background-color: var(--bg-secondary);
241
- border: 1px solid var(--border-color);
242
- border-radius: var(--border-radius);
243
- padding: 2rem;
244
- }
245
- .connection-grid, .form-grid {
246
- display: grid;
247
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
248
- gap: 1.5rem;
249
- }
250
- .form-card h3 {
251
- margin-bottom: 1.5rem;
252
- font-weight: 600;
253
- display: flex;
254
- align-items: center;
255
- gap: 0.5rem;
256
- }
257
- .form-group {
258
- margin-bottom: 1.25rem;
259
- }
260
- .form-group label {
261
- display: block;
262
- font-weight: 500;
263
- margin-bottom: 0.5rem;
264
- color: var(--text-secondary);
265
- }
266
- .form-control {
267
- width: 100%;
268
- padding: 0.75rem 1rem;
269
- background-color: var(--bg-primary);
270
- border: 1px solid var(--border-color);
271
- border-radius: var(--border-radius);
272
- color: var(--text-primary);
273
- font-family: var(--font-sans);
274
- font-size: 1rem;
275
- transition: border-color 0.2s ease, box-shadow 0.2s ease;
276
- }
277
- .form-control:focus {
278
- outline: none;
279
- border-color: var(--accent-primary);
280
- box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.3);
281
- }
282
- .input-group {
283
- display: flex;
284
- }
285
- .input-group .form-control {
286
- border-right: none;
287
- border-top-right-radius: 0;
288
- border-bottom-right-radius: 0;
289
- }
290
- .input-group .btn-icon {
291
- border-top-left-radius: 0;
292
- border-bottom-left-radius: 0;
293
- border: 1px solid var(--border-color);
294
- border-left: 0;
295
- background-color: var(--bg-primary);
296
- }
297
- .connection-details {
298
- margin-top: 1.5rem;
299
- padding-top: 1.5rem;
300
- border-top: 1px solid var(--border-color);
301
- font-size: 0.875rem;
302
- }
303
- .connection-details p { margin-bottom: 0.5rem; }
304
- .connection-details .success { color: var(--accent-success); }
305
- .connection-details .error { color: var(--accent-danger); }
306
- .checkbox-group { display: flex; flex-direction: column; gap: 0.75rem; }
307
- .checkbox-group label { display: flex; align-items: center; gap: 0.5rem; cursor: pointer; }
308
- .form-actions { margin-top: 1.5rem; }
309
-
310
- /* --- BUTTONS --- */
311
- .btn {
312
- display: inline-flex;
313
- align-items: center;
314
- justify-content: center;
315
- gap: 0.5rem;
316
- padding: 0.75rem 1.5rem;
317
- font-size: 1rem;
318
- font-weight: 600;
319
- border-radius: var(--border-radius);
320
- border: none;
321
- cursor: pointer;
322
- transition: all 0.2s ease;
323
- text-decoration: none;
324
- }
325
- .btn:disabled { opacity: 0.5; cursor: not-allowed; }
326
- .btn-primary { background-color: var(--accent-primary); color: var(--bg-primary); }
327
- .btn-primary:hover:not(:disabled) { filter: brightness(1.1); }
328
- .btn-secondary { background-color: var(--accent-secondary); color: var(--text-primary); }
329
- .btn-secondary:hover:not(:disabled) { filter: brightness(1.1); }
330
- .btn-danger { background-color: var(--accent-danger); color: var(--text-primary); }
331
- .btn-danger:hover:not(:disabled) { filter: brightness(1.1); }
332
- .btn-icon {
333
- padding: 0.75rem;
334
- width: auto;
335
- line-height: 1;
336
- }
337
-
338
- /* --- PROGRESS VIEW --- */
339
- .progress-card {
340
- background-color: var(--bg-secondary);
341
- border: 1px solid var(--border-color);
342
- border-radius: var(--border-radius);
343
- padding: 2rem;
344
- }
345
- .progress-header {
346
- display: flex;
347
- justify-content: space-between;
348
- align-items: center;
349
- margin-bottom: 1.5rem;
350
- }
351
- .progress-header h3 { display: flex; align-items: center; gap: 0.75rem; }
352
- .progress-stats {
353
- display: grid;
354
- grid-template-columns: repeat(3, 1fr);
355
- gap: 1.5rem;
356
- margin-bottom: 2rem;
357
- text-align: center;
358
- }
359
- .stat-label {
360
- display: block;
361
- color: var(--text-muted);
362
- font-size: 0.875rem;
363
- margin-bottom: 0.25rem;
364
- }
365
- .stat-value {
366
- font-size: 1.5rem;
367
- font-weight: 600;
368
- font-family: var(--font-mono);
369
- white-space: nowrap;
370
- overflow: hidden;
371
- text-overflow: ellipsis;
372
- }
373
- .progress-tracker {
374
- margin-bottom: 1.5rem;
375
- }
376
- .progress-tracker:last-child { margin-bottom: 0; }
377
- .progress-tracker label {
378
- display: block;
379
- margin-bottom: 0.5rem;
380
- font-weight: 500;
381
- color: var(--text-secondary);
382
- }
383
- .progress-bar-container {
384
- height: 12px;
385
- background-color: var(--bg-primary);
386
- border-radius: 999px;
387
- overflow: hidden;
388
- }
389
- .progress-bar {
390
- height: 100%;
391
- width: 0%;
392
- background: linear-gradient(90deg, var(--accent-secondary), var(--accent-primary));
393
- border-radius: 999px;
394
- transition: width 0.5s ease-out;
395
- }
396
- .progress-bar.secondary {
397
- background: var(--accent-primary);
398
- }
399
- .progress-subtext {
400
- display: block;
401
- margin-top: 0.5rem;
402
- font-size: 0.875rem;
403
- color: var(--text-muted);
404
- font-family: var(--font-mono);
405
- }
406
-
407
- /* --- LOGS --- */
408
- .log-container {
409
- background-color: var(--bg-secondary);
410
- border: 1px solid var(--border-color);
411
- border-radius: var(--border-radius);
412
- height: 70vh;
413
- display: flex;
414
- flex-direction: column;
415
- }
416
- .log-header {
417
- padding: 1rem 1.5rem;
418
- border-bottom: 1px solid var(--border-color);
419
- display: flex;
420
- justify-content: space-between;
421
- align-items: center;
422
- }
423
- .log-controls {
424
- display: flex;
425
- align-items: center;
426
- gap: 0.75rem;
427
- }
428
- .log-output {
429
- flex: 1;
430
- padding: 1rem 1.5rem;
431
- font-family: var(--font-mono);
432
- font-size: 0.875rem;
433
- overflow-y: auto;
434
- white-space: pre-wrap;
435
- word-break: break-word;
436
- }
437
- .log-entry {
438
- display: flex;
439
- gap: 1rem;
440
- line-height: 1.6;
441
- }
442
- .log-entry .timestamp { color: var(--text-muted); }
443
- .log-entry .level { font-weight: 600; }
444
- .log-entry .level-info { color: var(--accent-primary); }
445
- .log-entry .level-success { color: var(--accent-success); }
446
- .log-entry .level-warning { color: var(--accent-warning); }
447
- .log-entry .level-error { color: var(--accent-danger); }
448
-
449
- /* --- TOGGLE SWITCH --- */
450
- .toggle-switch {
451
- position: relative;
452
- display: inline-block;
453
- width: 40px;
454
- height: 22px;
455
- }
456
- .toggle-switch input { opacity: 0; width: 0; height: 0; }
457
- .slider {
458
- position: absolute;
459
- cursor: pointer;
460
- top: 0;
461
- left: 0;
462
- right: 0;
463
- bottom: 0;
464
- background-color: var(--bg-tertiary);
465
- transition: .4s;
466
- border-radius: 22px;
467
- }
468
- .slider:before {
469
- position: absolute;
470
- content: "";
471
- height: 16px;
472
- width: 16px;
473
- left: 3px;
474
- bottom: 3px;
475
- background-color: white;
476
- transition: .4s;
477
- border-radius: 50%;
478
- }
479
- input:checked + .slider { background-color: var(--accent-primary); }
480
- input:checked + .slider:before { transform: translateX(18px); }
481
-
482
- /* --- MODAL --- */
483
- .modal-backdrop {
484
- position: fixed;
485
- top: 0;
486
- left: 0;
487
- width: 100%;
488
- height: 100%;
489
- background-color: rgba(0, 0, 0, 0.6);
490
- backdrop-filter: blur(5px);
491
- display: flex;
492
- align-items: center;
493
- justify-content: center;
494
- z-index: 1000;
495
- opacity: 0;
496
- transition: opacity 0.3s ease;
497
- }
498
- .modal-backdrop:not(.hidden) { opacity: 1; }
499
- .modal {
500
- background-color: var(--bg-secondary);
501
- border-radius: var(--border-radius);
502
- width: 90%;
503
- max-width: 500px;
504
- box-shadow: var(--shadow-md);
505
- transform: scale(0.95);
506
- transition: transform 0.3s ease;
507
- }
508
- .modal-backdrop:not(.hidden) .modal { transform: scale(1); }
509
- .modal-header {
510
- padding: 1.5rem;
511
- border-bottom: 1px solid var(--border-color);
512
- display: flex;
513
- justify-content: space-between;
514
- align-items: center;
515
- }
516
- .modal-header h3 { font-size: 1.25rem; }
517
- .modal-body { padding: 1.5rem; }
518
- .modal-footer {
519
- padding: 1.5rem;
520
- border-top: 1px solid var(--border-color);
521
- display: flex;
522
- justify-content: flex-end;
523
- gap: 1rem;
524
- }
525
-
526
- /* --- TOAST NOTIFICATIONS --- */
527
- #toast-container {
528
- position: fixed;
529
- bottom: 1.5rem;
530
- right: 1.5rem;
531
- z-index: 2000;
532
- display: flex;
533
- flex-direction: column;
534
- gap: 1rem;
535
- }
536
- .toast {
537
- background-color: var(--bg-secondary);
538
- border-left: 4px solid var(--accent-primary);
539
- border-radius: var(--border-radius);
540
- padding: 1rem 1.5rem;
541
- box-shadow: var(--shadow-md);
542
- display: flex;
543
- align-items: center;
544
- gap: 1rem;
545
- min-width: 300px;
546
- animation: slideIn 0.3s ease-out;
547
- }
548
- .toast.success { border-color: var(--accent-success); }
549
- .toast.error { border-color: var(--accent-danger); }
550
- .toast-icon { font-size: 1.25rem; }
551
- .toast-body h4 { font-weight: 600; margin-bottom: 0.25rem; }
552
- .toast-body p { font-size: 0.875rem; color: var(--text-secondary); }
553
-
554
- @keyframes slideIn {
555
- from { transform: translateX(100%); opacity: 0; }
556
- to { transform: translateX(0); opacity: 1; }
557
- }
558
-
559
- /* --- UTILITIES --- */
560
- .hidden { display: none !important; }
561
- .text-muted { color: var(--text-muted); }
562
- .text-center { text-align: center; }