claude-code-templates 1.21.12 → 1.22.0

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,1781 @@
1
+ /* Reset and Base Styles */
2
+ * {
3
+ margin: 0;
4
+ padding: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ :root {
9
+ /* GitHub Dark Theme Colors */
10
+ --bg-primary: #0d1117;
11
+ --bg-secondary: #161b22;
12
+ --bg-tertiary: #1c2128;
13
+ --bg-overlay: #21262d;
14
+
15
+ --text-primary: #e6edf3;
16
+ --text-secondary: #7d8590;
17
+ --text-muted: #484f58;
18
+
19
+ --border-primary: #30363d;
20
+ --border-secondary: #21262d;
21
+ --border-muted: #373e47;
22
+
23
+ --accent-primary: #d57455;
24
+ --accent-hover: #e08567;
25
+ --accent-active: #c46343;
26
+
27
+ --success: #238636;
28
+ --success-emphasis: #2ea043;
29
+ --danger: #da3633;
30
+ --warning: #d29922;
31
+
32
+ /* Spacing */
33
+ --spacing-xs: 0.25rem;
34
+ --spacing-sm: 0.5rem;
35
+ --spacing-md: 1rem;
36
+ --spacing-lg: 1.5rem;
37
+ --spacing-xl: 2rem;
38
+
39
+ /* Sidebar */
40
+ --sidebar-width: 280px;
41
+ --sidebar-collapsed-width: 60px;
42
+
43
+ /* Transitions */
44
+ --transition-fast: 150ms ease;
45
+ --transition-normal: 250ms ease;
46
+ --transition-slow: 350ms ease;
47
+
48
+ /* Shadows */
49
+ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
50
+ --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
51
+ --shadow-lg: 0 10px 20px rgba(0, 0, 0, 0.5);
52
+ --shadow-xl: 0 20px 40px rgba(0, 0, 0, 0.6);
53
+ }
54
+
55
+ body {
56
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
57
+ background: var(--bg-primary);
58
+ color: var(--text-primary);
59
+ line-height: 1.6;
60
+ overflow-x: hidden;
61
+ -webkit-font-smoothing: antialiased;
62
+ -moz-osx-font-smoothing: grayscale;
63
+ }
64
+
65
+ /* Layout */
66
+ .app-container {
67
+ display: flex;
68
+ min-height: 100vh;
69
+ }
70
+
71
+ /* ==================== SIDEBAR ==================== */
72
+ .sidebar {
73
+ width: var(--sidebar-width);
74
+ background: var(--bg-secondary);
75
+ border-right: 1px solid var(--border-primary);
76
+ display: flex;
77
+ flex-direction: column;
78
+ position: fixed;
79
+ top: 0;
80
+ left: 0;
81
+ height: 100vh;
82
+ transition: width var(--transition-normal), transform var(--transition-normal);
83
+ z-index: 100;
84
+ overflow: hidden;
85
+ }
86
+
87
+ .sidebar.collapsed {
88
+ width: var(--sidebar-collapsed-width);
89
+ }
90
+
91
+ .sidebar-header {
92
+ padding: var(--spacing-lg);
93
+ border-bottom: 1px solid var(--border-primary);
94
+ display: flex;
95
+ align-items: center;
96
+ justify-content: space-between;
97
+ min-height: 70px;
98
+ }
99
+
100
+ .sidebar-logo {
101
+ display: flex;
102
+ align-items: center;
103
+ gap: var(--spacing-md);
104
+ transition: opacity var(--transition-fast);
105
+ }
106
+
107
+ .sidebar.collapsed .sidebar-logo .logo-text {
108
+ display: none;
109
+ }
110
+
111
+ .logo-icon {
112
+ font-size: 1.75rem;
113
+ flex-shrink: 0;
114
+ }
115
+
116
+ .logo-text {
117
+ font-size: 1.125rem;
118
+ font-weight: 600;
119
+ color: var(--text-primary);
120
+ white-space: nowrap;
121
+ }
122
+
123
+ .sidebar-toggle {
124
+ background: transparent;
125
+ border: 1px solid var(--border-primary);
126
+ color: var(--text-secondary);
127
+ padding: var(--spacing-sm);
128
+ border-radius: 6px;
129
+ cursor: pointer;
130
+ transition: all var(--transition-fast);
131
+ width: 32px;
132
+ height: 32px;
133
+ display: flex;
134
+ align-items: center;
135
+ justify-content: center;
136
+ flex-shrink: 0;
137
+ }
138
+
139
+ .sidebar-toggle:hover {
140
+ background: var(--bg-tertiary);
141
+ color: var(--text-primary);
142
+ border-color: var(--border-muted);
143
+ }
144
+
145
+ .toggle-icon {
146
+ font-size: 1.125rem;
147
+ }
148
+
149
+ .sidebar-stats {
150
+ padding: var(--spacing-lg);
151
+ display: grid;
152
+ grid-template-columns: 1fr 1fr;
153
+ gap: var(--spacing-md);
154
+ border-bottom: 1px solid var(--border-primary);
155
+ }
156
+
157
+ .sidebar.collapsed .sidebar-stats {
158
+ grid-template-columns: 1fr;
159
+ padding: var(--spacing-md);
160
+ }
161
+
162
+ .sidebar-stat {
163
+ text-align: center;
164
+ padding: var(--spacing-md);
165
+ background: var(--bg-tertiary);
166
+ border-radius: 8px;
167
+ transition: transform var(--transition-fast);
168
+ }
169
+
170
+ .sidebar-stat:hover {
171
+ transform: translateY(-2px);
172
+ }
173
+
174
+ .stat-number {
175
+ display: block;
176
+ font-size: 1.5rem;
177
+ font-weight: 700;
178
+ color: var(--accent-primary);
179
+ line-height: 1;
180
+ }
181
+
182
+ .stat-text {
183
+ display: block;
184
+ font-size: 0.75rem;
185
+ color: var(--text-secondary);
186
+ margin-top: var(--spacing-xs);
187
+ white-space: nowrap;
188
+ }
189
+
190
+ .sidebar.collapsed .stat-text {
191
+ display: none;
192
+ }
193
+
194
+ .sidebar-section {
195
+ padding: var(--spacing-lg);
196
+ border-bottom: 1px solid var(--border-primary);
197
+ }
198
+
199
+ .sidebar.collapsed .sidebar-section {
200
+ padding: var(--spacing-md);
201
+ }
202
+
203
+ .sidebar-section-header {
204
+ display: flex;
205
+ align-items: center;
206
+ justify-content: space-between;
207
+ margin-bottom: var(--spacing-md);
208
+ }
209
+
210
+ .section-title {
211
+ font-size: 0.75rem;
212
+ font-weight: 600;
213
+ text-transform: uppercase;
214
+ letter-spacing: 0.5px;
215
+ color: var(--text-secondary);
216
+ }
217
+
218
+ .sidebar.collapsed .section-title {
219
+ display: none;
220
+ }
221
+
222
+ .section-count {
223
+ background: var(--bg-tertiary);
224
+ color: var(--text-secondary);
225
+ font-size: 0.75rem;
226
+ padding: 0.125rem 0.5rem;
227
+ border-radius: 12px;
228
+ font-weight: 600;
229
+ }
230
+
231
+ .marketplace-filters {
232
+ display: grid;
233
+ grid-template-columns: repeat(3, 1fr);
234
+ gap: var(--spacing-xs);
235
+ }
236
+
237
+ .sidebar.collapsed .marketplace-filters {
238
+ display: none;
239
+ }
240
+
241
+ .marketplace-filter-btn {
242
+ background: var(--bg-tertiary);
243
+ border: 1px solid var(--border-secondary);
244
+ color: var(--text-secondary);
245
+ padding: var(--spacing-sm) var(--spacing-xs);
246
+ border-radius: 6px;
247
+ font-size: 0.75rem;
248
+ font-weight: 500;
249
+ cursor: pointer;
250
+ transition: all var(--transition-fast);
251
+ }
252
+
253
+ .marketplace-filter-btn:hover {
254
+ background: var(--bg-overlay);
255
+ color: var(--text-primary);
256
+ }
257
+
258
+ .marketplace-filter-btn.active {
259
+ background: var(--accent-primary);
260
+ color: var(--bg-primary);
261
+ border-color: var(--accent-primary);
262
+ }
263
+
264
+ .sidebar-nav {
265
+ flex: 1;
266
+ overflow-y: auto;
267
+ padding: var(--spacing-md);
268
+ }
269
+
270
+ .sidebar-nav::-webkit-scrollbar {
271
+ width: 6px;
272
+ }
273
+
274
+ .sidebar-nav::-webkit-scrollbar-track {
275
+ background: transparent;
276
+ }
277
+
278
+ .sidebar-nav::-webkit-scrollbar-thumb {
279
+ background: var(--border-primary);
280
+ border-radius: 3px;
281
+ }
282
+
283
+ .sidebar-nav::-webkit-scrollbar-thumb:hover {
284
+ background: var(--border-muted);
285
+ }
286
+
287
+ .marketplace-item {
288
+ width: 100%;
289
+ background: transparent;
290
+ border: 1px solid transparent;
291
+ color: var(--text-secondary);
292
+ padding: var(--spacing-md);
293
+ border-radius: 8px;
294
+ cursor: pointer;
295
+ display: flex;
296
+ align-items: center;
297
+ gap: var(--spacing-md);
298
+ transition: all var(--transition-fast);
299
+ margin-bottom: var(--spacing-xs);
300
+ text-align: left;
301
+ position: relative;
302
+ }
303
+
304
+ .marketplace-item:hover {
305
+ background: var(--bg-tertiary);
306
+ color: var(--text-primary);
307
+ border-color: var(--border-muted);
308
+ }
309
+
310
+ .marketplace-item.active {
311
+ background: var(--bg-tertiary);
312
+ color: var(--text-primary);
313
+ border-color: var(--accent-primary);
314
+ }
315
+
316
+ .marketplace-item.disabled {
317
+ opacity: 0.6;
318
+ }
319
+
320
+ .marketplace-icon {
321
+ font-size: 1.5rem;
322
+ flex-shrink: 0;
323
+ }
324
+
325
+ .marketplace-info {
326
+ flex: 1;
327
+ min-width: 0;
328
+ display: flex;
329
+ flex-direction: column;
330
+ gap: 0.125rem;
331
+ }
332
+
333
+ .sidebar.collapsed .marketplace-info {
334
+ display: none;
335
+ }
336
+
337
+ .marketplace-name {
338
+ font-weight: 500;
339
+ color: inherit;
340
+ white-space: nowrap;
341
+ overflow: hidden;
342
+ text-overflow: ellipsis;
343
+ }
344
+
345
+ .marketplace-count {
346
+ font-size: 0.75rem;
347
+ color: var(--text-muted);
348
+ }
349
+
350
+ .marketplace-status {
351
+ width: 8px;
352
+ height: 8px;
353
+ border-radius: 50%;
354
+ flex-shrink: 0;
355
+ }
356
+
357
+ .marketplace-status.enabled {
358
+ background: var(--success);
359
+ }
360
+
361
+ .marketplace-status.disabled {
362
+ background: var(--text-muted);
363
+ }
364
+
365
+ .sidebar.collapsed .marketplace-status {
366
+ position: absolute;
367
+ top: var(--spacing-sm);
368
+ right: var(--spacing-sm);
369
+ }
370
+
371
+ .sidebar-loading {
372
+ display: flex;
373
+ flex-direction: column;
374
+ align-items: center;
375
+ justify-content: center;
376
+ padding: var(--spacing-xl);
377
+ color: var(--text-secondary);
378
+ gap: var(--spacing-md);
379
+ }
380
+
381
+ .sidebar-empty {
382
+ text-align: center;
383
+ padding: var(--spacing-xl);
384
+ color: var(--text-secondary);
385
+ font-size: 0.875rem;
386
+ }
387
+
388
+ .sidebar-footer {
389
+ padding: var(--spacing-lg);
390
+ border-top: 1px solid var(--border-primary);
391
+ display: flex;
392
+ flex-direction: column;
393
+ gap: var(--spacing-sm);
394
+ }
395
+
396
+ .sidebar.collapsed .sidebar-footer {
397
+ padding: var(--spacing-md);
398
+ }
399
+
400
+ .sidebar-link {
401
+ display: flex;
402
+ align-items: center;
403
+ gap: var(--spacing-md);
404
+ padding: var(--spacing-md);
405
+ color: var(--text-secondary);
406
+ text-decoration: none;
407
+ border-radius: 6px;
408
+ transition: all var(--transition-fast);
409
+ font-size: 0.875rem;
410
+ }
411
+
412
+ .sidebar-link:hover {
413
+ background: var(--bg-tertiary);
414
+ color: var(--accent-primary);
415
+ }
416
+
417
+ .link-icon {
418
+ font-size: 1.125rem;
419
+ flex-shrink: 0;
420
+ }
421
+
422
+ .sidebar.collapsed .link-text {
423
+ display: none;
424
+ }
425
+
426
+ /* ==================== MAIN CONTENT ==================== */
427
+ .main-content {
428
+ flex: 1;
429
+ margin-left: var(--sidebar-width);
430
+ transition: margin-left var(--transition-normal);
431
+ min-height: 100vh;
432
+ display: flex;
433
+ flex-direction: column;
434
+ }
435
+
436
+ .sidebar.collapsed ~ .main-content {
437
+ margin-left: var(--sidebar-collapsed-width);
438
+ }
439
+
440
+ .top-bar {
441
+ background: var(--bg-secondary);
442
+ border-bottom: 1px solid var(--border-primary);
443
+ padding: var(--spacing-lg) var(--spacing-xl);
444
+ display: flex;
445
+ align-items: center;
446
+ justify-content: space-between;
447
+ gap: var(--spacing-lg);
448
+ flex-wrap: wrap;
449
+ position: sticky;
450
+ top: 0;
451
+ z-index: 50;
452
+ }
453
+
454
+ .top-bar-left {
455
+ flex: 1;
456
+ min-width: 200px;
457
+ }
458
+
459
+ .page-title {
460
+ display: flex;
461
+ align-items: center;
462
+ gap: var(--spacing-md);
463
+ font-size: 1.5rem;
464
+ font-weight: 600;
465
+ color: var(--text-primary);
466
+ margin-bottom: var(--spacing-xs);
467
+ }
468
+
469
+ .title-icon {
470
+ font-size: 1.75rem;
471
+ }
472
+
473
+ .breadcrumb {
474
+ font-size: 0.875rem;
475
+ color: var(--text-secondary);
476
+ }
477
+
478
+ .top-bar-right {
479
+ display: flex;
480
+ align-items: center;
481
+ gap: var(--spacing-md);
482
+ }
483
+
484
+ .search-box {
485
+ position: relative;
486
+ display: flex;
487
+ align-items: center;
488
+ }
489
+
490
+ .search-icon {
491
+ position: absolute;
492
+ left: var(--spacing-md);
493
+ color: var(--text-secondary);
494
+ pointer-events: none;
495
+ }
496
+
497
+ .search-input {
498
+ background: var(--bg-tertiary);
499
+ border: 1px solid var(--border-primary);
500
+ color: var(--text-primary);
501
+ padding: var(--spacing-sm) var(--spacing-md) var(--spacing-sm) 2.5rem;
502
+ border-radius: 8px;
503
+ font-size: 0.875rem;
504
+ width: 250px;
505
+ transition: all var(--transition-fast);
506
+ }
507
+
508
+ .search-input:focus {
509
+ outline: none;
510
+ border-color: var(--accent-primary);
511
+ box-shadow: 0 0 0 3px rgba(88, 166, 255, 0.1);
512
+ }
513
+
514
+ .search-input::placeholder {
515
+ color: var(--text-muted);
516
+ }
517
+
518
+ .view-controls {
519
+ display: flex;
520
+ gap: var(--spacing-xs);
521
+ background: var(--bg-tertiary);
522
+ padding: var(--spacing-xs);
523
+ border-radius: 8px;
524
+ border: 1px solid var(--border-primary);
525
+ }
526
+
527
+ .view-btn {
528
+ background: transparent;
529
+ border: none;
530
+ color: var(--text-secondary);
531
+ padding: var(--spacing-sm) var(--spacing-md);
532
+ border-radius: 6px;
533
+ cursor: pointer;
534
+ transition: all var(--transition-fast);
535
+ display: flex;
536
+ align-items: center;
537
+ justify-content: center;
538
+ }
539
+
540
+ .view-btn:hover {
541
+ color: var(--text-primary);
542
+ background: var(--bg-overlay);
543
+ }
544
+
545
+ .view-btn.active {
546
+ background: var(--accent-primary);
547
+ color: var(--bg-primary);
548
+ }
549
+
550
+ .view-icon {
551
+ font-size: 1rem;
552
+ }
553
+
554
+ .filters-bar {
555
+ background: var(--bg-secondary);
556
+ border-bottom: 1px solid var(--border-primary);
557
+ padding: var(--spacing-md) var(--spacing-xl);
558
+ display: flex;
559
+ align-items: center;
560
+ justify-content: space-between;
561
+ gap: var(--spacing-lg);
562
+ flex-wrap: wrap;
563
+ position: sticky;
564
+ top: 78px;
565
+ z-index: 40;
566
+ }
567
+
568
+ .filter-group {
569
+ display: flex;
570
+ gap: var(--spacing-sm);
571
+ flex-wrap: wrap;
572
+ }
573
+
574
+ .filter-chip {
575
+ background: var(--bg-tertiary);
576
+ border: 1px solid var(--border-primary);
577
+ color: var(--text-secondary);
578
+ padding: var(--spacing-sm) var(--spacing-md);
579
+ border-radius: 20px;
580
+ font-size: 0.875rem;
581
+ font-weight: 500;
582
+ cursor: pointer;
583
+ display: flex;
584
+ align-items: center;
585
+ gap: var(--spacing-sm);
586
+ transition: all var(--transition-fast);
587
+ }
588
+
589
+ .filter-chip:hover {
590
+ background: var(--bg-overlay);
591
+ color: var(--text-primary);
592
+ border-color: var(--border-muted);
593
+ }
594
+
595
+ .filter-chip.active {
596
+ background: var(--accent-primary);
597
+ color: var(--bg-primary);
598
+ border-color: var(--accent-primary);
599
+ }
600
+
601
+ .chip-badge {
602
+ background: rgba(0, 0, 0, 0.2);
603
+ padding: 0.125rem 0.5rem;
604
+ border-radius: 12px;
605
+ font-size: 0.75rem;
606
+ font-weight: 600;
607
+ }
608
+
609
+ .filter-chip.active .chip-badge {
610
+ background: rgba(0, 0, 0, 0.3);
611
+ }
612
+
613
+ .status-dot {
614
+ width: 8px;
615
+ height: 8px;
616
+ border-radius: 50%;
617
+ }
618
+
619
+ .status-dot.enabled {
620
+ background: var(--success);
621
+ }
622
+
623
+ .status-dot.disabled {
624
+ background: var(--text-muted);
625
+ }
626
+
627
+ .sort-controls {
628
+ display: flex;
629
+ align-items: center;
630
+ gap: var(--spacing-sm);
631
+ }
632
+
633
+ .sort-label {
634
+ font-size: 0.875rem;
635
+ color: var(--text-secondary);
636
+ }
637
+
638
+ .sort-select {
639
+ background: var(--bg-tertiary);
640
+ border: 1px solid var(--border-primary);
641
+ color: var(--text-primary);
642
+ padding: var(--spacing-sm) var(--spacing-md);
643
+ border-radius: 6px;
644
+ font-size: 0.875rem;
645
+ cursor: pointer;
646
+ transition: all var(--transition-fast);
647
+ }
648
+
649
+ .sort-select:hover {
650
+ border-color: var(--border-muted);
651
+ }
652
+
653
+ .sort-select:focus {
654
+ outline: none;
655
+ border-color: var(--accent-primary);
656
+ }
657
+
658
+ /* ==================== PLUGINS CONTAINER ==================== */
659
+ .plugins-container {
660
+ flex: 1;
661
+ padding: var(--spacing-xl);
662
+ overflow-y: auto;
663
+ }
664
+
665
+ .plugins-grid {
666
+ display: grid;
667
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
668
+ gap: var(--spacing-lg);
669
+ animation: fadeIn var(--transition-normal);
670
+ align-items: start;
671
+ }
672
+
673
+ .plugins-list {
674
+ display: flex;
675
+ flex-direction: column;
676
+ gap: var(--spacing-md);
677
+ animation: fadeIn var(--transition-normal);
678
+ }
679
+
680
+ /* Plugin Card (Grid View) */
681
+ .plugin-card {
682
+ background: var(--bg-secondary);
683
+ border: 1px solid var(--border-primary);
684
+ border-radius: 12px;
685
+ padding: var(--spacing-lg);
686
+ cursor: pointer;
687
+ transition: all var(--transition-fast);
688
+ display: flex;
689
+ flex-direction: column;
690
+ gap: var(--spacing-md);
691
+ position: relative;
692
+ overflow: hidden;
693
+ height: fit-content;
694
+ }
695
+
696
+ .plugin-card::before {
697
+ content: '';
698
+ position: absolute;
699
+ top: 0;
700
+ left: 0;
701
+ right: 0;
702
+ height: 3px;
703
+ background: var(--accent-primary);
704
+ transform: scaleX(0);
705
+ transition: transform var(--transition-normal);
706
+ }
707
+
708
+ .plugin-card:hover {
709
+ border-color: var(--accent-primary);
710
+ transform: translateY(-4px);
711
+ box-shadow: var(--shadow-lg);
712
+ }
713
+
714
+ .plugin-card:hover::before {
715
+ transform: scaleX(1);
716
+ }
717
+
718
+ .plugin-card.disabled {
719
+ opacity: 0.7;
720
+ }
721
+
722
+ .plugin-card.disabled:hover {
723
+ transform: translateY(-2px);
724
+ }
725
+
726
+ .plugin-card-header {
727
+ display: flex;
728
+ align-items: flex-start;
729
+ gap: var(--spacing-md);
730
+ }
731
+
732
+ .plugin-card-status {
733
+ width: 12px;
734
+ height: 12px;
735
+ border-radius: 50%;
736
+ flex-shrink: 0;
737
+ margin-top: 0.25rem;
738
+ }
739
+
740
+ .plugin-card-status.enabled {
741
+ background: var(--success);
742
+ box-shadow: 0 0 8px var(--success);
743
+ }
744
+
745
+ .plugin-card-status.disabled {
746
+ background: var(--text-muted);
747
+ }
748
+
749
+ .plugin-card-title {
750
+ flex: 1;
751
+ font-size: 1.125rem;
752
+ font-weight: 600;
753
+ color: var(--text-primary);
754
+ line-height: 1.3;
755
+ }
756
+
757
+ .plugin-card-version {
758
+ background: var(--bg-tertiary);
759
+ color: var(--text-secondary);
760
+ padding: 0.25rem 0.625rem;
761
+ border-radius: 12px;
762
+ font-size: 0.75rem;
763
+ font-weight: 500;
764
+ flex-shrink: 0;
765
+ }
766
+
767
+ .plugin-card-description {
768
+ color: var(--text-secondary);
769
+ font-size: 0.875rem;
770
+ line-height: 1.5;
771
+ display: -webkit-box;
772
+ -webkit-line-clamp: 3;
773
+ -webkit-box-orient: vertical;
774
+ overflow: hidden;
775
+ }
776
+
777
+ .plugin-card-components {
778
+ display: grid;
779
+ grid-template-columns: repeat(4, 1fr);
780
+ gap: var(--spacing-sm);
781
+ }
782
+
783
+ .component-badge {
784
+ background: var(--bg-tertiary);
785
+ border: 1px solid var(--border-secondary);
786
+ border-radius: 8px;
787
+ padding: var(--spacing-sm);
788
+ display: flex;
789
+ flex-direction: column;
790
+ align-items: center;
791
+ gap: 0.25rem;
792
+ transition: all var(--transition-fast);
793
+ }
794
+
795
+ .plugin-card:hover .component-badge {
796
+ border-color: var(--border-muted);
797
+ }
798
+
799
+ .component-icon {
800
+ font-size: 1.125rem;
801
+ }
802
+
803
+ .component-value {
804
+ font-size: 0.875rem;
805
+ font-weight: 600;
806
+ color: var(--accent-primary);
807
+ }
808
+
809
+ .plugin-card-footer {
810
+ display: flex;
811
+ align-items: center;
812
+ justify-content: space-between;
813
+ padding-top: var(--spacing-md);
814
+ border-top: 1px solid var(--border-secondary);
815
+ font-size: 0.75rem;
816
+ }
817
+
818
+ .plugin-card-marketplace {
819
+ color: var(--text-secondary);
820
+ font-weight: 500;
821
+ }
822
+
823
+ .plugin-card-total {
824
+ color: var(--text-muted);
825
+ }
826
+
827
+ /* Plugin List Item (List View) */
828
+ .plugin-list-item {
829
+ background: var(--bg-secondary);
830
+ border: 1px solid var(--border-primary);
831
+ border-radius: 10px;
832
+ padding: var(--spacing-lg);
833
+ cursor: pointer;
834
+ transition: all var(--transition-fast);
835
+ display: flex;
836
+ align-items: center;
837
+ gap: var(--spacing-lg);
838
+ position: relative;
839
+ }
840
+
841
+ .plugin-list-item::before {
842
+ content: '';
843
+ position: absolute;
844
+ top: 0;
845
+ left: 0;
846
+ bottom: 0;
847
+ width: 3px;
848
+ background: var(--accent-primary);
849
+ transform: scaleY(0);
850
+ transition: transform var(--transition-normal);
851
+ border-radius: 10px 0 0 10px;
852
+ }
853
+
854
+ .plugin-list-item:hover {
855
+ border-color: var(--accent-primary);
856
+ background: var(--bg-tertiary);
857
+ box-shadow: var(--shadow-md);
858
+ }
859
+
860
+ .plugin-list-item:hover::before {
861
+ transform: scaleY(1);
862
+ }
863
+
864
+ .plugin-list-item.disabled {
865
+ opacity: 0.7;
866
+ }
867
+
868
+ .plugin-list-status {
869
+ width: 10px;
870
+ height: 10px;
871
+ border-radius: 50%;
872
+ flex-shrink: 0;
873
+ }
874
+
875
+ .plugin-list-status.enabled {
876
+ background: var(--success);
877
+ box-shadow: 0 0 8px var(--success);
878
+ }
879
+
880
+ .plugin-list-status.disabled {
881
+ background: var(--text-muted);
882
+ }
883
+
884
+ .plugin-list-main {
885
+ flex: 1;
886
+ min-width: 0;
887
+ display: flex;
888
+ flex-direction: column;
889
+ gap: var(--spacing-sm);
890
+ }
891
+
892
+ .plugin-list-info {
893
+ display: flex;
894
+ flex-direction: column;
895
+ gap: 0.25rem;
896
+ }
897
+
898
+ .plugin-list-title {
899
+ font-size: 1rem;
900
+ font-weight: 600;
901
+ color: var(--text-primary);
902
+ }
903
+
904
+ .plugin-list-description {
905
+ color: var(--text-secondary);
906
+ font-size: 0.875rem;
907
+ display: -webkit-box;
908
+ -webkit-line-clamp: 2;
909
+ -webkit-box-orient: vertical;
910
+ overflow: hidden;
911
+ }
912
+
913
+ .plugin-list-meta {
914
+ display: flex;
915
+ align-items: center;
916
+ gap: var(--spacing-md);
917
+ font-size: 0.75rem;
918
+ color: var(--text-muted);
919
+ }
920
+
921
+ .plugin-list-version {
922
+ background: var(--bg-overlay);
923
+ padding: 0.125rem 0.5rem;
924
+ border-radius: 8px;
925
+ }
926
+
927
+ .plugin-list-components {
928
+ display: flex;
929
+ gap: var(--spacing-md);
930
+ padding: var(--spacing-sm) var(--spacing-md);
931
+ background: var(--bg-tertiary);
932
+ border-radius: 8px;
933
+ border: 1px solid var(--border-secondary);
934
+ }
935
+
936
+ .component-badge-sm {
937
+ display: flex;
938
+ align-items: center;
939
+ gap: var(--spacing-xs);
940
+ font-size: 0.875rem;
941
+ }
942
+
943
+ .component-badge-sm .component-icon {
944
+ font-size: 1rem;
945
+ }
946
+
947
+ .component-badge-sm .component-value {
948
+ font-weight: 600;
949
+ color: var(--accent-primary);
950
+ }
951
+
952
+ .plugin-list-action {
953
+ flex-shrink: 0;
954
+ color: var(--text-muted);
955
+ transition: all var(--transition-fast);
956
+ }
957
+
958
+ .plugin-list-item:hover .plugin-list-action {
959
+ color: var(--accent-primary);
960
+ transform: translateX(4px);
961
+ }
962
+
963
+ .action-icon {
964
+ font-size: 1.25rem;
965
+ }
966
+
967
+ /* ==================== LOADING & EMPTY STATES ==================== */
968
+ .content-loading {
969
+ display: flex;
970
+ flex-direction: column;
971
+ align-items: center;
972
+ justify-content: center;
973
+ padding: var(--spacing-xl);
974
+ min-height: 300px;
975
+ }
976
+
977
+ .spinner {
978
+ width: 24px;
979
+ height: 24px;
980
+ border: 3px solid var(--border-primary);
981
+ border-top-color: var(--accent-primary);
982
+ border-radius: 50%;
983
+ animation: spin 0.8s linear infinite;
984
+ }
985
+
986
+ .spinner-large {
987
+ width: 48px;
988
+ height: 48px;
989
+ border: 4px solid var(--border-primary);
990
+ border-top-color: var(--accent-primary);
991
+ border-radius: 50%;
992
+ animation: spin 0.8s linear infinite;
993
+ }
994
+
995
+ .loading-text {
996
+ margin-top: var(--spacing-md);
997
+ color: var(--text-secondary);
998
+ font-size: 0.875rem;
999
+ }
1000
+
1001
+ .empty-state-container {
1002
+ display: flex;
1003
+ align-items: center;
1004
+ justify-content: center;
1005
+ padding: var(--spacing-xl);
1006
+ min-height: 400px;
1007
+ }
1008
+
1009
+ .empty-state {
1010
+ text-align: center;
1011
+ max-width: 400px;
1012
+ }
1013
+
1014
+ .empty-icon {
1015
+ font-size: 4rem;
1016
+ opacity: 0.3;
1017
+ margin-bottom: var(--spacing-lg);
1018
+ }
1019
+
1020
+ .empty-title {
1021
+ font-size: 1.5rem;
1022
+ color: var(--text-primary);
1023
+ margin-bottom: var(--spacing-sm);
1024
+ }
1025
+
1026
+ .empty-description {
1027
+ color: var(--text-secondary);
1028
+ font-size: 0.875rem;
1029
+ line-height: 1.6;
1030
+ margin-bottom: var(--spacing-lg);
1031
+ }
1032
+
1033
+ /* ==================== MODAL ==================== */
1034
+ .modal-overlay {
1035
+ position: fixed;
1036
+ top: 0;
1037
+ left: 0;
1038
+ right: 0;
1039
+ bottom: 0;
1040
+ background: rgba(0, 0, 0, 0.8);
1041
+ backdrop-filter: blur(4px);
1042
+ display: flex;
1043
+ align-items: center;
1044
+ justify-content: center;
1045
+ z-index: 1000;
1046
+ opacity: 0;
1047
+ visibility: hidden;
1048
+ transition: all var(--transition-normal);
1049
+ padding: var(--spacing-lg);
1050
+ }
1051
+
1052
+ .modal-overlay.active {
1053
+ opacity: 1;
1054
+ visibility: visible;
1055
+ }
1056
+
1057
+ .modal-container {
1058
+ background: var(--bg-secondary);
1059
+ border: 1px solid var(--border-primary);
1060
+ border-radius: 16px;
1061
+ max-width: 700px;
1062
+ width: 100%;
1063
+ max-height: 90vh;
1064
+ overflow-y: auto;
1065
+ box-shadow: var(--shadow-xl);
1066
+ transform: scale(0.95) translateY(20px);
1067
+ transition: transform var(--transition-normal);
1068
+ }
1069
+
1070
+ .modal-overlay.active .modal-container {
1071
+ transform: scale(1) translateY(0);
1072
+ }
1073
+
1074
+ .modal-container::-webkit-scrollbar {
1075
+ width: 8px;
1076
+ }
1077
+
1078
+ .modal-container::-webkit-scrollbar-track {
1079
+ background: var(--bg-tertiary);
1080
+ }
1081
+
1082
+ .modal-container::-webkit-scrollbar-thumb {
1083
+ background: var(--text-muted);
1084
+ border-radius: 4px;
1085
+ }
1086
+
1087
+ .modal-container::-webkit-scrollbar-thumb:hover {
1088
+ background: var(--text-secondary);
1089
+ }
1090
+
1091
+ .modal-header {
1092
+ padding: var(--spacing-xl);
1093
+ border-bottom: 1px solid var(--border-primary);
1094
+ display: flex;
1095
+ align-items: flex-start;
1096
+ justify-content: space-between;
1097
+ gap: var(--spacing-lg);
1098
+ position: sticky;
1099
+ top: 0;
1100
+ background: var(--bg-secondary);
1101
+ z-index: 10;
1102
+ }
1103
+
1104
+ .modal-title-section {
1105
+ flex: 1;
1106
+ min-width: 0;
1107
+ }
1108
+
1109
+ .modal-title {
1110
+ font-size: 1.5rem;
1111
+ font-weight: 600;
1112
+ color: var(--text-primary);
1113
+ margin-bottom: var(--spacing-sm);
1114
+ }
1115
+
1116
+ .modal-badges {
1117
+ display: flex;
1118
+ gap: var(--spacing-sm);
1119
+ flex-wrap: wrap;
1120
+ }
1121
+
1122
+ .modal-badge {
1123
+ padding: 0.375rem 0.75rem;
1124
+ border-radius: 12px;
1125
+ font-size: 0.75rem;
1126
+ font-weight: 600;
1127
+ }
1128
+
1129
+ .modal-badge.version-badge {
1130
+ background: var(--bg-tertiary);
1131
+ color: var(--text-secondary);
1132
+ border: 1px solid var(--border-secondary);
1133
+ }
1134
+
1135
+ .modal-badge.status-badge.enabled {
1136
+ background: var(--success);
1137
+ color: white;
1138
+ }
1139
+
1140
+ .modal-badge.status-badge.disabled {
1141
+ background: var(--text-muted);
1142
+ color: white;
1143
+ }
1144
+
1145
+ .modal-close-btn {
1146
+ background: transparent;
1147
+ border: 1px solid var(--border-primary);
1148
+ color: var(--text-secondary);
1149
+ width: 36px;
1150
+ height: 36px;
1151
+ border-radius: 8px;
1152
+ cursor: pointer;
1153
+ display: flex;
1154
+ align-items: center;
1155
+ justify-content: center;
1156
+ flex-shrink: 0;
1157
+ transition: all var(--transition-fast);
1158
+ }
1159
+
1160
+ .modal-close-btn:hover {
1161
+ background: var(--bg-tertiary);
1162
+ color: var(--text-primary);
1163
+ border-color: var(--border-muted);
1164
+ }
1165
+
1166
+ .close-icon {
1167
+ font-size: 1.25rem;
1168
+ font-weight: 300;
1169
+ }
1170
+
1171
+ .modal-body {
1172
+ padding: var(--spacing-xl);
1173
+ }
1174
+
1175
+ .modal-section {
1176
+ margin-bottom: var(--spacing-xl);
1177
+ }
1178
+
1179
+ .modal-section:last-child {
1180
+ margin-bottom: 0;
1181
+ }
1182
+
1183
+ .modal-section-title {
1184
+ font-size: 1rem;
1185
+ font-weight: 600;
1186
+ color: var(--text-primary);
1187
+ margin-bottom: var(--spacing-md);
1188
+ }
1189
+
1190
+ .modal-description {
1191
+ color: var(--text-secondary);
1192
+ font-size: 0.9375rem;
1193
+ line-height: 1.6;
1194
+ }
1195
+
1196
+ .modal-components-grid {
1197
+ display: grid;
1198
+ grid-template-columns: repeat(4, 1fr);
1199
+ gap: var(--spacing-md);
1200
+ }
1201
+
1202
+ .modal-component-card {
1203
+ background: var(--bg-tertiary);
1204
+ border: 1px solid var(--border-secondary);
1205
+ border-radius: 10px;
1206
+ padding: var(--spacing-md);
1207
+ text-align: center;
1208
+ transition: all var(--transition-fast);
1209
+ }
1210
+
1211
+ .modal-component-card:hover {
1212
+ border-color: var(--border-muted);
1213
+ transform: translateY(-2px);
1214
+ }
1215
+
1216
+ .modal-component-icon {
1217
+ font-size: 1.75rem;
1218
+ margin-bottom: var(--spacing-sm);
1219
+ }
1220
+
1221
+ .modal-component-count {
1222
+ font-size: 1.5rem;
1223
+ font-weight: 700;
1224
+ color: var(--accent-primary);
1225
+ line-height: 1;
1226
+ margin-bottom: 0.25rem;
1227
+ }
1228
+
1229
+ .modal-component-label {
1230
+ font-size: 0.75rem;
1231
+ color: var(--text-secondary);
1232
+ text-transform: uppercase;
1233
+ letter-spacing: 0.5px;
1234
+ }
1235
+
1236
+ .modal-details-grid {
1237
+ display: grid;
1238
+ gap: var(--spacing-sm);
1239
+ }
1240
+
1241
+ .detail-card {
1242
+ background: var(--bg-tertiary);
1243
+ border: 1px solid var(--border-secondary);
1244
+ border-radius: 8px;
1245
+ padding: var(--spacing-md);
1246
+ display: flex;
1247
+ justify-content: space-between;
1248
+ align-items: center;
1249
+ gap: var(--spacing-md);
1250
+ }
1251
+
1252
+ .detail-label {
1253
+ font-size: 0.875rem;
1254
+ color: var(--text-secondary);
1255
+ font-weight: 500;
1256
+ }
1257
+
1258
+ .detail-value {
1259
+ font-size: 0.875rem;
1260
+ color: var(--text-primary);
1261
+ font-weight: 500;
1262
+ text-align: right;
1263
+ }
1264
+
1265
+ .keywords-container {
1266
+ display: flex;
1267
+ flex-wrap: wrap;
1268
+ gap: var(--spacing-sm);
1269
+ }
1270
+
1271
+ .keyword-tag {
1272
+ background: var(--bg-tertiary);
1273
+ border: 1px solid var(--border-secondary);
1274
+ color: var(--text-secondary);
1275
+ padding: 0.375rem 0.75rem;
1276
+ border-radius: 12px;
1277
+ font-size: 0.75rem;
1278
+ font-weight: 500;
1279
+ transition: all var(--transition-fast);
1280
+ }
1281
+
1282
+ .keyword-tag:hover {
1283
+ border-color: var(--accent-primary);
1284
+ color: var(--accent-primary);
1285
+ }
1286
+
1287
+ /* ==================== BUTTONS ==================== */
1288
+ .btn-primary {
1289
+ background: var(--accent-primary);
1290
+ color: var(--bg-primary);
1291
+ border: none;
1292
+ padding: var(--spacing-md) var(--spacing-lg);
1293
+ border-radius: 8px;
1294
+ font-size: 0.875rem;
1295
+ font-weight: 600;
1296
+ cursor: pointer;
1297
+ transition: all var(--transition-fast);
1298
+ display: inline-flex;
1299
+ align-items: center;
1300
+ justify-content: center;
1301
+ gap: var(--spacing-sm);
1302
+ text-decoration: none;
1303
+ }
1304
+
1305
+ .btn-primary:hover {
1306
+ background: var(--accent-hover);
1307
+ transform: translateY(-2px);
1308
+ box-shadow: var(--shadow-md);
1309
+ }
1310
+
1311
+ .btn-primary:active {
1312
+ transform: translateY(0);
1313
+ }
1314
+
1315
+ .btn-secondary {
1316
+ background: transparent;
1317
+ color: var(--text-primary);
1318
+ border: 1px solid var(--border-primary);
1319
+ padding: var(--spacing-md) var(--spacing-lg);
1320
+ border-radius: 8px;
1321
+ font-size: 0.875rem;
1322
+ font-weight: 600;
1323
+ cursor: pointer;
1324
+ transition: all var(--transition-fast);
1325
+ display: inline-flex;
1326
+ align-items: center;
1327
+ justify-content: center;
1328
+ gap: var(--spacing-sm);
1329
+ text-decoration: none;
1330
+ }
1331
+
1332
+ .btn-secondary:hover {
1333
+ background: var(--bg-tertiary);
1334
+ border-color: var(--accent-primary);
1335
+ color: var(--accent-primary);
1336
+ }
1337
+
1338
+ .btn-block {
1339
+ width: 100%;
1340
+ }
1341
+
1342
+ .btn-icon {
1343
+ font-size: 1.125rem;
1344
+ }
1345
+
1346
+ /* ==================== ANIMATIONS ==================== */
1347
+ @keyframes spin {
1348
+ to {
1349
+ transform: rotate(360deg);
1350
+ }
1351
+ }
1352
+
1353
+ @keyframes fadeIn {
1354
+ from {
1355
+ opacity: 0;
1356
+ transform: translateY(10px);
1357
+ }
1358
+ to {
1359
+ opacity: 1;
1360
+ transform: translateY(0);
1361
+ }
1362
+ }
1363
+
1364
+ /* ==================== RESPONSIVE ==================== */
1365
+ @media (max-width: 1024px) {
1366
+ .plugins-grid {
1367
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
1368
+ }
1369
+
1370
+ .search-input {
1371
+ width: 200px;
1372
+ }
1373
+ }
1374
+
1375
+ @media (max-width: 768px) {
1376
+ .sidebar {
1377
+ transform: translateX(-100%);
1378
+ }
1379
+
1380
+ .sidebar.active {
1381
+ transform: translateX(0);
1382
+ }
1383
+
1384
+ .main-content {
1385
+ margin-left: 0;
1386
+ }
1387
+
1388
+ .sidebar.collapsed ~ .main-content {
1389
+ margin-left: 0;
1390
+ }
1391
+
1392
+ .top-bar {
1393
+ padding: var(--spacing-md) var(--spacing-lg);
1394
+ }
1395
+
1396
+ .page-title {
1397
+ font-size: 1.25rem;
1398
+ }
1399
+
1400
+ .search-input {
1401
+ width: 150px;
1402
+ }
1403
+
1404
+ .filters-bar {
1405
+ padding: var(--spacing-md) var(--spacing-lg);
1406
+ flex-direction: column;
1407
+ align-items: flex-start;
1408
+ }
1409
+
1410
+ .plugins-container {
1411
+ padding: var(--spacing-lg);
1412
+ }
1413
+
1414
+ .plugins-grid {
1415
+ grid-template-columns: 1fr;
1416
+ }
1417
+
1418
+ .plugin-card-components {
1419
+ grid-template-columns: repeat(2, 1fr);
1420
+ }
1421
+
1422
+ .plugin-list-item {
1423
+ flex-direction: column;
1424
+ align-items: flex-start;
1425
+ }
1426
+
1427
+ .plugin-list-components {
1428
+ width: 100%;
1429
+ justify-content: space-around;
1430
+ }
1431
+
1432
+ .modal-components-grid {
1433
+ grid-template-columns: repeat(2, 1fr);
1434
+ }
1435
+
1436
+ .modal-header,
1437
+ .modal-body {
1438
+ padding: var(--spacing-lg);
1439
+ }
1440
+
1441
+ .detail-card {
1442
+ flex-direction: column;
1443
+ align-items: flex-start;
1444
+ gap: var(--spacing-sm);
1445
+ }
1446
+
1447
+ .detail-value {
1448
+ text-align: left;
1449
+ }
1450
+ }
1451
+
1452
+ @media (max-width: 480px) {
1453
+ .top-bar-right {
1454
+ width: 100%;
1455
+ flex-direction: column;
1456
+ }
1457
+
1458
+ .search-box {
1459
+ width: 100%;
1460
+ }
1461
+
1462
+ .search-input {
1463
+ width: 100%;
1464
+ }
1465
+
1466
+ .view-controls {
1467
+ width: 100%;
1468
+ justify-content: center;
1469
+ }
1470
+
1471
+ .filter-group {
1472
+ width: 100%;
1473
+ }
1474
+
1475
+ .filter-chip {
1476
+ flex: 1;
1477
+ justify-content: center;
1478
+ }
1479
+
1480
+ .modal-components-grid {
1481
+ grid-template-columns: 1fr;
1482
+ }
1483
+ }
1484
+
1485
+ /* ==================== PLUGIN ACTIONS ==================== */
1486
+ .plugin-actions-grid {
1487
+ display: grid;
1488
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1489
+ gap: var(--spacing-md);
1490
+ }
1491
+
1492
+ .action-button {
1493
+ background: var(--bg-tertiary);
1494
+ border: 1px solid var(--border-primary);
1495
+ color: var(--text-primary);
1496
+ padding: var(--spacing-md) var(--spacing-lg);
1497
+ border-radius: 8px;
1498
+ font-size: 0.875rem;
1499
+ font-weight: 600;
1500
+ cursor: pointer;
1501
+ display: flex;
1502
+ align-items: center;
1503
+ justify-content: center;
1504
+ gap: var(--spacing-sm);
1505
+ transition: all var(--transition-fast);
1506
+ }
1507
+
1508
+ .action-button:hover {
1509
+ background: var(--bg-overlay);
1510
+ border-color: var(--accent-primary);
1511
+ color: var(--accent-primary);
1512
+ transform: translateY(-2px);
1513
+ box-shadow: var(--shadow-md);
1514
+ }
1515
+
1516
+ .action-button:active {
1517
+ transform: translateY(0);
1518
+ }
1519
+
1520
+ .action-button.install-btn {
1521
+ background: var(--accent-primary);
1522
+ color: white;
1523
+ border-color: var(--accent-primary);
1524
+ }
1525
+
1526
+ .action-button.install-btn:hover {
1527
+ background: var(--accent-hover);
1528
+ border-color: var(--accent-hover);
1529
+ color: white;
1530
+ }
1531
+
1532
+ .action-button.enable-btn {
1533
+ background: var(--success);
1534
+ color: white;
1535
+ border-color: var(--success);
1536
+ }
1537
+
1538
+ .action-button.enable-btn:hover {
1539
+ background: var(--success-emphasis);
1540
+ border-color: var(--success-emphasis);
1541
+ color: white;
1542
+ }
1543
+
1544
+ .action-button.disable-btn {
1545
+ background: var(--warning);
1546
+ color: white;
1547
+ border-color: var(--warning);
1548
+ }
1549
+
1550
+ .action-button.disable-btn:hover {
1551
+ background: #e0a928;
1552
+ border-color: #e0a928;
1553
+ color: white;
1554
+ }
1555
+
1556
+ .action-button.uninstall-btn {
1557
+ background: var(--danger);
1558
+ color: white;
1559
+ border-color: var(--danger);
1560
+ }
1561
+
1562
+ .action-button.uninstall-btn:hover {
1563
+ background: #e04643;
1564
+ border-color: #e04643;
1565
+ color: white;
1566
+ }
1567
+
1568
+ .action-button:disabled {
1569
+ opacity: 0.5;
1570
+ cursor: not-allowed;
1571
+ }
1572
+
1573
+ .action-button:disabled:hover {
1574
+ transform: none;
1575
+ box-shadow: none;
1576
+ }
1577
+
1578
+ .action-icon {
1579
+ font-size: 1.125rem;
1580
+ }
1581
+
1582
+ /* ==================== COMMAND REFERENCE ==================== */
1583
+ .command-list {
1584
+ display: flex;
1585
+ flex-direction: column;
1586
+ gap: var(--spacing-md);
1587
+ }
1588
+
1589
+ .command-item {
1590
+ background: var(--bg-tertiary);
1591
+ border: 1px solid var(--border-secondary);
1592
+ border-radius: 10px;
1593
+ padding: var(--spacing-md);
1594
+ display: grid;
1595
+ grid-template-columns: auto 1fr auto;
1596
+ gap: var(--spacing-md);
1597
+ align-items: center;
1598
+ transition: all var(--transition-fast);
1599
+ position: relative;
1600
+ }
1601
+
1602
+ .command-item:hover {
1603
+ border-color: var(--accent-primary);
1604
+ box-shadow: var(--shadow-sm);
1605
+ }
1606
+
1607
+ .command-header {
1608
+ display: flex;
1609
+ align-items: center;
1610
+ gap: var(--spacing-sm);
1611
+ min-width: 140px;
1612
+ }
1613
+
1614
+ .command-icon {
1615
+ font-size: 1.25rem;
1616
+ }
1617
+
1618
+ .command-title {
1619
+ font-size: 0.875rem;
1620
+ font-weight: 600;
1621
+ color: var(--text-primary);
1622
+ white-space: nowrap;
1623
+ }
1624
+
1625
+ .command-code {
1626
+ background: var(--bg-primary);
1627
+ border: 1px solid var(--border-primary);
1628
+ border-radius: 6px;
1629
+ padding: var(--spacing-sm) var(--spacing-md);
1630
+ font-family: 'Courier New', Courier, monospace;
1631
+ font-size: 0.8125rem;
1632
+ color: var(--accent-primary);
1633
+ overflow-x: auto;
1634
+ white-space: nowrap;
1635
+ }
1636
+
1637
+ .command-code::-webkit-scrollbar {
1638
+ height: 4px;
1639
+ }
1640
+
1641
+ .command-code::-webkit-scrollbar-track {
1642
+ background: var(--bg-tertiary);
1643
+ }
1644
+
1645
+ .command-code::-webkit-scrollbar-thumb {
1646
+ background: var(--border-primary);
1647
+ border-radius: 2px;
1648
+ }
1649
+
1650
+ .command-copy-btn {
1651
+ background: var(--bg-overlay);
1652
+ border: 1px solid var(--border-primary);
1653
+ color: var(--text-secondary);
1654
+ padding: var(--spacing-sm) var(--spacing-md);
1655
+ border-radius: 6px;
1656
+ cursor: pointer;
1657
+ font-size: 1rem;
1658
+ transition: all var(--transition-fast);
1659
+ flex-shrink: 0;
1660
+ }
1661
+
1662
+ .command-copy-btn:hover {
1663
+ background: var(--accent-primary);
1664
+ border-color: var(--accent-primary);
1665
+ color: white;
1666
+ transform: scale(1.1);
1667
+ }
1668
+
1669
+ .command-copy-btn:active {
1670
+ transform: scale(0.95);
1671
+ }
1672
+
1673
+ /* ==================== TOAST NOTIFICATION ==================== */
1674
+ .toast {
1675
+ position: fixed;
1676
+ bottom: var(--spacing-xl);
1677
+ right: var(--spacing-xl);
1678
+ background: var(--success);
1679
+ color: white;
1680
+ padding: var(--spacing-md) var(--spacing-lg);
1681
+ border-radius: 10px;
1682
+ box-shadow: var(--shadow-lg);
1683
+ display: flex;
1684
+ align-items: center;
1685
+ gap: var(--spacing-md);
1686
+ font-size: 0.875rem;
1687
+ font-weight: 600;
1688
+ opacity: 0;
1689
+ visibility: hidden;
1690
+ transform: translateY(20px);
1691
+ transition: all var(--transition-normal);
1692
+ z-index: 2000;
1693
+ }
1694
+
1695
+ .toast.show {
1696
+ opacity: 1;
1697
+ visibility: visible;
1698
+ transform: translateY(0);
1699
+ }
1700
+
1701
+ .toast-icon {
1702
+ font-size: 1.25rem;
1703
+ }
1704
+
1705
+ .toast-message {
1706
+ white-space: nowrap;
1707
+ }
1708
+
1709
+ /* ==================== RESPONSIVE - Commands ==================== */
1710
+ @media (max-width: 768px) {
1711
+ .command-item {
1712
+ grid-template-columns: 1fr;
1713
+ gap: var(--spacing-sm);
1714
+ }
1715
+
1716
+ .command-header {
1717
+ min-width: auto;
1718
+ }
1719
+
1720
+ .command-code {
1721
+ width: 100%;
1722
+ }
1723
+
1724
+ .command-copy-btn {
1725
+ width: 100%;
1726
+ justify-content: center;
1727
+ }
1728
+
1729
+ .plugin-actions-grid {
1730
+ grid-template-columns: 1fr;
1731
+ }
1732
+
1733
+ .toast {
1734
+ bottom: var(--spacing-lg);
1735
+ right: var(--spacing-lg);
1736
+ left: var(--spacing-lg);
1737
+ }
1738
+ }
1739
+
1740
+ /* ==================== REFRESH BUTTON ==================== */
1741
+ .refresh-btn {
1742
+ background: var(--bg-tertiary);
1743
+ border: 1px solid var(--border-primary);
1744
+ color: var(--text-secondary);
1745
+ padding: var(--spacing-sm) var(--spacing-md);
1746
+ border-radius: 8px;
1747
+ cursor: pointer;
1748
+ display: flex;
1749
+ align-items: center;
1750
+ justify-content: center;
1751
+ transition: all var(--transition-fast);
1752
+ margin-right: var(--spacing-sm);
1753
+ }
1754
+
1755
+ .refresh-btn:hover {
1756
+ background: var(--bg-overlay);
1757
+ border-color: var(--accent-primary);
1758
+ color: var(--accent-primary);
1759
+ }
1760
+
1761
+ .refresh-btn:active {
1762
+ transform: scale(0.95);
1763
+ }
1764
+
1765
+ .refresh-btn.refreshing .refresh-icon {
1766
+ animation: spin 1s linear infinite;
1767
+ }
1768
+
1769
+ .refresh-icon {
1770
+ font-size: 1.125rem;
1771
+ transition: transform var(--transition-normal);
1772
+ }
1773
+
1774
+ @keyframes spin {
1775
+ from {
1776
+ transform: rotate(0deg);
1777
+ }
1778
+ to {
1779
+ transform: rotate(360deg);
1780
+ }
1781
+ }