optimized-react-component-library-xyz123 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1126 @@
1
+ /* Globala stilar för alla komponenter */
2
+ @import url('https://assets.soracom.io/fonts/aeonik/Aeonik.css');
3
+
4
+ /* ---------- GENERAL ---------- */
5
+
6
+ html {
7
+ font-size: 62.5%; /* 1rem = 10px */
8
+ }
9
+
10
+ body {
11
+ margin: 0;
12
+ font-family: Arial;
13
+ font-size: 1.6rem;
14
+ font-weight: 400;
15
+ background-color: #dddddd;
16
+ display: flex;
17
+ flex-direction: column;
18
+ min-height: 100vh;
19
+ }
20
+
21
+ body a {
22
+ text-decoration: underline;
23
+ text-underline-offset: 0.3rem;
24
+
25
+ display: inline-flex;
26
+ align-items: center;
27
+ color: #6e3282;
28
+ }
29
+
30
+ body a:hover {
31
+ text-decoration: underline 0.2rem;
32
+ }
33
+
34
+ h1,
35
+ h2,
36
+ h3 {
37
+ margin: 0;
38
+ margin-bottom: 3.6rem;
39
+ }
40
+
41
+ h1 {
42
+ font-size: 3rem;
43
+ }
44
+
45
+ h2 {
46
+ font-size: 2.4rem;
47
+ width: 100%;
48
+ }
49
+
50
+ h3 {
51
+ font-size: 2rem;
52
+ }
53
+
54
+ h4 {
55
+ margin: 0;
56
+ font-size: 1.6rem;
57
+ }
58
+
59
+ #main-content {
60
+ padding-top: 3.6rem;
61
+ padding-bottom: 6.4rem;
62
+ max-width: 860px;
63
+ margin-left: auto;
64
+ margin-right: auto;
65
+ }
66
+
67
+ section {
68
+ display: flex;
69
+ flex-direction: column;
70
+ background-color: #ffffff;
71
+ padding: 3.6rem;
72
+ margin-bottom: 1.6rem;
73
+ border-radius: 0.4rem;
74
+ margin-left: 0.8rem;
75
+ margin-right: 0.8rem;
76
+ }
77
+
78
+ .pts-first-category-section {
79
+ padding-top: 0;
80
+ border-top-left-radius: 0;
81
+ border-top-right-radius: 0;
82
+ }
83
+
84
+ .pts-form-step-header {
85
+ display: flex;
86
+ flex-direction: column;
87
+ background-color: #ffffff;
88
+ padding: 3.6rem;
89
+ margin-bottom: 0;
90
+ border-radius: 0.4rem;
91
+ margin-left: 0.8rem;
92
+ margin-right: 0.8rem;
93
+ padding-bottom: 0;
94
+ border-bottom-left-radius: 0;
95
+ border-bottom-right-radius: 0;
96
+ }
97
+
98
+ .pts-form-step-header p {
99
+ margin: 0px;
100
+ margin-bottom: 36px;
101
+ }
102
+
103
+ fieldset {
104
+ border: none;
105
+ padding: 0;
106
+ margin: 0;
107
+ }
108
+
109
+ .pts-root-question {
110
+ display: flex;
111
+ flex-direction: column;
112
+ margin-bottom: 1.6rem;
113
+ max-width: 624px;
114
+ }
115
+
116
+ .pts-root-categoryDescription,
117
+ .pts-root-stepDescription {
118
+ margin-bottom: 3.6rem;
119
+ }
120
+
121
+ .pts-root-question legend,
122
+ .pts-root-question label,
123
+ .pts-radio-option {
124
+ margin-bottom: 0.8rem;
125
+ }
126
+
127
+ .pts-root-about {
128
+ font-size: 1.4rem;
129
+ color: #545454;
130
+ margin: 0;
131
+ margin-bottom: 0.4rem;
132
+ }
133
+
134
+ .pts-root-question input[type='text']:focus,
135
+ .pts-root-question input[type='email']:focus,
136
+ .pts-root-question input[type='tel']:focus {
137
+ border: 0.2rem solid #6e3282;
138
+ }
139
+
140
+ .pts-root-error {
141
+ display: flex;
142
+ margin-top: 0.4rem;
143
+ }
144
+
145
+ .errorDot {
146
+ display: flex;
147
+ font-size: 1.6rem;
148
+ font-weight: 700;
149
+ width: 1.8rem;
150
+ height: 1.8rem;
151
+ border-radius: 1rem;
152
+ justify-content: center;
153
+ color: #ffffff;
154
+ background-color: #8e0039;
155
+ margin-right: 9px;
156
+ }
157
+
158
+ .errorText,
159
+ .pts-root-mandatoryAsterisk {
160
+ color: #8e0039;
161
+ }
162
+
163
+ .pts-root-question-input-error-border,
164
+ .pts-root-question-input-error-border,
165
+ .pts-root-question-input-error-border {
166
+ border: 0.2rem solid #8e0039 !important;
167
+ }
168
+
169
+ .sr-only {
170
+ position: absolute;
171
+ width: 1px;
172
+ height: 1px;
173
+ padding: 0;
174
+ margin: -1px;
175
+ overflow: hidden;
176
+ clip: rect(0, 0, 0, 0);
177
+ white-space: nowrap;
178
+ border: 0;
179
+ }
180
+
181
+ button:focus-visible,
182
+ a:focus-visible,
183
+ input:focus-visible,
184
+ textarea:focus-visible,
185
+ .filePickLabel:focus-visible {
186
+ outline-offset: 0 !important;
187
+ outline-style: solid !important;
188
+ outline-color: #fff !important;
189
+ outline-width: 2px !important;
190
+ box-shadow: 0 0 0 4px #000 !important;
191
+ }
192
+
193
+ .using-mouse input:focus-visible,
194
+ .using-mouse button:focus-visible,
195
+ .using-mouse textarea:focus-visible,
196
+ .using-mouse a:focus-visible,
197
+ .using-mouse .filePickLabel:focus-visible {
198
+ outline: none;
199
+ outline-width: 0px !important;
200
+ box-shadow: 0 0 0 0px #000 !important;
201
+ }
202
+
203
+ .pts-radioMultiple-container,
204
+ .pts-multipleCheckboxes-container {
205
+ padding-bottom: 2rem;
206
+ }
207
+
208
+ .pts-root-question input[type='text'],
209
+ .pts-root-question input[type='email'],
210
+ .pts-root-question input[type='tel'] {
211
+ max-width: 100%;
212
+ font-size: 1.6rem;
213
+ padding-left: 1.6rem;
214
+ padding-right: 1.6rem;
215
+ border-radius: 0.8rem;
216
+ border: 1px solid #545454;
217
+ height: 4.8rem;
218
+ }
219
+
220
+ /* ---------- SERVICE HEADLINE AND BODY ---------- */
221
+
222
+ .pts-serviceHeadlineAndBody-container li {
223
+ margin-bottom: 0.8rem;
224
+ }
225
+
226
+ .pts-serviceHeadlineAndBody-container ul {
227
+ padding-left: 2rem;
228
+ }
229
+
230
+ .pts-serviceHeadlineAndBody-container a {
231
+ margin-bottom: 2.8rem;
232
+ }
233
+
234
+ .pts-moreinfo-list {
235
+ margin: 0 !important;
236
+ list-style: none;
237
+ padding: 0 !important;
238
+ }
239
+
240
+ .pts-moreinfo-list svg {
241
+ width: 1.6rem;
242
+ height: 1.6rem;
243
+ background-color: #6e3282;
244
+ border-radius: 50%;
245
+ padding: 0.4rem;
246
+ flex-shrink: 0;
247
+ margin-right: 1.6rem;
248
+ }
249
+
250
+ /* ---------- STEPPER ---------- */
251
+
252
+ .pts-stepper-container {
253
+ display: flex;
254
+ width: 100%;
255
+ }
256
+
257
+ .pts-stepper-step {
258
+ display: flex;
259
+ flex-direction: column;
260
+ align-items: center;
261
+ flex: 1;
262
+ position: relative;
263
+ }
264
+
265
+ .pts-stepperDot {
266
+ width: 2.4rem;
267
+ height: 2.4rem;
268
+ line-height: 2.4rem;
269
+ font-size: 1.8rem;
270
+ background-color: #747474;
271
+ color: #ffffff;
272
+ border-radius: 50%;
273
+ margin-bottom: 1.2rem;
274
+ display: flex;
275
+ justify-content: center;
276
+ align-items: center;
277
+ }
278
+
279
+ .pts-stepperDotActive {
280
+ background-color: #dc7d0a;
281
+ }
282
+
283
+ .pts-stepperDotDone {
284
+ background-color: #6e3282;
285
+ }
286
+
287
+ .pts-stepper-step:not(:last-child)::after {
288
+ content: '';
289
+ position: absolute;
290
+ top: 1.2rem;
291
+ left: calc(50% + 3.6rem);
292
+ right: calc(-50% + 3.6rem);
293
+ height: 0.2rem;
294
+ background-color: #747474;
295
+ }
296
+
297
+ /* ---------- STEPPER BUTTON ---------- */
298
+
299
+ .pts-stepperButtons-container {
300
+ display: flex;
301
+ justify-content: end;
302
+ margin-right: 0.8rem;
303
+ }
304
+
305
+ .pts-forwardButton,
306
+ .pts-backButton {
307
+ background-color: #6e3282;
308
+ border: 2px solid #6e3282;
309
+ color: #ffffff;
310
+ padding: 8px 20px;
311
+ border-radius: 8px;
312
+ font-size: 16px;
313
+ cursor: pointer;
314
+ margin-left: 1.6rem;
315
+ }
316
+
317
+ .pts-backButton:focus,
318
+ .pts-backButton:hover,
319
+ .pts-forwardButton:focus,
320
+ .pts-forwardButton:hover,
321
+ .btn-upload:focus,
322
+ .btn-upload:hover {
323
+ background-color: #ffffff;
324
+ border: 2px solid #6e3282;
325
+ color: #6e3282;
326
+ transition: 0.2s;
327
+ }
328
+
329
+ /* ---------- RADIO MULTIPLE ---------- */
330
+
331
+ .pts-radioMultiple-container input[type='radio'] {
332
+ appearance: none;
333
+ width: 1.8rem;
334
+ height: 1.8rem;
335
+ border: 1.5px solid #545454;
336
+ border-radius: 3.1rem;
337
+ margin: 0;
338
+ margin-right: 0.8rem;
339
+ vertical-align: -2px;
340
+ position: relative;
341
+ cursor: pointer;
342
+ }
343
+
344
+ .pts-radioMultiple-container input[type='radio']:checked::before {
345
+ content: '';
346
+ position: absolute;
347
+ top: 50%;
348
+ left: 50%;
349
+ transform: translate(-50%, -50%);
350
+ width: 1rem;
351
+ height: 1rem;
352
+ border-radius: 50%;
353
+ background-color: #6e3282;
354
+ }
355
+
356
+ .pts-radioMultiple-container label {
357
+ position: relative;
358
+ top: -1px;
359
+ cursor: pointer;
360
+ }
361
+
362
+ /* ---------- MULTIPLE CHECKBOXES ---------- */
363
+
364
+ .pts-multipleCheckboxes-container input[type='checkbox'] {
365
+ -webkit-appearance: none;
366
+
367
+ width: 1.8rem;
368
+ height: 1.8rem;
369
+ margin-right: 0.8rem;
370
+ flex-shrink: 0;
371
+
372
+ background-color: #ffffff;
373
+ border: 0.15rem solid #545454;
374
+ border-radius: 0.2rem;
375
+
376
+ cursor: pointer;
377
+ }
378
+
379
+ .pts-multipleCheckboxes-container input[type='checkbox']:checked {
380
+ background-color: #6e3282;
381
+ border: none;
382
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e") !important;
383
+ }
384
+
385
+ .pts-multipleCheckboxes-container label {
386
+ cursor: pointer;
387
+ margin: 0;
388
+ padding-top: 0.1rem;
389
+ }
390
+
391
+ .pts-multipleCheckboxes-container ul {
392
+ padding-left: unset;
393
+ margin-top: 0;
394
+ margin-bottom: 0.8rem;
395
+ }
396
+
397
+ .pts-multipleCheckboxes-container li {
398
+ display: flex;
399
+ margin-bottom: 0.8rem;
400
+ align-items: center;
401
+ }
402
+
403
+ /* ---------- HEADER ---------- */
404
+
405
+ .pts-skipLink-container a {
406
+ position: absolute;
407
+ top: -1000px;
408
+ left: 1.8rem;
409
+ transition: top 0.3s ease-in-out;
410
+ background-color: #ffffff;
411
+ color: #6e3282;
412
+ }
413
+
414
+ .pts-skipLink-container a:focus {
415
+ top: 1.8rem;
416
+ }
417
+
418
+ .pts-header-container {
419
+ display: flex;
420
+ height: 80px;
421
+ padding: 0px 70px;
422
+ align-items: center;
423
+ justify-content: space-between;
424
+ background-color: #ffffff;
425
+ }
426
+
427
+ .pts-languageButton {
428
+ display: flex;
429
+ background: transparent;
430
+ border: transparent;
431
+ color: #6e3282;
432
+ }
433
+
434
+ /* ---------- FOOTER ---------- */
435
+
436
+ .pts-footer-container {
437
+ display: flex;
438
+ height: 14rem;
439
+ align-items: center;
440
+ width: 100%;
441
+ background-color: #200827;
442
+ }
443
+
444
+ .pts-footer-logo {
445
+ width: 154.444px;
446
+ height: 40px;
447
+ padding-left: 70px;
448
+ flex-shrink: 0;
449
+ position: absolute;
450
+ }
451
+
452
+ .pts-footer-linkList {
453
+ flex: 1;
454
+ justify-content: center;
455
+ }
456
+
457
+ .pts-footer-linkList ul {
458
+ padding: 0;
459
+ padding-top: 15px;
460
+ margin: 0;
461
+ list-style: none;
462
+ display: flex;
463
+ justify-content: center;
464
+ line-height: 25px;
465
+ }
466
+
467
+ .pts-footer-linkList a {
468
+ color: #ffffff;
469
+ text-underline-offset: 3px;
470
+ }
471
+
472
+ .pts-footer-linkList a span {
473
+ padding-left: 36px;
474
+ padding-right: 36px;
475
+ color: #ffffff;
476
+ }
477
+
478
+ .pts-footer-container .pts-footer-linkList ul li:not(:last-child)::after {
479
+ content: '';
480
+ width: 1px;
481
+ height: 24px;
482
+ border: 0.5px solid;
483
+ color: #ffffff;
484
+ position: absolute;
485
+ box-sizing: border-box;
486
+ }
487
+
488
+ /* ---------- TEXTFIELD / TEXTAREA ABOUT ---------- */
489
+
490
+ .pts-question-hasAbout label {
491
+ margin-bottom: 0.4rem;
492
+ line-height: 1.4rem;
493
+ }
494
+
495
+ .pts-about {
496
+ margin-bottom: 0.4rem;
497
+ color: #545454;
498
+ font-size: 1.4rem;
499
+ }
500
+
501
+ /* ---------- TEXTAREA ---------- */
502
+
503
+ .pts-textArea-container textarea {
504
+ height: 16rem;
505
+ padding: 1.2rem 1.6rem;
506
+ flex-shrink: 0;
507
+ font-family: arial;
508
+ font-size: 1.6rem;
509
+ border-radius: 8px;
510
+ border: 0.1px solid #545454;
511
+ }
512
+
513
+ .pts-textArea-container textarea:focus {
514
+ border: 0.2rem solid #6e3282;
515
+ }
516
+
517
+ .pts-textarea-counter-error-container {
518
+ display: flex;
519
+ }
520
+
521
+ .pts-character-counter {
522
+ text-align: right;
523
+ width: 100%;
524
+ margin-top: 0.4rem;
525
+ }
526
+
527
+ .pts-textarea-counter-error-container .pts-root-error {
528
+ width: 100%;
529
+ }
530
+
531
+ /* ---------- EDIT PREVIEW LINK ---------- */
532
+
533
+ .pts-editPreviewLink-container {
534
+ display: flex;
535
+ justify-content: end;
536
+ width: 100%;
537
+ margin-left: 1rem;
538
+ align-self: flex-start;
539
+ }
540
+
541
+ .pts-editPreviewLink-container button {
542
+ display: flex;
543
+ align-items: center;
544
+ background-color: transparent;
545
+ color: #6e3282;
546
+ border: none;
547
+ cursor: pointer;
548
+ font-size: 1.3rem;
549
+ gap: 0.2rem;
550
+ }
551
+
552
+ .pts-editPreviewLink-container svg {
553
+ height: 1.6rem;
554
+ width: 1.6rem;
555
+ flex-shrink: 0;
556
+ }
557
+
558
+ /* ---------- GRANSKA ---------- */
559
+
560
+ .pts-question-preview,
561
+ .addFilesPreviewContainer {
562
+ display: flex;
563
+ justify-content: space-between;
564
+ border-bottom: 1px solid #ddd;
565
+ margin-bottom: 24px;
566
+ margin-top: 0;
567
+ }
568
+
569
+ .pts-question-preview h4,
570
+ .addFilesPreviewContainer h4 {
571
+ margin-bottom: 8px;
572
+ width: 33%;
573
+ padding-right: 3.6rem;
574
+ }
575
+
576
+ .pts-root-answer,
577
+ .answer {
578
+ width: 66%;
579
+ margin-bottom: 8px;
580
+ }
581
+
582
+ .pts-root-answer ul {
583
+ margin: 0;
584
+ padding: 0;
585
+ }
586
+
587
+ .pts-root-answer li {
588
+ margin-bottom: 0.8rem;
589
+ }
590
+
591
+ .stepInfoText {
592
+ margin: 0;
593
+ margin-bottom: 36px;
594
+ }
595
+
596
+ .h3andPreviewLink {
597
+ display: flex;
598
+ align-items: center;
599
+ justify-content: space-between;
600
+ width: 100%;
601
+ }
602
+
603
+ #section-heading-0 {
604
+ width: 100%;
605
+ }
606
+
607
+ .no-answer-preview-page {
608
+ color: #545454;
609
+ }
610
+
611
+ .pts-preview-header {
612
+ display: flex;
613
+ justify-content: space-between;
614
+ align-items: baseline;
615
+ }
616
+
617
+ /* ---------- TEXT HEADLINE AND BODY / SERVICE HEADLINE AND BODY ---------- */
618
+
619
+ .pts-textHeadlineAndBody-container .notFirstInList {
620
+ margin-top: 0.8rem;
621
+ }
622
+
623
+ .pts-serviceHeadlineAndBody-container .notFirstInList {
624
+ margin-top: 0.8rem;
625
+ }
626
+
627
+ /* ---------- MODAL ---------- */
628
+
629
+ .pts-modal-overlay {
630
+ position: fixed;
631
+ top: 0;
632
+ left: 0;
633
+ width: 100%;
634
+ height: 100%;
635
+ background-color: rgba(0, 0, 0, 0.5);
636
+ display: flex;
637
+ align-items: center;
638
+ justify-content: center;
639
+ z-index: 999;
640
+ }
641
+
642
+ .pts-modal-content {
643
+ background: white;
644
+ color: black;
645
+ padding: 3.7rem;
646
+ border-radius: 4px;
647
+ max-width: 600px;
648
+ width: 90%;
649
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
650
+ }
651
+
652
+ .pts-spinner-border {
653
+ display: block;
654
+ width: 9.4rem;
655
+ height: 9.4rem;
656
+ margin: 0 auto 0 auto;
657
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='94' height='94' viewBox='0 0 94 94' fill='none'%3e%3cpath d='M47 11.75C66.4682 11.75 82.25 27.532 82.25 47C82.25 66.4682 66.4682 82.25 47 82.25C27.532 82.25 11.75 66.4682 11.75 47C11.75 27.532 27.532 11.75 47 11.75Z' stroke='%236E3282' stroke-opacity='0.25' stroke-width='7.83333' stroke-linecap='round'/%3e%3cpath d='M47 11.75C66.4682 11.75 82.25 27.532 82.25 47' stroke='%236E3282' stroke-width='7.83333' stroke-linecap='round'/%3e%3c/svg%3e");
658
+ background-size: contain;
659
+ background-repeat: no-repeat;
660
+ background-position: center;
661
+ animation: pts-spinner-border 0.75s linear infinite;
662
+ }
663
+
664
+ .pts-modal-content h1 {
665
+ margin: 0;
666
+ margin-bottom: 0.8rem;
667
+ }
668
+
669
+ .pts-modal-content p {
670
+ margin: 0;
671
+ margin-bottom: 3.6rem;
672
+ }
673
+
674
+ @keyframes pts-spinner-border {
675
+ 100% {
676
+ transform: rotate(360deg);
677
+ }
678
+ }
679
+
680
+ /* ---------- ERROR SUMMARY ---------- */
681
+
682
+ .pts-errorSummary-container {
683
+ padding: 1.6rem 2.4rem 1.6rem 2.4rem;
684
+ margin-top: 3.6rem;
685
+ border-radius: 0.8rem;
686
+ border: 0.1rem solid #8e0039;
687
+ border-left: 4rem solid #8e0039;
688
+ position: relative;
689
+ }
690
+
691
+ .pts-errorSummary-container .errorDot {
692
+ position: absolute;
693
+ top: 2.1rem;
694
+ left: -2.8rem;
695
+ width: 1.6rem;
696
+ height: 1.6rem;
697
+ border-radius: 50%;
698
+ background-color: #ffffff;
699
+ color: #8e0039;
700
+ align-items: center;
701
+ font-size: 1.4rem;
702
+ }
703
+
704
+ .pts-errorSummary-container h2 {
705
+ margin-bottom: 0;
706
+ }
707
+
708
+ .pts-errorSummary-container ul {
709
+ padding: 0;
710
+ margin: 0;
711
+ }
712
+
713
+ .pts-errorSummary-container li {
714
+ display: flex;
715
+ cursor: pointer;
716
+ padding-top: 1.6rem;
717
+ }
718
+
719
+ .errorSummary-text {
720
+ color: #8e0039;
721
+ }
722
+
723
+ /* ---------- UPLOAD FILES ---------- */
724
+
725
+ .files-upload {
726
+ width: 100%;
727
+ max-width: 800px;
728
+ margin: 0 auto;
729
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
730
+ }
731
+
732
+ /* Drop Zone */
733
+ .files-drop-zone {
734
+ border: 2px dashed #6e3282;
735
+ border-radius: 12px;
736
+ padding: 3rem 2rem;
737
+ text-align: center;
738
+ transition: all 0.3s ease;
739
+ background-color: #fafafa;
740
+ cursor: pointer;
741
+ position: relative;
742
+ overflow: hidden;
743
+ }
744
+
745
+ .files-drop-zone:hover {
746
+ border-color: #6e3282;
747
+ background-color: #f5ebf8;
748
+ transform: translateY(-2px);
749
+ box-shadow: 0 4px 12px rgba(220, 148, 253, 0.15);
750
+ }
751
+
752
+ .files-drop-zone.drag-active {
753
+ border-color: #6e3282;
754
+ background-color: #f5ebf8;
755
+ transform: scale(1.02);
756
+ box-shadow: 0 8px 25px rgba(30, 167, 253, 0.2);
757
+ }
758
+
759
+ .files-drop-zone:focus {
760
+ /* border-color: #6e3282;
761
+ background-color: #f5ebf8;
762
+ transform: translateY(-2px);
763
+ box-shadow: 0 4px 12px rgba(220, 148, 253, 0.15);
764
+ transform: translateY(-3px);
765
+
766
+ animation: focusPulse 1s ease-in-out infinite;
767
+ box-shadow: inset 0 0 0 4px #6e3282;
768
+
769
+ border: none; */
770
+ border: 0.2rem solid #6e3282;
771
+ }
772
+
773
+ .files-drop-zone:focus-visible {
774
+ outline-offset: 0 !important;
775
+ outline-style: solid !important;
776
+ outline-color: #fff !important;
777
+ outline-width: 2px !important;
778
+ box-shadow: 0 0 0 4px #000 !important;
779
+ }
780
+
781
+ .files-drop-content {
782
+ pointer-events: none;
783
+ }
784
+
785
+ .files-icon {
786
+ font-size: 4rem;
787
+ margin-bottom: 1rem;
788
+ opacity: 0.7;
789
+ animation: float 3s ease-in-out infinite;
790
+ }
791
+
792
+ @keyframes float {
793
+ 0%,
794
+ 100% {
795
+ transform: translateY(0px);
796
+ }
797
+ 50% {
798
+ transform: translateY(-10px);
799
+ }
800
+ }
801
+
802
+ .files-drop-text {
803
+ font-size: 1.2rem;
804
+ margin-bottom: 0.5rem;
805
+ color: #333;
806
+ font-weight: 500;
807
+ }
808
+
809
+ .files-drop-info {
810
+ font-size: 0.9rem;
811
+ color: #666;
812
+ margin: 0;
813
+ }
814
+
815
+ .files-allowed-types {
816
+ font-size: 0.85rem;
817
+ color: #555;
818
+ margin: 0.75rem 0 0 0;
819
+ padding: 0.5rem;
820
+ background-color: rgba(146, 64, 252, 0.1);
821
+ border-radius: 6px;
822
+ border-left: 3px solid #ce95e0;
823
+ }
824
+
825
+ .files-allowed-types strong {
826
+ color: #6e3282;
827
+ }
828
+
829
+ .files-input-hidden {
830
+ display: none;
831
+ }
832
+
833
+ /* Summary */
834
+ .files-summary {
835
+ margin: 1.5rem 0;
836
+ padding: 1rem;
837
+ background-color: #f8f9fa;
838
+ border-radius: 8px;
839
+ border: 1px solid #e9ecef;
840
+ }
841
+
842
+ .files-summary-stats {
843
+ display: flex;
844
+ gap: 1rem;
845
+ margin-bottom: 1rem;
846
+ flex-wrap: wrap;
847
+ }
848
+
849
+ .stat {
850
+ padding: 0.5rem 1rem;
851
+ border-radius: 20px;
852
+ background-color: #e9ecef;
853
+ font-size: 0.9rem;
854
+ display: flex;
855
+ align-items: center;
856
+ gap: 0.5rem;
857
+ }
858
+
859
+ .stat.pending {
860
+ background-color: #fff3cd;
861
+ color: #856404;
862
+ }
863
+
864
+ .stat.completed {
865
+ background-color: #d1e7dd;
866
+ color: #0a3622;
867
+ }
868
+
869
+ .stat.error {
870
+ background-color: #f8d7da;
871
+ color: #721c24;
872
+ }
873
+
874
+ .files-summary-actions {
875
+ display: flex;
876
+ gap: 0.5rem;
877
+ flex-wrap: wrap;
878
+ }
879
+
880
+ .action-button {
881
+ padding: 0.75rem 1.5rem;
882
+ border: none;
883
+ border-radius: 6px;
884
+ cursor: pointer;
885
+ font-weight: 500;
886
+ transition: all 0.2s ease;
887
+ display: flex;
888
+ align-items: center;
889
+ gap: 0.5rem;
890
+ }
891
+
892
+ .action-button.primary {
893
+ background-color: #1ea7fd;
894
+ color: white;
895
+ }
896
+
897
+ .action-button.primary:hover {
898
+ background-color: #1890ff;
899
+ transform: translateY(-1px);
900
+ }
901
+
902
+ .action-button.secondary {
903
+ background-color: #6c757d;
904
+ color: white;
905
+ }
906
+
907
+ .action-button.secondary:hover {
908
+ background-color: #5a6268;
909
+ transform: translateY(-1px);
910
+ }
911
+
912
+ /* Files List */
913
+ .files-list {
914
+ margin-top: 1.5rem;
915
+ }
916
+
917
+ .files-list h4 {
918
+ margin-bottom: 1rem;
919
+ color: #333;
920
+ font-size: 1.1rem;
921
+ font-weight: 600;
922
+ }
923
+
924
+ .files-items {
925
+ list-style: none;
926
+ padding: 0;
927
+ margin: 0;
928
+ }
929
+
930
+ .file-item {
931
+ display: flex;
932
+ align-items: center;
933
+ gap: 1rem;
934
+ padding: 1rem;
935
+ border: 1px solid #e9ecef;
936
+ border-radius: 8px;
937
+ margin-bottom: 0.75rem;
938
+ background-color: white;
939
+ transition: all 0.2s ease;
940
+ position: relative;
941
+ }
942
+
943
+ .file-item:hover {
944
+ background-color: #f8f9fa;
945
+ border-color: #dee2e6;
946
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
947
+ }
948
+
949
+ .file-item.uploading {
950
+ background-color: #e6f7ff;
951
+ border-color: #91d5ff;
952
+ }
953
+
954
+ .file-item.completed {
955
+ background-color: #f6ffed;
956
+ border-color: #b7eb8f;
957
+ }
958
+
959
+ .file-item.error {
960
+ background-color: #fff2f0;
961
+ border-color: #ffccc7;
962
+ }
963
+
964
+ .file-icon-status {
965
+ font-size: 1.5rem;
966
+ min-width: 2rem;
967
+ text-align: center;
968
+ }
969
+
970
+ .file-info {
971
+ flex: 1;
972
+ min-width: 0;
973
+ }
974
+
975
+ .file-name {
976
+ font-weight: 500;
977
+ color: #333;
978
+ margin-bottom: 0.5rem;
979
+ word-break: break-word;
980
+ }
981
+
982
+ .file-details {
983
+ display: flex;
984
+ gap: 1rem;
985
+ font-size: 0.85rem;
986
+ color: #666;
987
+ flex-wrap: wrap;
988
+ }
989
+
990
+ .file-size {
991
+ color: #666;
992
+ }
993
+
994
+ .file-status {
995
+ color: #1ea7fd;
996
+ font-weight: 500;
997
+ }
998
+
999
+ .file-error {
1000
+ color: #dc3545;
1001
+ font-weight: 500;
1002
+ }
1003
+
1004
+ .progress-bar {
1005
+ width: 100%;
1006
+ height: 4px;
1007
+ background-color: #e9ecef;
1008
+ border-radius: 2px;
1009
+ margin-top: 0.5rem;
1010
+ overflow: hidden;
1011
+ }
1012
+
1013
+ .progress-fill {
1014
+ height: 100%;
1015
+ background-color: #1ea7fd;
1016
+ transition: width 0.3s ease;
1017
+ border-radius: 2px;
1018
+ }
1019
+
1020
+ .file-actions {
1021
+ display: flex;
1022
+ gap: 0.5rem;
1023
+ }
1024
+
1025
+ .action-btn {
1026
+ background: none;
1027
+ border: 1px solid transparent;
1028
+ padding: 0.5rem;
1029
+ border-radius: 6px;
1030
+ cursor: pointer;
1031
+ font-size: 1rem;
1032
+ transition: all 0.2s ease;
1033
+ min-width: 2.5rem;
1034
+ height: 2.5rem;
1035
+ display: flex;
1036
+ align-items: center;
1037
+ justify-content: center;
1038
+ }
1039
+
1040
+ .action-btn.upload {
1041
+ color: #1ea7fd;
1042
+ border-color: #1ea7fd;
1043
+ }
1044
+
1045
+ .action-btn.upload:hover {
1046
+ background-color: #1ea7fd;
1047
+ color: white;
1048
+ }
1049
+
1050
+ .action-btn.retry {
1051
+ color: #fd7e14;
1052
+ border-color: #fd7e14;
1053
+ }
1054
+
1055
+ .action-btn.retry:hover {
1056
+ background-color: #fd7e14;
1057
+ color: white;
1058
+ }
1059
+
1060
+ .action-btn.remove {
1061
+ color: #6e3282;
1062
+ border-color: #6e3282;
1063
+ }
1064
+
1065
+ .action-btn.remove:hover {
1066
+ background-color: #6e3282;
1067
+ color: white;
1068
+ }
1069
+
1070
+ /* Responsive Design */
1071
+ @media (max-width: 768px) {
1072
+ .files-drop-zone {
1073
+ padding: 2rem 1rem;
1074
+ }
1075
+
1076
+ .files-icon {
1077
+ font-size: 3rem;
1078
+ }
1079
+
1080
+ .files-drop-text {
1081
+ font-size: 1rem;
1082
+ }
1083
+
1084
+ .files-summary-stats {
1085
+ flex-direction: column;
1086
+ gap: 0.5rem;
1087
+ }
1088
+
1089
+ .files-summary-actions {
1090
+ flex-direction: column;
1091
+ }
1092
+
1093
+ .action-button {
1094
+ justify-content: center;
1095
+ }
1096
+
1097
+ .file-item {
1098
+ flex-direction: column;
1099
+ align-items: flex-start;
1100
+ gap: 0.75rem;
1101
+ }
1102
+
1103
+ .file-details {
1104
+ flex-direction: column;
1105
+ gap: 0.25rem;
1106
+ }
1107
+
1108
+ .file-actions {
1109
+ align-self: flex-end;
1110
+ }
1111
+ }
1112
+
1113
+ @media (max-width: 480px) {
1114
+ .files-upload {
1115
+ padding: 0 0.5rem;
1116
+ }
1117
+
1118
+ .files-drop-zone {
1119
+ padding: 1.5rem 1rem;
1120
+ }
1121
+
1122
+ .file-item {
1123
+ padding: 0.75rem;
1124
+ }
1125
+ }
1126
+ /* ---------- END UPLOAD FILES ---------- */