Fred808 commited on
Commit
2d3b3c6
·
verified ·
1 Parent(s): 45d270d

Upload style.css

Browse files
Files changed (1) hide show
  1. static/css/style.css +426 -378
static/css/style.css CHANGED
@@ -1,378 +1,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
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+