easc-cli 1.1.30 → 1.1.31

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,741 @@
1
+ /* Reset and Base Styles */
2
+ * {
3
+ margin: 0;
4
+ padding: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ :root {
9
+ --primary-color: #e74c3c;
10
+ --primary-dark: #c0392b;
11
+ --secondary-color: #3498db;
12
+ --success-color: #27ae60;
13
+ --warning-color: #f39c12;
14
+ --dark-color: #2c3e50;
15
+ --light-color: #ecf0f1;
16
+ --text-color: #333;
17
+ --text-light: #666;
18
+ --border-color: #ddd;
19
+ --shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
20
+ --shadow-hover: 0 4px 20px rgba(0, 0, 0, 0.15);
21
+ --border-radius: 8px;
22
+ --transition: all 0.3s ease;
23
+ }
24
+
25
+ body {
26
+ font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
27
+ line-height: 1.6;
28
+ color: var(--text-color);
29
+ background-color: #f8f9fa;
30
+ }
31
+
32
+ .container {
33
+ max-width: 1200px;
34
+ margin: 0 auto;
35
+ padding: 0 20px;
36
+ }
37
+
38
+ /* Header Styles */
39
+ .header {
40
+ background: white;
41
+ box-shadow: var(--shadow);
42
+ position: fixed;
43
+ top: 0;
44
+ width: 100%;
45
+ z-index: 1000;
46
+ }
47
+
48
+ .nav {
49
+ display: flex;
50
+ justify-content: space-between;
51
+ align-items: center;
52
+ padding: 1rem 2rem;
53
+ max-width: 1200px;
54
+ margin: 0 auto;
55
+ }
56
+
57
+ .nav-brand {
58
+ display: flex;
59
+ align-items: center;
60
+ font-size: 1.5rem;
61
+ font-weight: bold;
62
+ color: var(--primary-color);
63
+ }
64
+
65
+ .nav-brand i {
66
+ margin-right: 0.5rem;
67
+ }
68
+
69
+ .nav-menu {
70
+ display: flex;
71
+ list-style: none;
72
+ gap: 2rem;
73
+ }
74
+
75
+ .nav-link {
76
+ text-decoration: none;
77
+ color: var(--text-color);
78
+ font-weight: 500;
79
+ transition: var(--transition);
80
+ }
81
+
82
+ .nav-link:hover {
83
+ color: var(--primary-color);
84
+ }
85
+
86
+ .nav-toggle {
87
+ display: none;
88
+ background: none;
89
+ border: none;
90
+ font-size: 1.5rem;
91
+ cursor: pointer;
92
+ color: var(--text-color);
93
+ }
94
+
95
+ /* Hero Section */
96
+ .hero {
97
+ background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));
98
+ color: white;
99
+ padding: 8rem 0 4rem;
100
+ text-align: center;
101
+ margin-top: 80px;
102
+ }
103
+
104
+ .hero-content {
105
+ max-width: 800px;
106
+ margin: 0 auto;
107
+ padding: 0 2rem;
108
+ }
109
+
110
+ .hero-title {
111
+ font-size: 3rem;
112
+ margin-bottom: 1rem;
113
+ font-weight: 700;
114
+ }
115
+
116
+ .hero-subtitle {
117
+ font-size: 1.2rem;
118
+ margin-bottom: 2rem;
119
+ opacity: 0.9;
120
+ }
121
+
122
+ .hero-stats {
123
+ display: flex;
124
+ justify-content: center;
125
+ gap: 3rem;
126
+ margin-bottom: 2rem;
127
+ }
128
+
129
+ .stat {
130
+ text-align: center;
131
+ }
132
+
133
+ .stat-number {
134
+ display: block;
135
+ font-size: 2rem;
136
+ font-weight: bold;
137
+ margin-bottom: 0.5rem;
138
+ }
139
+
140
+ .stat-label {
141
+ font-size: 0.9rem;
142
+ opacity: 0.8;
143
+ }
144
+
145
+ /* Buttons */
146
+ .btn {
147
+ padding: 0.75rem 1.5rem;
148
+ border: none;
149
+ border-radius: var(--border-radius);
150
+ font-size: 1rem;
151
+ font-weight: 500;
152
+ cursor: pointer;
153
+ transition: var(--transition);
154
+ text-decoration: none;
155
+ display: inline-block;
156
+ text-align: center;
157
+ }
158
+
159
+ .btn-primary {
160
+ background: var(--primary-color);
161
+ color: white;
162
+ }
163
+
164
+ .btn-primary:hover {
165
+ background: var(--primary-dark);
166
+ transform: translateY(-2px);
167
+ }
168
+
169
+ .btn-secondary {
170
+ background: var(--secondary-color);
171
+ color: white;
172
+ }
173
+
174
+ .btn-secondary:hover {
175
+ background: #2980b9;
176
+ transform: translateY(-2px);
177
+ }
178
+
179
+ .btn-full {
180
+ width: 100%;
181
+ }
182
+
183
+ /* Section Styles */
184
+ section {
185
+ padding: 4rem 0;
186
+ }
187
+
188
+ .section-header {
189
+ text-align: center;
190
+ margin-bottom: 3rem;
191
+ }
192
+
193
+ .section-title {
194
+ font-size: 2.5rem;
195
+ margin-bottom: 1rem;
196
+ color: var(--dark-color);
197
+ }
198
+
199
+ .section-subtitle {
200
+ font-size: 1.1rem;
201
+ color: var(--text-light);
202
+ }
203
+
204
+ /* Charities Section */
205
+ .charities {
206
+ background: white;
207
+ }
208
+
209
+ .filters {
210
+ display: flex;
211
+ gap: 1rem;
212
+ margin-bottom: 2rem;
213
+ flex-wrap: wrap;
214
+ align-items: center;
215
+ }
216
+
217
+ .filter-group {
218
+ display: flex;
219
+ align-items: center;
220
+ gap: 0.5rem;
221
+ }
222
+
223
+ .filter-select,
224
+ .search-input {
225
+ padding: 0.5rem;
226
+ border: 1px solid var(--border-color);
227
+ border-radius: var(--border-radius);
228
+ font-size: 0.9rem;
229
+ }
230
+
231
+ .search-group {
232
+ display: flex;
233
+ margin-left: auto;
234
+ }
235
+
236
+ .search-input {
237
+ width: 200px;
238
+ border-radius: var(--border-radius) 0 0 var(--border-radius);
239
+ }
240
+
241
+ .search-btn {
242
+ background: var(--primary-color);
243
+ color: white;
244
+ border: none;
245
+ padding: 0.5rem 1rem;
246
+ border-radius: 0 var(--border-radius) var(--border-radius) 0;
247
+ cursor: pointer;
248
+ }
249
+
250
+ .charities-grid {
251
+ display: grid;
252
+ grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
253
+ gap: 2rem;
254
+ margin-bottom: 2rem;
255
+ }
256
+
257
+ .charity-card {
258
+ background: white;
259
+ border-radius: var(--border-radius);
260
+ overflow: hidden;
261
+ box-shadow: var(--shadow);
262
+ transition: var(--transition);
263
+ cursor: pointer;
264
+ }
265
+
266
+ .charity-card:hover {
267
+ transform: translateY(-5px);
268
+ box-shadow: var(--shadow-hover);
269
+ }
270
+
271
+ .charity-image {
272
+ width: 100%;
273
+ height: 200px;
274
+ object-fit: cover;
275
+ }
276
+
277
+ .charity-content {
278
+ padding: 1.5rem;
279
+ }
280
+
281
+ .charity-category {
282
+ display: inline-block;
283
+ background: var(--primary-color);
284
+ color: white;
285
+ padding: 0.25rem 0.75rem;
286
+ border-radius: 20px;
287
+ font-size: 0.8rem;
288
+ margin-bottom: 0.5rem;
289
+ }
290
+
291
+ .charity-title {
292
+ font-size: 1.3rem;
293
+ margin-bottom: 0.5rem;
294
+ color: var(--dark-color);
295
+ }
296
+
297
+ .charity-description {
298
+ color: var(--text-light);
299
+ margin-bottom: 1rem;
300
+ line-height: 1.5;
301
+ }
302
+
303
+ .charity-progress {
304
+ margin-bottom: 1rem;
305
+ }
306
+
307
+ .progress-bar {
308
+ width: 100%;
309
+ height: 8px;
310
+ background: var(--light-color);
311
+ border-radius: 4px;
312
+ overflow: hidden;
313
+ margin-bottom: 0.5rem;
314
+ }
315
+
316
+ .progress-fill {
317
+ height: 100%;
318
+ background: var(--success-color);
319
+ transition: width 0.3s ease;
320
+ }
321
+
322
+ .charity-stats {
323
+ display: flex;
324
+ justify-content: space-between;
325
+ font-size: 0.9rem;
326
+ margin-bottom: 1rem;
327
+ }
328
+
329
+ .charity-amount {
330
+ font-weight: bold;
331
+ color: var(--dark-color);
332
+ }
333
+
334
+ .charity-goal {
335
+ color: var(--text-light);
336
+ }
337
+
338
+ .charity-actions {
339
+ display: flex;
340
+ gap: 0.5rem;
341
+ }
342
+
343
+ .load-more-container {
344
+ text-align: center;
345
+ }
346
+
347
+ /* About Section */
348
+ .about {
349
+ background: #f8f9fa;
350
+ }
351
+
352
+ .about-content {
353
+ max-width: 800px;
354
+ margin: 0 auto;
355
+ text-align: center;
356
+ }
357
+
358
+ .about-text {
359
+ margin-bottom: 2rem;
360
+ }
361
+
362
+ .features {
363
+ display: grid;
364
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
365
+ gap: 2rem;
366
+ margin-top: 2rem;
367
+ }
368
+
369
+ .feature {
370
+ text-align: center;
371
+ }
372
+
373
+ .feature i {
374
+ font-size: 2rem;
375
+ color: var(--primary-color);
376
+ margin-bottom: 1rem;
377
+ }
378
+
379
+ .feature h3 {
380
+ margin-bottom: 0.5rem;
381
+ color: var(--dark-color);
382
+ }
383
+
384
+ .feature p {
385
+ color: var(--text-light);
386
+ }
387
+
388
+ /* Contact Section */
389
+ .contact {
390
+ background: white;
391
+ }
392
+
393
+ .contact-content {
394
+ display: grid;
395
+ grid-template-columns: 1fr 1fr;
396
+ gap: 3rem;
397
+ align-items: start;
398
+ }
399
+
400
+ .contact-info {
401
+ display: flex;
402
+ flex-direction: column;
403
+ gap: 1.5rem;
404
+ }
405
+
406
+ .contact-item {
407
+ display: flex;
408
+ align-items: center;
409
+ gap: 1rem;
410
+ }
411
+
412
+ .contact-item i {
413
+ font-size: 1.5rem;
414
+ color: var(--primary-color);
415
+ width: 30px;
416
+ }
417
+
418
+ .contact-form {
419
+ background: #f8f9fa;
420
+ padding: 2rem;
421
+ border-radius: var(--border-radius);
422
+ }
423
+
424
+ .form-group {
425
+ margin-bottom: 1rem;
426
+ }
427
+
428
+ .form-group label {
429
+ display: block;
430
+ margin-bottom: 0.5rem;
431
+ font-weight: 500;
432
+ color: var(--dark-color);
433
+ }
434
+
435
+ .form-group input,
436
+ .form-group textarea {
437
+ width: 100%;
438
+ padding: 0.75rem;
439
+ border: 1px solid var(--border-color);
440
+ border-radius: var(--border-radius);
441
+ font-size: 1rem;
442
+ transition: var(--transition);
443
+ }
444
+
445
+ .form-group input:focus,
446
+ .form-group textarea:focus {
447
+ outline: none;
448
+ border-color: var(--primary-color);
449
+ }
450
+
451
+ .checkbox-group {
452
+ display: flex;
453
+ align-items: center;
454
+ gap: 0.5rem;
455
+ }
456
+
457
+ .checkbox-group input[type="checkbox"] {
458
+ width: auto;
459
+ }
460
+
461
+ /* Footer */
462
+ .footer {
463
+ background: var(--dark-color);
464
+ color: white;
465
+ padding: 3rem 0 1rem;
466
+ }
467
+
468
+ .footer-content {
469
+ display: grid;
470
+ grid-template-columns: 2fr 1fr 1fr 1fr;
471
+ gap: 2rem;
472
+ margin-bottom: 2rem;
473
+ }
474
+
475
+ .footer-brand {
476
+ display: flex;
477
+ flex-direction: column;
478
+ gap: 0.5rem;
479
+ }
480
+
481
+ .footer-brand i {
482
+ font-size: 1.5rem;
483
+ color: var(--primary-color);
484
+ }
485
+
486
+ .footer-brand span {
487
+ font-size: 1.3rem;
488
+ font-weight: bold;
489
+ }
490
+
491
+ .footer-section h4 {
492
+ margin-bottom: 1rem;
493
+ color: var(--primary-color);
494
+ }
495
+
496
+ .footer-section ul {
497
+ list-style: none;
498
+ }
499
+
500
+ .footer-section ul li {
501
+ margin-bottom: 0.5rem;
502
+ }
503
+
504
+ .footer-section a {
505
+ color: white;
506
+ text-decoration: none;
507
+ transition: var(--transition);
508
+ }
509
+
510
+ .footer-section a:hover {
511
+ color: var(--primary-color);
512
+ }
513
+
514
+ .social-links {
515
+ display: flex;
516
+ gap: 1rem;
517
+ }
518
+
519
+ .social-link {
520
+ display: flex;
521
+ align-items: center;
522
+ justify-content: center;
523
+ width: 40px;
524
+ height: 40px;
525
+ background: var(--primary-color);
526
+ color: white;
527
+ border-radius: 50%;
528
+ text-decoration: none;
529
+ transition: var(--transition);
530
+ }
531
+
532
+ .social-link:hover {
533
+ background: var(--primary-dark);
534
+ transform: translateY(-2px);
535
+ }
536
+
537
+ .footer-bottom {
538
+ text-align: center;
539
+ padding-top: 2rem;
540
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
541
+ color: rgba(255, 255, 255, 0.7);
542
+ }
543
+
544
+ /* Modal */
545
+ .modal {
546
+ display: none;
547
+ position: fixed;
548
+ top: 0;
549
+ left: 0;
550
+ width: 100%;
551
+ height: 100%;
552
+ background: rgba(0, 0, 0, 0.5);
553
+ z-index: 2000;
554
+ align-items: center;
555
+ justify-content: center;
556
+ }
557
+
558
+ .modal.active {
559
+ display: flex;
560
+ }
561
+
562
+ .modal-content {
563
+ background: white;
564
+ border-radius: var(--border-radius);
565
+ max-width: 500px;
566
+ width: 90%;
567
+ max-height: 90vh;
568
+ overflow-y: auto;
569
+ }
570
+
571
+ .modal-header {
572
+ display: flex;
573
+ justify-content: space-between;
574
+ align-items: center;
575
+ padding: 1.5rem;
576
+ border-bottom: 1px solid var(--border-color);
577
+ }
578
+
579
+ .modal-close {
580
+ background: none;
581
+ border: none;
582
+ font-size: 1.5rem;
583
+ cursor: pointer;
584
+ color: var(--text-light);
585
+ }
586
+
587
+ .modal-body {
588
+ padding: 1.5rem;
589
+ }
590
+
591
+ .charity-info {
592
+ background: #f8f9fa;
593
+ padding: 1rem;
594
+ border-radius: var(--border-radius);
595
+ margin-bottom: 1.5rem;
596
+ }
597
+
598
+ .amount-options {
599
+ display: flex;
600
+ gap: 0.5rem;
601
+ margin-bottom: 1rem;
602
+ flex-wrap: wrap;
603
+ }
604
+
605
+ .amount-btn {
606
+ padding: 0.5rem 1rem;
607
+ border: 1px solid var(--border-color);
608
+ background: white;
609
+ border-radius: var(--border-radius);
610
+ cursor: pointer;
611
+ transition: var(--transition);
612
+ }
613
+
614
+ .amount-btn:hover,
615
+ .amount-btn.active {
616
+ background: var(--primary-color);
617
+ color: white;
618
+ border-color: var(--primary-color);
619
+ }
620
+
621
+ #donationAmount {
622
+ padding: 0.5rem;
623
+ border: 1px solid var(--border-color);
624
+ border-radius: var(--border-radius);
625
+ width: 100px;
626
+ }
627
+
628
+ /* Responsive Design */
629
+ @media (max-width: 768px) {
630
+ .nav-menu {
631
+ display: none;
632
+ position: absolute;
633
+ top: 100%;
634
+ left: 0;
635
+ width: 100%;
636
+ background: white;
637
+ flex-direction: column;
638
+ padding: 1rem;
639
+ box-shadow: var(--shadow);
640
+ }
641
+
642
+ .nav-menu.active {
643
+ display: flex;
644
+ }
645
+
646
+ .nav-toggle {
647
+ display: block;
648
+ }
649
+
650
+ .hero-title {
651
+ font-size: 2rem;
652
+ }
653
+
654
+ .hero-stats {
655
+ flex-direction: column;
656
+ gap: 1rem;
657
+ }
658
+
659
+ .charities-grid {
660
+ grid-template-columns: 1fr;
661
+ }
662
+
663
+ .filters {
664
+ flex-direction: column;
665
+ align-items: stretch;
666
+ }
667
+
668
+ .search-group {
669
+ margin-left: 0;
670
+ }
671
+
672
+ .search-input {
673
+ width: 100%;
674
+ }
675
+
676
+ .contact-content {
677
+ grid-template-columns: 1fr;
678
+ }
679
+
680
+ .footer-content {
681
+ grid-template-columns: 1fr;
682
+ text-align: center;
683
+ }
684
+
685
+ .social-links {
686
+ justify-content: center;
687
+ }
688
+
689
+ .features {
690
+ grid-template-columns: 1fr;
691
+ }
692
+ }
693
+
694
+ /* Loading Spinner */
695
+ .spinner {
696
+ border: 3px solid var(--light-color);
697
+ border-top: 3px solid var(--primary-color);
698
+ border-radius: 50%;
699
+ width: 40px;
700
+ height: 40px;
701
+ animation: spin 1s linear infinite;
702
+ margin: 2rem auto;
703
+ }
704
+
705
+ @keyframes spin {
706
+ 0% {
707
+ transform: rotate(0deg);
708
+ }
709
+ 100% {
710
+ transform: rotate(360deg);
711
+ }
712
+ }
713
+
714
+ /* Toast Notification */
715
+ .toast {
716
+ position: fixed;
717
+ bottom: 20px;
718
+ right: 20px;
719
+ background: var(--dark-color);
720
+ color: white;
721
+ padding: 1rem 1.5rem;
722
+ border-radius: var(--border-radius);
723
+ box-shadow: var(--shadow);
724
+ z-index: 3000;
725
+ opacity: 0;
726
+ transform: translateY(100px);
727
+ transition: var(--transition);
728
+ }
729
+
730
+ .toast.show {
731
+ opacity: 1;
732
+ transform: translateY(0);
733
+ }
734
+
735
+ .toast.success {
736
+ background: var(--success-color);
737
+ }
738
+
739
+ .toast.error {
740
+ background: var(--primary-color);
741
+ }