easc-cli 1.1.30 → 1.1.33

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