Fred808 commited on
Commit
7ae8fa6
·
verified ·
1 Parent(s): 4fb075f

Upload style.css

Browse files
Files changed (1) hide show
  1. static/css/style.css +378 -426
static/css/style.css CHANGED
@@ -1,426 +1,378 @@
1
- /* Reset and base styles */
2
- * {
3
- margin: 0;
4
- padding: 0;
5
- box-sizing: border-box;
6
- }
7
-
8
- body {
9
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;
10
- line-height: 1.6;
11
- color: #333;
12
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
13
- min-height: 100vh;
14
- padding: 20px;
15
- }
16
-
17
- .container {
18
- max-width: 800px;
19
- margin: 0 auto;
20
- background: rgba(255, 255, 255, 0.95);
21
- border-radius: 20px;
22
- box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
23
- backdrop-filter: blur(10px);
24
- overflow: hidden;
25
- animation: slideUp 0.6s ease-out;
26
- }
27
-
28
- @keyframes slideUp {
29
- from {
30
- opacity: 0;
31
- transform: translateY(30px);
32
- }
33
- to {
34
- opacity: 1;
35
- transform: translateY(0);
36
- }
37
- }
38
-
39
- /* Header */
40
- .header {
41
- background: linear-gradient(135deg, #ff6b6b 0%, #feca57 100%);
42
- color: white;
43
- padding: 40px 30px;
44
- text-align: center;
45
- }
46
-
47
- .title {
48
- font-size: 2.5rem;
49
- font-weight: 700;
50
- margin-bottom: 10px;
51
- text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
52
- }
53
-
54
- .subtitle {
55
- font-size: 1.1rem;
56
- opacity: 0.9;
57
- font-weight: 300;
58
- }
59
-
60
- /* Main content */
61
- .main-content {
62
- padding: 40px 30px;
63
- }
64
-
65
- .upload-section {
66
- margin-bottom: 30px;
67
- }
68
-
69
- .form-group {
70
- margin-bottom: 25px;
71
- }
72
-
73
- .form-label {
74
- display: block;
75
- font-size: 1.1rem;
76
- font-weight: 600;
77
- color: #2c3e50;
78
- margin-bottom: 10px;
79
- }
80
-
81
- .form-textarea {
82
- width: 100%;
83
- padding: 15px;
84
- border: 2px solid #e1e8ed;
85
- border-radius: 12px;
86
- font-size: 1rem;
87
- font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
88
- resize: vertical;
89
- transition: all 0.3s ease;
90
- background: #f8f9fa;
91
- }
92
-
93
- .form-textarea:focus {
94
- outline: none;
95
- border-color: #667eea;
96
- box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
97
- background: white;
98
- }
99
-
100
- .form-hint {
101
- font-size: 0.9rem;
102
- color: #6c757d;
103
- margin-top: 8px;
104
- font-style: italic;
105
- }
106
-
107
- .form-actions {
108
- display: flex;
109
- gap: 15px;
110
- flex-wrap: wrap;
111
- }
112
-
113
- /* Buttons */
114
- .btn {
115
- display: inline-flex;
116
- align-items: center;
117
- gap: 8px;
118
- padding: 12px 24px;
119
- border: none;
120
- border-radius: 10px;
121
- font-size: 1rem;
122
- font-weight: 600;
123
- cursor: pointer;
124
- transition: all 0.3s ease;
125
- text-decoration: none;
126
- position: relative;
127
- overflow: hidden;
128
- }
129
-
130
- .btn::before {
131
- content: '';
132
- position: absolute;
133
- top: 0;
134
- left: -100%;
135
- width: 100%;
136
- height: 100%;
137
- background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
138
- transition: left 0.5s;
139
- }
140
-
141
- .btn:hover::before {
142
- left: 100%;
143
- }
144
-
145
- .btn-primary {
146
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
147
- color: white;
148
- box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
149
- }
150
-
151
- .btn-primary:hover {
152
- transform: translateY(-2px);
153
- box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
154
- }
155
-
156
- .btn-primary:disabled {
157
- background: #95a5a6;
158
- cursor: not-allowed;
159
- transform: none;
160
- box-shadow: none;
161
- }
162
-
163
- .btn-secondary {
164
- background: #f8f9fa;
165
- color: #495057;
166
- border: 2px solid #dee2e6;
167
- }
168
-
169
- .btn-secondary:hover {
170
- background: #e9ecef;
171
- border-color: #adb5bd;
172
- transform: translateY(-1px);
173
- }
174
-
175
- .btn-ghost {
176
- background: transparent;
177
- color: #6c757d;
178
- border: 1px solid #dee2e6;
179
- padding: 8px 16px;
180
- font-size: 0.9rem;
181
- }
182
-
183
- .btn-ghost:hover {
184
- background: #f8f9fa;
185
- color: #495057;
186
- }
187
-
188
- /* Results section */
189
- .results-section {
190
- margin-top: 30px;
191
- border: 2px solid #e1e8ed;
192
- border-radius: 12px;
193
- overflow: hidden;
194
- animation: fadeIn 0.5s ease-out;
195
- }
196
-
197
- @keyframes fadeIn {
198
- from { opacity: 0; }
199
- to { opacity: 1; }
200
- }
201
-
202
- .results-header {
203
- background: #f8f9fa;
204
- padding: 15px 20px;
205
- border-bottom: 1px solid #e1e8ed;
206
- display: flex;
207
- justify-content: space-between;
208
- align-items: center;
209
- }
210
-
211
- .results-title {
212
- font-size: 1.2rem;
213
- font-weight: 600;
214
- color: #2c3e50;
215
- margin: 0;
216
- }
217
-
218
- .results-content {
219
- padding: 20px;
220
- background: white;
221
- font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
222
- font-size: 0.9rem;
223
- line-height: 1.8;
224
- white-space: pre-wrap;
225
- max-height: 400px;
226
- overflow-y: auto;
227
- }
228
-
229
- /* Loading section */
230
- .loading-section {
231
- text-align: center;
232
- padding: 40px 20px;
233
- animation: fadeIn 0.3s ease-out;
234
- }
235
-
236
- .loading-spinner {
237
- width: 50px;
238
- height: 50px;
239
- border: 4px solid #f3f3f3;
240
- border-top: 4px solid #667eea;
241
- border-radius: 50%;
242
- animation: spin 1s linear infinite;
243
- margin: 0 auto 20px;
244
- }
245
-
246
- @keyframes spin {
247
- 0% { transform: rotate(0deg); }
248
- 100% { transform: rotate(360deg); }
249
- }
250
-
251
- .loading-text {
252
- font-size: 1.1rem;
253
- color: #6c757d;
254
- font-weight: 500;
255
- }
256
-
257
- /* Footer */
258
- .footer {
259
- background: #f8f9fa;
260
- padding: 25px 30px;
261
- border-top: 1px solid #e1e8ed;
262
- }
263
-
264
- .footer-content {
265
- display: flex;
266
- justify-content: space-between;
267
- align-items: center;
268
- flex-wrap: wrap;
269
- gap: 20px;
270
- }
271
-
272
- .status-indicators {
273
- display: flex;
274
- gap: 20px;
275
- flex-wrap: wrap;
276
- }
277
-
278
- .status-item {
279
- display: flex;
280
- align-items: center;
281
- gap: 8px;
282
- font-size: 0.9rem;
283
- }
284
-
285
- .status-badge {
286
- padding: 4px 8px;
287
- border-radius: 6px;
288
- font-size: 0.8rem;
289
- font-weight: 600;
290
- background: #e9ecef;
291
- color: #495057;
292
- }
293
-
294
- .status-badge.success {
295
- background: #d4edda;
296
- color: #155724;
297
- }
298
-
299
- .status-badge.error {
300
- background: #f8d7da;
301
- color: #721c24;
302
- }
303
-
304
- .status-badge.warning {
305
- background: #fff3cd;
306
- color: #856404;
307
- }
308
-
309
- .footer-links {
310
- display: flex;
311
- gap: 15px;
312
- flex-wrap: wrap;
313
- }
314
-
315
- .footer-link {
316
- color: #6c757d;
317
- text-decoration: none;
318
- font-size: 0.9rem;
319
- padding: 5px 10px;
320
- border-radius: 6px;
321
- transition: all 0.3s ease;
322
- }
323
-
324
- .footer-link:hover {
325
- background: #e9ecef;
326
- color: #495057;
327
- }
328
-
329
- /* Result styling */
330
- .result-line {
331
- margin: 5px 0;
332
- padding: 8px 12px;
333
- border-radius: 6px;
334
- border-left: 4px solid transparent;
335
- }
336
-
337
- .result-success {
338
- background: #d4edda;
339
- border-left-color: #28a745;
340
- color: #155724;
341
- }
342
-
343
- .result-error {
344
- background: #f8d7da;
345
- border-left-color: #dc3545;
346
- color: #721c24;
347
- }
348
-
349
- .result-warning {
350
- background: #fff3cd;
351
- border-left-color: #ffc107;
352
- color: #856404;
353
- }
354
-
355
- .result-info {
356
- background: #d1ecf1;
357
- border-left-color: #17a2b8;
358
- color: #0c5460;
359
- }
360
-
361
- /* Responsive design */
362
- @media (max-width: 768px) {
363
- body {
364
- padding: 10px;
365
- }
366
-
367
- .container {
368
- border-radius: 15px;
369
- }
370
-
371
- .header {
372
- padding: 30px 20px;
373
- }
374
-
375
- .title {
376
- font-size: 2rem;
377
- }
378
-
379
- .main-content {
380
- padding: 30px 20px;
381
- }
382
-
383
- .form-actions {
384
- flex-direction: column;
385
- }
386
-
387
- .btn {
388
- justify-content: center;
389
- width: 100%;
390
- }
391
-
392
- .footer-content {
393
- flex-direction: column;
394
- text-align: center;
395
- }
396
-
397
- .status-indicators {
398
- justify-content: center;
399
- }
400
- }
401
-
402
- /* Keyboard shortcuts hint */
403
- .keyboard-hint {
404
- position: fixed;
405
- bottom: 20px;
406
- right: 20px;
407
- background: rgba(0, 0, 0, 0.8);
408
- color: white;
409
- padding: 10px 15px;
410
- border-radius: 8px;
411
- font-size: 0.8rem;
412
- opacity: 0;
413
- transition: opacity 0.3s ease;
414
- pointer-events: none;
415
- z-index: 1000;
416
- }
417
-
418
- .keyboard-hint.show {
419
- opacity: 1;
420
- }
421
-
422
- /* Smooth scrolling */
423
- html {
424
- scroll-behavior: smooth;
425
- }
426
-
 
1
+ /* Reset and base styles */
2
+ * {
3
+ margin: 0;
4
+ padding: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ body {
9
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
10
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
11
+ min-height: 100vh;
12
+ color: #333;
13
+ line-height: 1.6;
14
+ }
15
+
16
+ .container {
17
+ max-width: 1200px;
18
+ margin: 0 auto;
19
+ padding: 20px;
20
+ min-height: 100vh;
21
+ display: flex;
22
+ flex-direction: column;
23
+ }
24
+
25
+ /* Header styles */
26
+ .header {
27
+ text-align: center;
28
+ margin-bottom: 40px;
29
+ padding: 40px 0;
30
+ }
31
+
32
+ .header-content {
33
+ background: rgba(255, 255, 255, 0.1);
34
+ backdrop-filter: blur(10px);
35
+ border-radius: 20px;
36
+ padding: 40px;
37
+ border: 1px solid rgba(255, 255, 255, 0.2);
38
+ }
39
+
40
+ .logo {
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: center;
44
+ gap: 15px;
45
+ margin-bottom: 15px;
46
+ }
47
+
48
+ .logo i {
49
+ font-size: 2.5rem;
50
+ color: #fff;
51
+ background: linear-gradient(45deg, #ff6b6b, #4ecdc4);
52
+ -webkit-background-clip: text;
53
+ -webkit-text-fill-color: transparent;
54
+ background-clip: text;
55
+ }
56
+
57
+ .logo h1 {
58
+ font-size: 2.5rem;
59
+ font-weight: 700;
60
+ color: #fff;
61
+ text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
62
+ }
63
+
64
+ .subtitle {
65
+ font-size: 1.1rem;
66
+ color: rgba(255, 255, 255, 0.9);
67
+ font-weight: 400;
68
+ }
69
+
70
+ /* Main content */
71
+ .main-content {
72
+ flex: 1;
73
+ display: flex;
74
+ justify-content: center;
75
+ align-items: flex-start;
76
+ }
77
+
78
+ .upload-card {
79
+ background: #fff;
80
+ border-radius: 20px;
81
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
82
+ padding: 40px;
83
+ width: 100%;
84
+ max-width: 600px;
85
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
86
+ }
87
+
88
+ .upload-card:hover {
89
+ transform: translateY(-5px);
90
+ box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15);
91
+ }
92
+
93
+ .card-header {
94
+ text-align: center;
95
+ margin-bottom: 30px;
96
+ }
97
+
98
+ .card-header h2 {
99
+ font-size: 1.8rem;
100
+ font-weight: 600;
101
+ color: #2d3748;
102
+ margin-bottom: 10px;
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ gap: 10px;
107
+ }
108
+
109
+ .card-header h2 i {
110
+ color: #667eea;
111
+ }
112
+
113
+ .card-header p {
114
+ color: #718096;
115
+ font-size: 1rem;
116
+ }
117
+
118
+ /* Form styles */
119
+ .upload-form {
120
+ margin-bottom: 30px;
121
+ }
122
+
123
+ .input-group {
124
+ margin-bottom: 25px;
125
+ }
126
+
127
+ .input-group label {
128
+ display: block;
129
+ font-weight: 500;
130
+ color: #2d3748;
131
+ margin-bottom: 8px;
132
+ font-size: 0.95rem;
133
+ }
134
+
135
+ .input-group textarea {
136
+ width: 100%;
137
+ padding: 15px;
138
+ border: 2px solid #e2e8f0;
139
+ border-radius: 12px;
140
+ font-size: 1rem;
141
+ font-family: inherit;
142
+ resize: vertical;
143
+ transition: border-color 0.3s ease, box-shadow 0.3s ease;
144
+ background: #f7fafc;
145
+ }
146
+
147
+ .input-group textarea:focus {
148
+ outline: none;
149
+ border-color: #667eea;
150
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
151
+ background: #fff;
152
+ }
153
+
154
+ .input-hint {
155
+ margin-top: 8px;
156
+ font-size: 0.85rem;
157
+ color: #718096;
158
+ display: flex;
159
+ align-items: center;
160
+ gap: 5px;
161
+ }
162
+
163
+ .input-hint i {
164
+ color: #667eea;
165
+ }
166
+
167
+ /* Button styles */
168
+ .upload-btn {
169
+ width: 100%;
170
+ padding: 15px 30px;
171
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
172
+ color: #fff;
173
+ border: none;
174
+ border-radius: 12px;
175
+ font-size: 1.1rem;
176
+ font-weight: 600;
177
+ cursor: pointer;
178
+ transition: all 0.3s ease;
179
+ position: relative;
180
+ overflow: hidden;
181
+ }
182
+
183
+ .upload-btn:hover {
184
+ transform: translateY(-2px);
185
+ box-shadow: 0 10px 25px rgba(102, 126, 234, 0.3);
186
+ }
187
+
188
+ .upload-btn:active {
189
+ transform: translateY(0);
190
+ }
191
+
192
+ .upload-btn:disabled {
193
+ opacity: 0.7;
194
+ cursor: not-allowed;
195
+ transform: none;
196
+ }
197
+
198
+ .btn-text {
199
+ display: flex;
200
+ align-items: center;
201
+ justify-content: center;
202
+ gap: 10px;
203
+ }
204
+
205
+ .loading-spinner {
206
+ display: flex;
207
+ align-items: center;
208
+ justify-content: center;
209
+ gap: 10px;
210
+ }
211
+
212
+ /* Results section */
213
+ .results-section {
214
+ margin-top: 30px;
215
+ padding-top: 30px;
216
+ border-top: 2px solid #e2e8f0;
217
+ }
218
+
219
+ .results-header {
220
+ display: flex;
221
+ justify-content: space-between;
222
+ align-items: center;
223
+ margin-bottom: 20px;
224
+ }
225
+
226
+ .results-header h3 {
227
+ font-size: 1.3rem;
228
+ font-weight: 600;
229
+ color: #2d3748;
230
+ display: flex;
231
+ align-items: center;
232
+ gap: 10px;
233
+ }
234
+
235
+ .results-header h3 i {
236
+ color: #667eea;
237
+ }
238
+
239
+ .clear-btn {
240
+ padding: 8px 16px;
241
+ background: #e53e3e;
242
+ color: #fff;
243
+ border: none;
244
+ border-radius: 8px;
245
+ font-size: 0.9rem;
246
+ cursor: pointer;
247
+ transition: background 0.3s ease;
248
+ display: flex;
249
+ align-items: center;
250
+ gap: 5px;
251
+ }
252
+
253
+ .clear-btn:hover {
254
+ background: #c53030;
255
+ }
256
+
257
+ .results-content {
258
+ background: #f7fafc;
259
+ border: 2px solid #e2e8f0;
260
+ border-radius: 12px;
261
+ padding: 20px;
262
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
263
+ font-size: 0.9rem;
264
+ line-height: 1.6;
265
+ white-space: pre-wrap;
266
+ max-height: 400px;
267
+ overflow-y: auto;
268
+ }
269
+
270
+ .results-content:empty::before {
271
+ content: "No results yet...";
272
+ color: #a0aec0;
273
+ font-style: italic;
274
+ }
275
+
276
+ /* Result status styling */
277
+ .results-content .success {
278
+ color: #38a169;
279
+ }
280
+
281
+ .results-content .error {
282
+ color: #e53e3e;
283
+ }
284
+
285
+ .results-content .warning {
286
+ color: #d69e2e;
287
+ }
288
+
289
+ /* Footer */
290
+ .footer {
291
+ text-align: center;
292
+ padding: 20px 0;
293
+ margin-top: 40px;
294
+ color: rgba(255, 255, 255, 0.8);
295
+ font-size: 0.9rem;
296
+ }
297
+
298
+ /* Responsive design */
299
+ @media (max-width: 768px) {
300
+ .container {
301
+ padding: 15px;
302
+ }
303
+
304
+ .header-content {
305
+ padding: 30px 20px;
306
+ }
307
+
308
+ .logo h1 {
309
+ font-size: 2rem;
310
+ }
311
+
312
+ .upload-card {
313
+ padding: 30px 20px;
314
+ }
315
+
316
+ .results-header {
317
+ flex-direction: column;
318
+ gap: 15px;
319
+ align-items: stretch;
320
+ }
321
+
322
+ .clear-btn {
323
+ align-self: flex-end;
324
+ }
325
+ }
326
+
327
+ @media (max-width: 480px) {
328
+ .logo {
329
+ flex-direction: column;
330
+ gap: 10px;
331
+ }
332
+
333
+ .logo h1 {
334
+ font-size: 1.8rem;
335
+ }
336
+
337
+ .card-header h2 {
338
+ font-size: 1.5rem;
339
+ flex-direction: column;
340
+ gap: 5px;
341
+ }
342
+ }
343
+
344
+ /* Animation for results appearing */
345
+ @keyframes fadeInUp {
346
+ from {
347
+ opacity: 0;
348
+ transform: translateY(20px);
349
+ }
350
+ to {
351
+ opacity: 1;
352
+ transform: translateY(0);
353
+ }
354
+ }
355
+
356
+ .results-section {
357
+ animation: fadeInUp 0.5s ease;
358
+ }
359
+
360
+ /* Custom scrollbar for results */
361
+ .results-content::-webkit-scrollbar {
362
+ width: 8px;
363
+ }
364
+
365
+ .results-content::-webkit-scrollbar-track {
366
+ background: #e2e8f0;
367
+ border-radius: 4px;
368
+ }
369
+
370
+ .results-content::-webkit-scrollbar-thumb {
371
+ background: #cbd5e0;
372
+ border-radius: 4px;
373
+ }
374
+
375
+ .results-content::-webkit-scrollbar-thumb:hover {
376
+ background: #a0aec0;
377
+ }
378
+