claude-code-templates 1.26.4 → 1.28.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,3469 @@
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
+ }
1782
+
1783
+ /* ==================== SKILLS SPECIFIC STYLES ==================== */
1784
+
1785
+ /* Skills Grid */
1786
+ .skills-container {
1787
+ padding: var(--spacing-xl);
1788
+ display: grid;
1789
+ grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
1790
+ gap: var(--spacing-lg);
1791
+ max-width: 100%;
1792
+ }
1793
+
1794
+ .skills-container.list-view {
1795
+ grid-template-columns: 1fr;
1796
+ max-width: 1200px;
1797
+ }
1798
+
1799
+ /* Skill Card */
1800
+ .skill-card {
1801
+ background: var(--bg-secondary);
1802
+ border: 1px solid var(--border-primary);
1803
+ border-radius: 12px;
1804
+ padding: var(--spacing-lg);
1805
+ cursor: pointer;
1806
+ transition: all var(--transition-fast);
1807
+ position: relative;
1808
+ overflow: hidden;
1809
+ }
1810
+
1811
+ .skill-card::before {
1812
+ content: '';
1813
+ position: absolute;
1814
+ top: 0;
1815
+ left: 0;
1816
+ right: 0;
1817
+ height: 3px;
1818
+ background: linear-gradient(90deg, var(--accent-primary), var(--accent-hover));
1819
+ transform: scaleX(0);
1820
+ transition: transform var(--transition-fast);
1821
+ }
1822
+
1823
+ .skill-card:hover {
1824
+ border-color: var(--accent-primary);
1825
+ transform: translateY(-2px);
1826
+ box-shadow: var(--shadow-md);
1827
+ }
1828
+
1829
+ .skill-card:hover::before {
1830
+ transform: scaleX(1);
1831
+ }
1832
+
1833
+ .skill-card-header {
1834
+ display: flex;
1835
+ align-items: flex-start;
1836
+ justify-content: space-between;
1837
+ margin-bottom: var(--spacing-md);
1838
+ gap: var(--spacing-sm);
1839
+ }
1840
+
1841
+ .skill-card-title {
1842
+ font-size: 1.125rem;
1843
+ font-weight: 600;
1844
+ color: var(--text-primary);
1845
+ margin: 0;
1846
+ line-height: 1.3;
1847
+ }
1848
+
1849
+ .skill-source-badge {
1850
+ padding: 0.25rem 0.5rem;
1851
+ border-radius: 6px;
1852
+ font-size: 0.75rem;
1853
+ font-weight: 600;
1854
+ white-space: nowrap;
1855
+ flex-shrink: 0;
1856
+ }
1857
+
1858
+ .skill-source-badge.personal {
1859
+ background: rgba(56, 139, 253, 0.15);
1860
+ color: #58a6ff;
1861
+ border: 1px solid rgba(56, 139, 253, 0.3);
1862
+ }
1863
+
1864
+ .skill-source-badge.project {
1865
+ background: rgba(163, 113, 247, 0.15);
1866
+ color: #a371f7;
1867
+ border: 1px solid rgba(163, 113, 247, 0.3);
1868
+ }
1869
+
1870
+ .skill-source-badge.plugin {
1871
+ background: rgba(57, 211, 83, 0.15);
1872
+ color: #3dd68c;
1873
+ border: 1px solid rgba(57, 211, 83, 0.3);
1874
+ }
1875
+
1876
+ .skill-card-description {
1877
+ color: var(--text-secondary);
1878
+ font-size: 0.875rem;
1879
+ line-height: 1.5;
1880
+ margin-bottom: var(--spacing-md);
1881
+ display: -webkit-box;
1882
+ -webkit-line-clamp: 3;
1883
+ -webkit-box-orient: vertical;
1884
+ overflow: hidden;
1885
+ }
1886
+
1887
+ .skill-card-meta {
1888
+ display: flex;
1889
+ gap: var(--spacing-lg);
1890
+ padding-top: var(--spacing-md);
1891
+ border-top: 1px solid var(--border-secondary);
1892
+ }
1893
+
1894
+ .skill-meta-item {
1895
+ display: flex;
1896
+ align-items: center;
1897
+ gap: var(--spacing-xs);
1898
+ font-size: 0.75rem;
1899
+ color: var(--text-muted);
1900
+ }
1901
+
1902
+ .skill-meta-icon {
1903
+ font-size: 1rem;
1904
+ }
1905
+
1906
+ .skill-meta-value {
1907
+ color: var(--text-secondary);
1908
+ font-weight: 500;
1909
+ }
1910
+
1911
+ /* ==================== PROGRESSIVE CONTEXT LOADING DIAGRAM ==================== */
1912
+
1913
+ .skill-context-section {
1914
+ margin-top: var(--spacing-xl);
1915
+ margin-bottom: var(--spacing-xl);
1916
+ }
1917
+
1918
+ .context-diagram {
1919
+ display: flex;
1920
+ flex-direction: column;
1921
+ gap: var(--spacing-lg);
1922
+ margin-top: var(--spacing-lg);
1923
+ }
1924
+
1925
+ .context-box {
1926
+ position: relative;
1927
+ border-radius: 12px;
1928
+ padding: var(--spacing-lg);
1929
+ min-height: 120px;
1930
+ transition: all var(--transition-normal);
1931
+ }
1932
+
1933
+ /* Main Context - Orange/Coral (Always Loaded) */
1934
+ .main-context {
1935
+ background: linear-gradient(135deg, rgba(213, 116, 85, 0.1), rgba(213, 116, 85, 0.05));
1936
+ border: 2px solid rgba(213, 116, 85, 0.4);
1937
+ }
1938
+
1939
+ .main-context .context-header {
1940
+ color: #ff9b7a;
1941
+ }
1942
+
1943
+ /* Discovery Context - Green (Loaded on Demand) */
1944
+ .discovery-context {
1945
+ background: linear-gradient(135deg, rgba(46, 160, 67, 0.1), rgba(46, 160, 67, 0.05));
1946
+ border: 2px dashed rgba(46, 160, 67, 0.4);
1947
+ }
1948
+
1949
+ .discovery-context .context-header {
1950
+ color: #56d364;
1951
+ }
1952
+
1953
+ /* Progressive Context - Purple (Progressive Loading) */
1954
+ .progressive-context {
1955
+ background: linear-gradient(135deg, rgba(163, 113, 247, 0.1), rgba(163, 113, 247, 0.05));
1956
+ border: 2px dashed rgba(163, 113, 247, 0.4);
1957
+ }
1958
+
1959
+ .progressive-context .context-header {
1960
+ color: #a371f7;
1961
+ }
1962
+
1963
+ .context-header {
1964
+ font-size: 0.875rem;
1965
+ font-weight: 600;
1966
+ margin-bottom: var(--spacing-sm);
1967
+ text-transform: uppercase;
1968
+ letter-spacing: 0.5px;
1969
+ }
1970
+
1971
+ .context-badge {
1972
+ display: inline-block;
1973
+ padding: 0.25rem 0.75rem;
1974
+ border-radius: 20px;
1975
+ font-size: 0.75rem;
1976
+ font-weight: 600;
1977
+ margin-bottom: var(--spacing-md);
1978
+ }
1979
+
1980
+ .context-badge.always-loaded {
1981
+ background: rgba(213, 116, 85, 0.2);
1982
+ color: #ff9b7a;
1983
+ border: 1px solid rgba(213, 116, 85, 0.5);
1984
+ }
1985
+
1986
+ .context-badge.on-demand {
1987
+ background: rgba(46, 160, 67, 0.2);
1988
+ color: #56d364;
1989
+ border: 1px solid rgba(46, 160, 67, 0.5);
1990
+ }
1991
+
1992
+ .context-badge.progressive {
1993
+ background: rgba(163, 113, 247, 0.2);
1994
+ color: #a371f7;
1995
+ border: 1px solid rgba(163, 113, 247, 0.5);
1996
+ }
1997
+
1998
+ .context-content {
1999
+ display: flex;
2000
+ flex-direction: column;
2001
+ gap: var(--spacing-sm);
2002
+ }
2003
+
2004
+ .context-item {
2005
+ display: flex;
2006
+ align-items: center;
2007
+ gap: var(--spacing-sm);
2008
+ padding: var(--spacing-sm);
2009
+ background: var(--bg-overlay);
2010
+ border-radius: 8px;
2011
+ transition: all var(--transition-fast);
2012
+ }
2013
+
2014
+ .context-item:hover {
2015
+ background: var(--bg-tertiary);
2016
+ transform: translateX(4px);
2017
+ }
2018
+
2019
+ .file-icon {
2020
+ font-size: 1.25rem;
2021
+ flex-shrink: 0;
2022
+ }
2023
+
2024
+ .file-info {
2025
+ display: flex;
2026
+ flex-direction: column;
2027
+ gap: 0.125rem;
2028
+ flex: 1;
2029
+ }
2030
+
2031
+ .file-name {
2032
+ font-family: 'SF Mono', 'Monaco', 'Courier New', monospace;
2033
+ font-size: 0.875rem;
2034
+ color: var(--text-primary);
2035
+ }
2036
+
2037
+ .file-meta {
2038
+ font-size: 0.75rem;
2039
+ color: var(--text-muted);
2040
+ }
2041
+
2042
+ .no-files {
2043
+ color: var(--text-muted);
2044
+ font-size: 0.875rem;
2045
+ font-style: italic;
2046
+ margin: var(--spacing-md) 0;
2047
+ }
2048
+
2049
+ /* ==================== SKILL TOOLS SECTION ==================== */
2050
+
2051
+ .skill-tools-section {
2052
+ margin-top: var(--spacing-xl);
2053
+ margin-bottom: var(--spacing-xl);
2054
+ }
2055
+
2056
+ .tools-chips {
2057
+ display: flex;
2058
+ flex-wrap: wrap;
2059
+ gap: var(--spacing-sm);
2060
+ margin-top: var(--spacing-md);
2061
+ }
2062
+
2063
+ .tool-chip {
2064
+ display: inline-flex;
2065
+ align-items: center;
2066
+ gap: 0.25rem;
2067
+ padding: 0.375rem 0.75rem;
2068
+ background: var(--bg-overlay);
2069
+ border: 1px solid var(--border-primary);
2070
+ border-radius: 20px;
2071
+ font-size: 0.75rem;
2072
+ font-weight: 500;
2073
+ color: var(--text-secondary);
2074
+ transition: all var(--transition-fast);
2075
+ }
2076
+
2077
+ .tool-chip:hover {
2078
+ background: var(--bg-tertiary);
2079
+ border-color: var(--accent-primary);
2080
+ color: var(--text-primary);
2081
+ }
2082
+
2083
+ .tool-chip::before {
2084
+ content: '🔧';
2085
+ font-size: 0.875rem;
2086
+ }
2087
+
2088
+ /* ==================== FILE TREE ==================== */
2089
+
2090
+ .skill-files-section {
2091
+ margin-top: var(--spacing-xl);
2092
+ margin-bottom: var(--spacing-xl);
2093
+ }
2094
+
2095
+ .file-tree {
2096
+ background: var(--bg-overlay);
2097
+ border: 1px solid var(--border-primary);
2098
+ border-radius: 10px;
2099
+ padding: var(--spacing-lg);
2100
+ margin-top: var(--spacing-md);
2101
+ font-family: 'SF Mono', 'Monaco', 'Courier New', monospace;
2102
+ font-size: 0.875rem;
2103
+ max-height: 400px;
2104
+ overflow-y: auto;
2105
+ }
2106
+
2107
+ .tree-item {
2108
+ display: flex;
2109
+ align-items: center;
2110
+ gap: var(--spacing-sm);
2111
+ padding: 0.375rem var(--spacing-sm);
2112
+ cursor: pointer;
2113
+ border-radius: 6px;
2114
+ transition: all var(--transition-fast);
2115
+ position: relative;
2116
+ }
2117
+
2118
+ .tree-item:hover {
2119
+ background: var(--bg-tertiary);
2120
+ }
2121
+
2122
+ .tree-item.active {
2123
+ background: rgba(213, 116, 85, 0.15);
2124
+ color: var(--accent-primary);
2125
+ }
2126
+
2127
+ .tree-icon {
2128
+ font-size: 1rem;
2129
+ flex-shrink: 0;
2130
+ }
2131
+
2132
+ .tree-label {
2133
+ flex: 1;
2134
+ color: var(--text-secondary);
2135
+ }
2136
+
2137
+ .tree-item.active .tree-label {
2138
+ color: var(--accent-primary);
2139
+ font-weight: 600;
2140
+ }
2141
+
2142
+ .tree-size {
2143
+ font-size: 0.75rem;
2144
+ color: var(--text-muted);
2145
+ margin-left: auto;
2146
+ }
2147
+
2148
+ /* ==================== CONTENT VIEWER ==================== */
2149
+
2150
+ .skill-content-section {
2151
+ margin-top: var(--spacing-xl);
2152
+ display: none;
2153
+ }
2154
+
2155
+ .skill-content-section.active {
2156
+ display: block;
2157
+ }
2158
+
2159
+ .content-viewer-header {
2160
+ display: flex;
2161
+ align-items: center;
2162
+ justify-content: space-between;
2163
+ margin-bottom: var(--spacing-md);
2164
+ }
2165
+
2166
+ .content-viewer {
2167
+ background: var(--bg-overlay);
2168
+ border: 1px solid var(--border-primary);
2169
+ border-radius: 10px;
2170
+ padding: var(--spacing-lg);
2171
+ max-height: 600px;
2172
+ overflow: auto;
2173
+ }
2174
+
2175
+ .content-viewer pre {
2176
+ margin: 0;
2177
+ white-space: pre-wrap;
2178
+ word-wrap: break-word;
2179
+ }
2180
+
2181
+ .content-viewer code {
2182
+ font-family: 'SF Mono', 'Monaco', 'Courier New', monospace;
2183
+ font-size: 0.875rem;
2184
+ line-height: 1.6;
2185
+ color: var(--text-primary);
2186
+ }
2187
+
2188
+ /* ==================== MODAL ENHANCEMENTS ==================== */
2189
+
2190
+ .skill-modal {
2191
+ max-width: 1000px;
2192
+ width: 90vw;
2193
+ max-height: 90vh;
2194
+ overflow-y: auto;
2195
+ }
2196
+
2197
+
2198
+
2199
+ /* Source Filter Buttons */
2200
+ .source-filters {
2201
+ display: flex;
2202
+ flex-direction: column;
2203
+ gap: var(--spacing-xs);
2204
+ padding: var(--spacing-md) 0;
2205
+ }
2206
+
2207
+ .source-filter-btn {
2208
+ background: transparent;
2209
+ border: none;
2210
+ color: var(--text-secondary);
2211
+ padding: var(--spacing-sm) var(--spacing-md);
2212
+ border-radius: 8px;
2213
+ cursor: pointer;
2214
+ transition: all var(--transition-fast);
2215
+ text-align: left;
2216
+ font-size: 0.875rem;
2217
+ font-weight: 500;
2218
+ }
2219
+
2220
+ .source-filter-btn:hover {
2221
+ background: var(--bg-overlay);
2222
+ color: var(--text-primary);
2223
+ }
2224
+
2225
+ .source-filter-btn.active {
2226
+ background: rgba(213, 116, 85, 0.15);
2227
+ color: var(--accent-primary);
2228
+ }
2229
+
2230
+ /* Status Dots */
2231
+ .status-dot {
2232
+ display: inline-block;
2233
+ width: 8px;
2234
+ height: 8px;
2235
+ border-radius: 50%;
2236
+ margin-right: 0.25rem;
2237
+ }
2238
+
2239
+ .status-dot.personal {
2240
+ background: #58a6ff;
2241
+ }
2242
+
2243
+ .status-dot.project {
2244
+ background: #a371f7;
2245
+ }
2246
+
2247
+ .status-dot.plugin {
2248
+ background: #3dd68c;
2249
+ }
2250
+
2251
+ /* Responsive Design */
2252
+ @media (max-width: 1024px) {
2253
+ .skills-container {
2254
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
2255
+ }
2256
+
2257
+ .context-diagram {
2258
+ gap: var(--spacing-md);
2259
+ }
2260
+ }
2261
+
2262
+ @media (max-width: 768px) {
2263
+ .skills-container {
2264
+ grid-template-columns: 1fr;
2265
+ padding: var(--spacing-md);
2266
+ }
2267
+
2268
+ .skill-modal {
2269
+ width: 95vw;
2270
+ max-height: 95vh;
2271
+ }
2272
+
2273
+ .context-diagram {
2274
+ gap: var(--spacing-sm);
2275
+ }
2276
+
2277
+ .skill-card-meta {
2278
+ flex-direction: column;
2279
+ gap: var(--spacing-sm);
2280
+ }
2281
+ }
2282
+
2283
+ /* ==================== MODERN CONTEXT FLOW DIAGRAM ==================== */
2284
+
2285
+ .context-flow-diagram {
2286
+ background: linear-gradient(180deg, rgba(13, 17, 23, 0.6), rgba(22, 27, 34, 0.8));
2287
+ border: 1px solid var(--border-primary);
2288
+ border-radius: 16px;
2289
+ padding: var(--spacing-xl);
2290
+ margin-top: var(--spacing-lg);
2291
+ position: relative;
2292
+ }
2293
+
2294
+ /* Context Layer */
2295
+ .context-layer {
2296
+ position: relative;
2297
+ margin-bottom: var(--spacing-md);
2298
+ transition: all var(--transition-normal);
2299
+ }
2300
+
2301
+ .context-layer:last-of-type {
2302
+ margin-bottom: 0;
2303
+ }
2304
+
2305
+ /* Layer Header */
2306
+ .layer-header {
2307
+ display: flex;
2308
+ align-items: center;
2309
+ gap: var(--spacing-md);
2310
+ padding: var(--spacing-md) var(--spacing-lg);
2311
+ border-radius: 12px;
2312
+ cursor: pointer;
2313
+ transition: all var(--transition-fast);
2314
+ user-select: none;
2315
+ position: relative;
2316
+ overflow: hidden;
2317
+ }
2318
+
2319
+ .layer-header::before {
2320
+ content: '';
2321
+ position: absolute;
2322
+ top: 0;
2323
+ left: 0;
2324
+ right: 0;
2325
+ bottom: 0;
2326
+ opacity: 0;
2327
+ transition: opacity var(--transition-fast);
2328
+ }
2329
+
2330
+ .layer-header:hover::before {
2331
+ opacity: 1;
2332
+ }
2333
+
2334
+ /* Main Layer */
2335
+ .layer-main .layer-header {
2336
+ background: linear-gradient(135deg, rgba(213, 116, 85, 0.15), rgba(213, 116, 85, 0.08));
2337
+ border: 2px solid rgba(213, 116, 85, 0.4);
2338
+ box-shadow: 0 4px 12px rgba(213, 116, 85, 0.1);
2339
+ }
2340
+
2341
+ .layer-main .layer-header::before {
2342
+ background: linear-gradient(135deg, rgba(213, 116, 85, 0.1), transparent);
2343
+ }
2344
+
2345
+ .layer-main .layer-header:hover {
2346
+ border-color: rgba(213, 116, 85, 0.6);
2347
+ box-shadow: 0 6px 16px rgba(213, 116, 85, 0.15);
2348
+ }
2349
+
2350
+ /* Discovery Layer */
2351
+ .layer-discovery .layer-header {
2352
+ background: linear-gradient(135deg, rgba(46, 160, 67, 0.15), rgba(46, 160, 67, 0.08));
2353
+ border: 2px dashed rgba(46, 160, 67, 0.4);
2354
+ box-shadow: 0 4px 12px rgba(46, 160, 67, 0.1);
2355
+ }
2356
+
2357
+ .layer-discovery .layer-header::before {
2358
+ background: linear-gradient(135deg, rgba(46, 160, 67, 0.1), transparent);
2359
+ }
2360
+
2361
+ .layer-discovery .layer-header:hover {
2362
+ border-color: rgba(46, 160, 67, 0.6);
2363
+ box-shadow: 0 6px 16px rgba(46, 160, 67, 0.15);
2364
+ }
2365
+
2366
+ /* Progressive Layer */
2367
+ .layer-progressive .layer-header {
2368
+ background: linear-gradient(135deg, rgba(163, 113, 247, 0.15), rgba(163, 113, 247, 0.08));
2369
+ border: 2px dashed rgba(163, 113, 247, 0.4);
2370
+ box-shadow: 0 4px 12px rgba(163, 113, 247, 0.1);
2371
+ }
2372
+
2373
+ .layer-progressive .layer-header::before {
2374
+ background: linear-gradient(135deg, rgba(163, 113, 247, 0.1), transparent);
2375
+ }
2376
+
2377
+ .layer-progressive .layer-header:hover {
2378
+ border-color: rgba(163, 113, 247, 0.6);
2379
+ box-shadow: 0 6px 16px rgba(163, 113, 247, 0.15);
2380
+ }
2381
+
2382
+ /* Layer Expand Icon */
2383
+ .layer-expand-icon {
2384
+ font-size: 0.875rem;
2385
+ color: var(--text-secondary);
2386
+ transition: transform var(--transition-fast);
2387
+ flex-shrink: 0;
2388
+ }
2389
+
2390
+ .context-layer.collapsed .layer-expand-icon {
2391
+ transform: rotate(-90deg);
2392
+ }
2393
+
2394
+ /* Layer Title Group */
2395
+ .layer-title-group {
2396
+ display: flex;
2397
+ align-items: center;
2398
+ gap: var(--spacing-sm);
2399
+ flex: 1;
2400
+ }
2401
+
2402
+ .layer-number {
2403
+ display: flex;
2404
+ align-items: center;
2405
+ justify-content: center;
2406
+ width: 28px;
2407
+ height: 28px;
2408
+ border-radius: 50%;
2409
+ font-size: 0.875rem;
2410
+ font-weight: 700;
2411
+ flex-shrink: 0;
2412
+ }
2413
+
2414
+ .layer-main .layer-number {
2415
+ background: rgba(213, 116, 85, 0.25);
2416
+ color: #ff9b7a;
2417
+ border: 2px solid rgba(213, 116, 85, 0.5);
2418
+ }
2419
+
2420
+ .layer-discovery .layer-number {
2421
+ background: rgba(46, 160, 67, 0.25);
2422
+ color: #56d364;
2423
+ border: 2px solid rgba(46, 160, 67, 0.5);
2424
+ }
2425
+
2426
+ .layer-progressive .layer-number {
2427
+ background: rgba(163, 113, 247, 0.25);
2428
+ color: #a371f7;
2429
+ border: 2px solid rgba(163, 113, 247, 0.5);
2430
+ }
2431
+
2432
+ .layer-title {
2433
+ font-size: 0.875rem;
2434
+ font-weight: 700;
2435
+ letter-spacing: 0.5px;
2436
+ color: var(--text-primary);
2437
+ text-transform: uppercase;
2438
+ }
2439
+
2440
+ /* Layer Badges */
2441
+ .layer-badge {
2442
+ padding: 0.25rem 0.75rem;
2443
+ border-radius: 20px;
2444
+ font-size: 0.7rem;
2445
+ font-weight: 600;
2446
+ text-transform: uppercase;
2447
+ letter-spacing: 0.5px;
2448
+ }
2449
+
2450
+ .badge-always {
2451
+ background: rgba(213, 116, 85, 0.2);
2452
+ color: #ff9b7a;
2453
+ border: 1px solid rgba(213, 116, 85, 0.4);
2454
+ }
2455
+
2456
+ .badge-demand {
2457
+ background: rgba(46, 160, 67, 0.2);
2458
+ color: #56d364;
2459
+ border: 1px solid rgba(46, 160, 67, 0.4);
2460
+ }
2461
+
2462
+ .badge-progressive {
2463
+ background: rgba(163, 113, 247, 0.2);
2464
+ color: #a371f7;
2465
+ border: 1px solid rgba(163, 113, 247, 0.4);
2466
+ }
2467
+
2468
+ .layer-file-count {
2469
+ font-size: 0.75rem;
2470
+ color: var(--text-muted);
2471
+ font-weight: 500;
2472
+ margin-left: auto;
2473
+ }
2474
+
2475
+ /* Layer Content */
2476
+ .layer-content {
2477
+ max-height: 500px;
2478
+ overflow: hidden;
2479
+ transition: max-height var(--transition-normal), opacity var(--transition-normal), margin var(--transition-normal);
2480
+ opacity: 1;
2481
+ margin-top: var(--spacing-md);
2482
+ }
2483
+
2484
+ .context-layer.collapsed .layer-content {
2485
+ max-height: 0;
2486
+ opacity: 0;
2487
+ margin-top: 0;
2488
+ }
2489
+
2490
+ /* Layer Tree */
2491
+ .layer-tree {
2492
+ background: var(--bg-overlay);
2493
+ border: 1px solid var(--border-secondary);
2494
+ border-radius: 10px;
2495
+ padding: var(--spacing-md);
2496
+ }
2497
+
2498
+ .layer-main .layer-tree {
2499
+ border-left: 3px solid rgba(213, 116, 85, 0.5);
2500
+ }
2501
+
2502
+ .layer-discovery .layer-tree {
2503
+ border-left: 3px solid rgba(46, 160, 67, 0.5);
2504
+ }
2505
+
2506
+ .layer-progressive .layer-tree {
2507
+ border-left: 3px solid rgba(163, 113, 247, 0.5);
2508
+ }
2509
+
2510
+ /* Tree Node */
2511
+ .tree-node {
2512
+ display: flex;
2513
+ align-items: center;
2514
+ gap: var(--spacing-sm);
2515
+ padding: var(--spacing-sm);
2516
+ border-radius: 6px;
2517
+ transition: all var(--transition-fast);
2518
+ cursor: pointer;
2519
+ position: relative;
2520
+ font-family: 'SF Mono', 'Monaco', 'Courier New', monospace;
2521
+ }
2522
+
2523
+ .tree-node:hover {
2524
+ background: var(--bg-tertiary);
2525
+ transform: translateX(2px);
2526
+ }
2527
+
2528
+ .tree-node::before {
2529
+ content: '';
2530
+ position: absolute;
2531
+ left: 0;
2532
+ top: 50%;
2533
+ transform: translateY(-50%);
2534
+ width: 2px;
2535
+ height: 0;
2536
+ transition: height var(--transition-fast);
2537
+ }
2538
+
2539
+ .tree-node:hover::before {
2540
+ height: 70%;
2541
+ }
2542
+
2543
+ .layer-main .tree-node:hover::before {
2544
+ background: rgba(213, 116, 85, 0.8);
2545
+ }
2546
+
2547
+ .layer-discovery .tree-node:hover::before {
2548
+ background: rgba(46, 160, 67, 0.8);
2549
+ }
2550
+
2551
+ .layer-progressive .tree-node:hover::before {
2552
+ background: rgba(163, 113, 247, 0.8);
2553
+ }
2554
+
2555
+ .node-icon {
2556
+ font-size: 1.125rem;
2557
+ flex-shrink: 0;
2558
+ }
2559
+
2560
+ .node-name {
2561
+ flex: 1;
2562
+ font-size: 0.875rem;
2563
+ color: var(--text-primary);
2564
+ font-weight: 500;
2565
+ }
2566
+
2567
+ .node-meta {
2568
+ font-size: 0.75rem;
2569
+ color: var(--text-muted);
2570
+ margin-left: auto;
2571
+ }
2572
+
2573
+ /* Folder Nodes */
2574
+ .tree-node.folder {
2575
+ font-weight: 600;
2576
+ }
2577
+
2578
+ .tree-node.folder .node-icon {
2579
+ font-size: 1.25rem;
2580
+ }
2581
+
2582
+ .tree-node-children {
2583
+ margin-left: var(--spacing-lg);
2584
+ padding-left: var(--spacing-md);
2585
+ border-left: 1px solid var(--border-secondary);
2586
+ }
2587
+
2588
+ /* Empty Layer */
2589
+ .empty-layer {
2590
+ display: flex;
2591
+ flex-direction: column;
2592
+ align-items: center;
2593
+ justify-content: center;
2594
+ padding: var(--spacing-xl);
2595
+ gap: var(--spacing-sm);
2596
+ color: var(--text-muted);
2597
+ }
2598
+
2599
+ .empty-icon {
2600
+ font-size: 2rem;
2601
+ opacity: 0.5;
2602
+ }
2603
+
2604
+ .empty-text {
2605
+ font-size: 0.875rem;
2606
+ font-style: italic;
2607
+ }
2608
+
2609
+ /* Flow Arrow */
2610
+ .flow-arrow {
2611
+ display: flex;
2612
+ flex-direction: column;
2613
+ align-items: center;
2614
+ margin: var(--spacing-md) 0;
2615
+ position: relative;
2616
+ }
2617
+
2618
+ .arrow-line {
2619
+ width: 2px;
2620
+ height: 32px;
2621
+ background: linear-gradient(180deg, rgba(213, 116, 85, 0.6), rgba(163, 113, 247, 0.6));
2622
+ position: relative;
2623
+ animation: pulse-flow 2s ease-in-out infinite;
2624
+ }
2625
+
2626
+ @keyframes pulse-flow {
2627
+ 0%, 100% {
2628
+ opacity: 0.6;
2629
+ box-shadow: 0 0 0 rgba(213, 116, 85, 0.4);
2630
+ }
2631
+ 50% {
2632
+ opacity: 1;
2633
+ box-shadow: 0 0 12px rgba(213, 116, 85, 0.4);
2634
+ }
2635
+ }
2636
+
2637
+ .arrow-label {
2638
+ position: absolute;
2639
+ left: 50%;
2640
+ top: 50%;
2641
+ transform: translate(-50%, -50%);
2642
+ background: #d57455;
2643
+ padding: 0.6rem 1.2rem;
2644
+ border-radius: 20px;
2645
+ font-size: 0.9rem;
2646
+ color: #ffffff;
2647
+ white-space: nowrap;
2648
+ border: none;
2649
+ font-weight: 600;
2650
+ box-shadow: 0 2px 6px rgba(213, 116, 85, 0.2);
2651
+ letter-spacing: 0.3px;
2652
+ text-align: center;
2653
+ line-height: 1.4;
2654
+ }
2655
+
2656
+ .arrow-head {
2657
+ font-size: 1rem;
2658
+ color: var(--accent-primary);
2659
+ animation: bounce-arrow 2s ease-in-out infinite;
2660
+ }
2661
+
2662
+ @keyframes bounce-arrow {
2663
+ 0%, 100% {
2664
+ transform: translateY(0);
2665
+ }
2666
+ 50% {
2667
+ transform: translateY(4px);
2668
+ }
2669
+ }
2670
+
2671
+ /* Responsive Adjustments */
2672
+ @media (max-width: 768px) {
2673
+ .context-flow-diagram {
2674
+ padding: var(--spacing-md);
2675
+ }
2676
+
2677
+ .layer-header {
2678
+ padding: var(--spacing-sm) var(--spacing-md);
2679
+ }
2680
+
2681
+ .layer-title-group {
2682
+ gap: var(--spacing-xs);
2683
+ }
2684
+
2685
+ .layer-title {
2686
+ font-size: 0.75rem;
2687
+ }
2688
+
2689
+ .layer-badge {
2690
+ display: none;
2691
+ }
2692
+
2693
+ .arrow-label {
2694
+ font-size: 0.75rem;
2695
+ padding: 0.4rem 0.8rem;
2696
+ }
2697
+ }
2698
+
2699
+ /* Interactive Highlight on Hover */
2700
+ .context-layer:hover .layer-header {
2701
+ transform: translateX(2px);
2702
+ }
2703
+
2704
+ .layer-main:hover .layer-tree {
2705
+ box-shadow: inset 0 0 0 1px rgba(213, 116, 85, 0.2);
2706
+ }
2707
+
2708
+ .layer-discovery:hover .layer-tree {
2709
+ box-shadow: inset 0 0 0 1px rgba(46, 160, 67, 0.2);
2710
+ }
2711
+
2712
+ .layer-progressive:hover .layer-tree {
2713
+ box-shadow: inset 0 0 0 1px rgba(163, 113, 247, 0.2);
2714
+ }
2715
+
2716
+ /* Folder collapse functionality */
2717
+ .tree-node-children.collapsed {
2718
+ display: none;
2719
+ }
2720
+
2721
+ .tree-node.folder.collapsed .node-icon::before {
2722
+ content: '📁';
2723
+ }
2724
+
2725
+ .tree-node.folder:not(.collapsed) .node-icon::before {
2726
+ content: '📂';
2727
+ }
2728
+
2729
+ .tree-node.folder .node-icon {
2730
+ position: relative;
2731
+ }
2732
+
2733
+ .tree-node.folder .node-icon::before {
2734
+ position: absolute;
2735
+ left: 0;
2736
+ top: 0;
2737
+ }
2738
+
2739
+ /* ==================== MODAL FOOTER STYLES ==================== */
2740
+
2741
+ .modal-footer {
2742
+ display: flex;
2743
+ align-items: center;
2744
+ justify-content: space-between;
2745
+ padding: var(--spacing-lg);
2746
+ border-top: 1px solid var(--border-primary);
2747
+ background: var(--bg-secondary);
2748
+ border-radius: 0 0 16px 16px;
2749
+ gap: var(--spacing-lg);
2750
+ }
2751
+
2752
+ .modal-meta {
2753
+ display: flex;
2754
+ gap: var(--spacing-lg);
2755
+ flex-wrap: wrap;
2756
+ }
2757
+
2758
+ .meta-item {
2759
+ display: flex;
2760
+ align-items: center;
2761
+ gap: var(--spacing-xs);
2762
+ font-size: 0.875rem;
2763
+ }
2764
+
2765
+ .meta-label {
2766
+ color: var(--text-muted);
2767
+ font-weight: 500;
2768
+ }
2769
+
2770
+ .meta-value {
2771
+ color: var(--text-primary);
2772
+ font-weight: 600;
2773
+ }
2774
+
2775
+ /* Buttons in footer */
2776
+ .modal-footer .btn-primary {
2777
+ padding: 0.625rem 1.25rem;
2778
+ background: linear-gradient(135deg, var(--accent-primary), var(--accent-hover));
2779
+ color: white;
2780
+ border: none;
2781
+ border-radius: 8px;
2782
+ font-size: 0.875rem;
2783
+ font-weight: 600;
2784
+ cursor: pointer;
2785
+ transition: all var(--transition-fast);
2786
+ white-space: nowrap;
2787
+ box-shadow: 0 2px 8px rgba(213, 116, 85, 0.2);
2788
+ }
2789
+
2790
+ .modal-footer .btn-primary:hover {
2791
+ background: linear-gradient(135deg, var(--accent-hover), var(--accent-active));
2792
+ box-shadow: 0 4px 12px rgba(213, 116, 85, 0.3);
2793
+ transform: translateY(-1px);
2794
+ }
2795
+
2796
+ .modal-footer .btn-primary:active {
2797
+ transform: translateY(0);
2798
+ box-shadow: 0 2px 6px rgba(213, 116, 85, 0.2);
2799
+ }
2800
+
2801
+ .modal-footer .btn-secondary {
2802
+ padding: 0.625rem 1.25rem;
2803
+ background: var(--bg-tertiary);
2804
+ color: var(--text-primary);
2805
+ border: 1px solid var(--border-primary);
2806
+ border-radius: 8px;
2807
+ font-size: 0.875rem;
2808
+ font-weight: 600;
2809
+ cursor: pointer;
2810
+ transition: all var(--transition-fast);
2811
+ white-space: nowrap;
2812
+ }
2813
+
2814
+ .modal-footer .btn-secondary:hover {
2815
+ background: var(--bg-overlay);
2816
+ border-color: var(--accent-primary);
2817
+ color: var(--accent-primary);
2818
+ }
2819
+
2820
+ /* Responsive footer */
2821
+ @media (max-width: 768px) {
2822
+ .modal-footer {
2823
+ flex-direction: column;
2824
+ align-items: flex-start;
2825
+ gap: var(--spacing-md);
2826
+ }
2827
+
2828
+ .modal-meta {
2829
+ flex-direction: column;
2830
+ gap: var(--spacing-sm);
2831
+ width: 100%;
2832
+ }
2833
+
2834
+ .modal-footer .btn-primary {
2835
+ width: 100%;
2836
+ }
2837
+ }
2838
+
2839
+ /* ==================== ADDITIONAL MODAL IMPROVEMENTS ==================== */
2840
+
2841
+ /* Modal Header Enhancement */
2842
+ .modal-title-section {
2843
+ display: flex;
2844
+ flex-direction: column;
2845
+ gap: var(--spacing-sm);
2846
+ flex: 1;
2847
+ }
2848
+
2849
+ .modal-title {
2850
+ font-size: 1.5rem;
2851
+ font-weight: 700;
2852
+ color: var(--text-primary);
2853
+ margin: 0;
2854
+ line-height: 1.2;
2855
+ }
2856
+
2857
+ .modal-badges {
2858
+ display: flex;
2859
+ gap: var(--spacing-sm);
2860
+ flex-wrap: wrap;
2861
+ }
2862
+
2863
+ .source-badge {
2864
+ display: inline-flex;
2865
+ align-items: center;
2866
+ padding: 0.375rem 0.75rem;
2867
+ border-radius: 6px;
2868
+ font-size: 0.75rem;
2869
+ font-weight: 600;
2870
+ text-transform: uppercase;
2871
+ letter-spacing: 0.5px;
2872
+ }
2873
+
2874
+ /* Skill Description Section */
2875
+
2876
+
2877
+ /* Section Titles */
2878
+ .section-title {
2879
+ display: flex;
2880
+ align-items: center;
2881
+ gap: var(--spacing-sm);
2882
+ font-size: 1.125rem;
2883
+ font-weight: 700;
2884
+ color: var(--text-primary);
2885
+ margin-bottom: var(--spacing-md);
2886
+ }
2887
+
2888
+ .section-icon {
2889
+ font-size: 1.25rem;
2890
+ }
2891
+
2892
+ /* Content Viewer Header */
2893
+ .content-viewer-header {
2894
+ display: flex;
2895
+ align-items: center;
2896
+ justify-content: space-between;
2897
+ margin-bottom: var(--spacing-md);
2898
+ padding: var(--spacing-md);
2899
+ background: var(--bg-overlay);
2900
+ border-radius: 8px;
2901
+ border: 1px solid var(--border-primary);
2902
+ }
2903
+
2904
+ .content-viewer-header .section-title {
2905
+ margin: 0;
2906
+ font-size: 1rem;
2907
+ }
2908
+
2909
+ .content-viewer-header #currentFileName {
2910
+ font-family: 'SF Mono', 'Monaco', 'Courier New', monospace;
2911
+ color: var(--accent-primary);
2912
+ }
2913
+
2914
+ /* Content Viewer Improvements */
2915
+ .content-viewer {
2916
+ background: var(--bg-primary);
2917
+ border: 1px solid var(--border-primary);
2918
+ border-radius: 10px;
2919
+ padding: var(--spacing-lg);
2920
+ max-height: 600px;
2921
+ overflow: auto;
2922
+ }
2923
+
2924
+ .content-viewer::-webkit-scrollbar {
2925
+ width: 8px;
2926
+ height: 8px;
2927
+ }
2928
+
2929
+ .content-viewer::-webkit-scrollbar-track {
2930
+ background: var(--bg-secondary);
2931
+ border-radius: 4px;
2932
+ }
2933
+
2934
+ .content-viewer::-webkit-scrollbar-thumb {
2935
+ background: var(--border-primary);
2936
+ border-radius: 4px;
2937
+ }
2938
+
2939
+ .content-viewer::-webkit-scrollbar-thumb:hover {
2940
+ background: var(--accent-primary);
2941
+ }
2942
+
2943
+ .content-viewer pre {
2944
+ margin: 0;
2945
+ white-space: pre-wrap;
2946
+ word-wrap: break-word;
2947
+ }
2948
+
2949
+ .content-viewer code {
2950
+ font-family: 'SF Mono', 'Monaco', 'Courier New', monospace;
2951
+ font-size: 0.875rem;
2952
+ line-height: 1.6;
2953
+ color: var(--text-primary);
2954
+ }
2955
+
2956
+ /* Modal Close Button */
2957
+ .modal-close {
2958
+ width: 36px;
2959
+ height: 36px;
2960
+ display: flex;
2961
+ align-items: center;
2962
+ justify-content: center;
2963
+ background: var(--bg-tertiary);
2964
+ border: 1px solid var(--border-primary);
2965
+ border-radius: 8px;
2966
+ color: var(--text-secondary);
2967
+ font-size: 1.25rem;
2968
+ cursor: pointer;
2969
+ transition: all var(--transition-fast);
2970
+ flex-shrink: 0;
2971
+ }
2972
+
2973
+ .modal-close:hover {
2974
+ background: var(--bg-overlay);
2975
+ border-color: var(--danger);
2976
+ color: var(--danger);
2977
+ transform: scale(1.1);
2978
+ }
2979
+
2980
+ .modal-close:active {
2981
+ transform: scale(0.95);
2982
+ }
2983
+
2984
+ /* File Tree in Modal */
2985
+ .skill-files-section {
2986
+ margin-top: var(--spacing-xl);
2987
+ }
2988
+
2989
+ .skill-files-section .file-tree {
2990
+ max-height: 300px;
2991
+ overflow-y: auto;
2992
+ }
2993
+
2994
+ .skill-files-section .file-tree::-webkit-scrollbar {
2995
+ width: 6px;
2996
+ }
2997
+
2998
+ .skill-files-section .file-tree::-webkit-scrollbar-track {
2999
+ background: var(--bg-secondary);
3000
+ }
3001
+
3002
+ .skill-files-section .file-tree::-webkit-scrollbar-thumb {
3003
+ background: var(--border-primary);
3004
+ border-radius: 3px;
3005
+ }
3006
+
3007
+ .skill-files-section .file-tree::-webkit-scrollbar-thumb:hover {
3008
+ background: var(--accent-primary);
3009
+ }
3010
+
3011
+ /* Modal Spacing */
3012
+ .modal-body > * + * {
3013
+ margin-top: var(--spacing-xl);
3014
+ }
3015
+
3016
+ /* Skill Context Section */
3017
+ .skill-context-section {
3018
+ margin-top: var(--spacing-xl);
3019
+ margin-bottom: var(--spacing-xl);
3020
+ }
3021
+
3022
+ .skill-tools-section {
3023
+ margin-top: var(--spacing-xl);
3024
+ margin-bottom: var(--spacing-xl);
3025
+ padding: var(--spacing-lg);
3026
+ background: var(--bg-overlay);
3027
+ border-radius: 10px;
3028
+ border: 1px solid var(--border-primary);
3029
+ }
3030
+
3031
+ /* Empty State in Modal */
3032
+ .skill-content-section {
3033
+ margin-top: var(--spacing-xl);
3034
+ display: none;
3035
+ animation: fadeIn var(--transition-normal);
3036
+ }
3037
+
3038
+ .skill-content-section.active {
3039
+ display: block;
3040
+ }
3041
+
3042
+ @keyframes fadeIn {
3043
+ from {
3044
+ opacity: 0;
3045
+ transform: translateY(-10px);
3046
+ }
3047
+ to {
3048
+ opacity: 1;
3049
+ transform: translateY(0);
3050
+ }
3051
+ }
3052
+
3053
+ /* ==================== NEW: 3-LEVEL LOADING SYSTEM ==================== */
3054
+
3055
+ .skill-levels-section {
3056
+ padding: var(--spacing-lg) 0;
3057
+ }
3058
+
3059
+ .section-description {
3060
+ color: var(--text-secondary);
3061
+ font-size: 0.9375rem;
3062
+ line-height: 1.6;
3063
+ margin-bottom: var(--spacing-xl);
3064
+ }
3065
+
3066
+ .loading-levels {
3067
+ display: flex;
3068
+ flex-direction: column;
3069
+ gap: 0;
3070
+ }
3071
+
3072
+ /* Level Card */
3073
+ .level-card {
3074
+ background: var(--bg-secondary);
3075
+ border-radius: 12px;
3076
+ overflow: hidden;
3077
+ transition: all var(--transition-normal);
3078
+ }
3079
+
3080
+ .level-1 {
3081
+ border: 2px solid rgba(213, 116, 85, 0.4);
3082
+ box-shadow: 0 2px 8px rgba(213, 116, 85, 0.1);
3083
+ }
3084
+
3085
+ .level-2 {
3086
+ border: 2px solid rgba(46, 160, 67, 0.4);
3087
+ box-shadow: 0 2px 8px rgba(46, 160, 67, 0.1);
3088
+ }
3089
+
3090
+ .level-3 {
3091
+ border: 2px solid rgba(163, 113, 247, 0.4);
3092
+ box-shadow: 0 2px 8px rgba(163, 113, 247, 0.1);
3093
+ }
3094
+
3095
+ /* Level Header */
3096
+ .level-header {
3097
+ display: flex;
3098
+ align-items: center;
3099
+ gap: var(--spacing-md);
3100
+ padding: var(--spacing-lg);
3101
+ position: relative;
3102
+ }
3103
+
3104
+ .level-1 .level-header {
3105
+ background: linear-gradient(135deg, rgba(213, 116, 85, 0.12), rgba(213, 116, 85, 0.04));
3106
+ }
3107
+
3108
+ .level-2 .level-header {
3109
+ background: linear-gradient(135deg, rgba(46, 160, 67, 0.12), rgba(46, 160, 67, 0.04));
3110
+ }
3111
+
3112
+ .level-3 .level-header {
3113
+ background: linear-gradient(135deg, rgba(163, 113, 247, 0.12), rgba(163, 113, 247, 0.04));
3114
+ }
3115
+
3116
+ .level-number {
3117
+ width: 48px;
3118
+ height: 48px;
3119
+ display: flex;
3120
+ align-items: center;
3121
+ justify-content: center;
3122
+ border-radius: 50%;
3123
+ font-size: 1.25rem;
3124
+ font-weight: 700;
3125
+ flex-shrink: 0;
3126
+ }
3127
+
3128
+ .level-1 .level-number {
3129
+ background: rgba(213, 116, 85, 0.2);
3130
+ color: #ff9b7a;
3131
+ border: 3px solid rgba(213, 116, 85, 0.5);
3132
+ }
3133
+
3134
+ .level-2 .level-number {
3135
+ background: rgba(46, 160, 67, 0.2);
3136
+ color: #56d364;
3137
+ border: 3px solid rgba(46, 160, 67, 0.5);
3138
+ }
3139
+
3140
+ .level-3 .level-number {
3141
+ background: rgba(163, 113, 247, 0.2);
3142
+ color: #a371f7;
3143
+ border: 3px solid rgba(163, 113, 247, 0.5);
3144
+ }
3145
+
3146
+ .level-info {
3147
+ flex: 1;
3148
+ display: flex;
3149
+ flex-direction: column;
3150
+ gap: 0.25rem;
3151
+ }
3152
+
3153
+ .level-title {
3154
+ font-size: 1rem;
3155
+ font-weight: 700;
3156
+ letter-spacing: 0.5px;
3157
+ color: var(--text-primary);
3158
+ text-transform: uppercase;
3159
+ }
3160
+
3161
+ .level-timing {
3162
+ font-size: 0.875rem;
3163
+ color: var(--text-secondary);
3164
+ font-weight: 500;
3165
+ }
3166
+
3167
+ .level-cost {
3168
+ padding: 0.375rem 0.875rem;
3169
+ border-radius: 20px;
3170
+ font-size: 0.75rem;
3171
+ font-weight: 700;
3172
+ text-transform: uppercase;
3173
+ letter-spacing: 0.5px;
3174
+ white-space: nowrap;
3175
+ }
3176
+
3177
+ .level-1 .level-cost {
3178
+ background: rgba(213, 116, 85, 0.2);
3179
+ color: #ff9b7a;
3180
+ border: 1px solid rgba(213, 116, 85, 0.4);
3181
+ }
3182
+
3183
+ .level-2 .level-cost {
3184
+ background: rgba(46, 160, 67, 0.2);
3185
+ color: #56d364;
3186
+ border: 1px solid rgba(46, 160, 67, 0.4);
3187
+ }
3188
+
3189
+ .level-3 .level-cost {
3190
+ background: rgba(163, 113, 247, 0.2);
3191
+ color: #a371f7;
3192
+ border: 1px solid rgba(163, 113, 247, 0.4);
3193
+ }
3194
+
3195
+ /* Level Content */
3196
+ .level-content {
3197
+ padding: var(--spacing-lg);
3198
+ border-top: 1px solid var(--border-secondary);
3199
+ }
3200
+
3201
+ .level-description {
3202
+ color: var(--text-secondary);
3203
+ font-size: 0.875rem;
3204
+ line-height: 1.6;
3205
+ margin-bottom: var(--spacing-md);
3206
+ font-style: italic;
3207
+ }
3208
+
3209
+ /* Metadata Display (Level 1) */
3210
+ .metadata-display {
3211
+ background: var(--bg-overlay);
3212
+ border: 1px solid var(--border-primary);
3213
+ border-radius: 8px;
3214
+ padding: var(--spacing-md);
3215
+ font-family: 'SF Mono', 'Monaco', 'Courier New', monospace;
3216
+ }
3217
+
3218
+ .metadata-field {
3219
+ display: flex;
3220
+ gap: var(--spacing-sm);
3221
+ padding: var(--spacing-sm) 0;
3222
+ border-bottom: 1px solid var(--border-secondary);
3223
+ }
3224
+
3225
+ .metadata-field:last-child {
3226
+ border-bottom: none;
3227
+ }
3228
+
3229
+ .field-label {
3230
+ font-size: 0.875rem;
3231
+ color: #ff9b7a;
3232
+ font-weight: 600;
3233
+ min-width: 140px;
3234
+ flex-shrink: 0;
3235
+ }
3236
+
3237
+ .field-value {
3238
+ font-size: 0.875rem;
3239
+ color: var(--text-primary);
3240
+ flex: 1;
3241
+ }
3242
+
3243
+ .field-value-chips {
3244
+ display: flex;
3245
+ flex-wrap: wrap;
3246
+ gap: 0.375rem;
3247
+ }
3248
+
3249
+ .tool-chip-small {
3250
+ display: inline-flex;
3251
+ align-items: center;
3252
+ padding: 0.25rem 0.625rem;
3253
+ background: rgba(213, 116, 85, 0.15);
3254
+ border: 1px solid rgba(213, 116, 85, 0.3);
3255
+ border-radius: 12px;
3256
+ font-size: 0.7rem;
3257
+ font-weight: 600;
3258
+ color: #ff9b7a;
3259
+ text-transform: uppercase;
3260
+ letter-spacing: 0.3px;
3261
+ }
3262
+
3263
+ /* Instructions Display (Level 2) */
3264
+ .instructions-display {
3265
+ background: var(--bg-overlay);
3266
+ border: 1px solid var(--border-primary);
3267
+ border-radius: 8px;
3268
+ padding: var(--spacing-md);
3269
+ }
3270
+
3271
+ .file-item {
3272
+ display: flex;
3273
+ align-items: center;
3274
+ gap: var(--spacing-sm);
3275
+ padding: var(--spacing-sm);
3276
+ font-family: 'SF Mono', 'Monaco', 'Courier New', monospace;
3277
+ }
3278
+
3279
+ .file-item .file-icon {
3280
+ font-size: 1.25rem;
3281
+ }
3282
+
3283
+ .file-item .file-name {
3284
+ flex: 1;
3285
+ font-size: 0.875rem;
3286
+ color: var(--text-primary);
3287
+ font-weight: 500;
3288
+ }
3289
+
3290
+ .file-item .file-meta {
3291
+ font-size: 0.75rem;
3292
+ color: var(--text-muted);
3293
+ }
3294
+
3295
+ /* Resources Display (Level 3+) */
3296
+ .resources-display {
3297
+ display: flex;
3298
+ flex-direction: column;
3299
+ gap: var(--spacing-md);
3300
+ }
3301
+
3302
+ .resource-category {
3303
+ background: var(--bg-overlay);
3304
+ border: 1px solid var(--border-primary);
3305
+ border-radius: 8px;
3306
+ overflow: hidden;
3307
+ }
3308
+
3309
+ .category-header {
3310
+ display: flex;
3311
+ align-items: center;
3312
+ gap: var(--spacing-sm);
3313
+ padding: var(--spacing-md);
3314
+ background: var(--bg-tertiary);
3315
+ border-bottom: 1px solid var(--border-secondary);
3316
+ }
3317
+
3318
+ .category-description {
3319
+ padding: var(--spacing-sm) var(--spacing-md);
3320
+ font-size: 0.8rem;
3321
+ color: var(--text-muted);
3322
+ font-style: italic;
3323
+ line-height: 1.4;
3324
+ background: var(--bg-secondary);
3325
+ border-bottom: 1px solid var(--border-muted);
3326
+ }
3327
+
3328
+ .category-icon {
3329
+ font-size: 1.125rem;
3330
+ }
3331
+
3332
+ .category-name {
3333
+ flex: 1;
3334
+ font-size: 0.875rem;
3335
+ font-weight: 600;
3336
+ color: var(--text-primary);
3337
+ text-transform: uppercase;
3338
+ letter-spacing: 0.5px;
3339
+ }
3340
+
3341
+ .category-count {
3342
+ padding: 0.25rem 0.625rem;
3343
+ background: rgba(163, 113, 247, 0.15);
3344
+ border: 1px solid rgba(163, 113, 247, 0.3);
3345
+ border-radius: 12px;
3346
+ font-size: 0.7rem;
3347
+ font-weight: 700;
3348
+ color: #a371f7;
3349
+ }
3350
+
3351
+ .category-files {
3352
+ padding: var(--spacing-sm);
3353
+ }
3354
+
3355
+ .resource-file {
3356
+ display: flex;
3357
+ align-items: center;
3358
+ gap: var(--spacing-sm);
3359
+ padding: var(--spacing-sm);
3360
+ border-radius: 6px;
3361
+ transition: all var(--transition-fast);
3362
+ font-family: 'SF Mono', 'Monaco', 'Courier New', monospace;
3363
+ }
3364
+
3365
+ .resource-file:hover {
3366
+ background: var(--bg-tertiary);
3367
+ }
3368
+
3369
+ .resource-file .file-icon {
3370
+ font-size: 1rem;
3371
+ }
3372
+
3373
+ .resource-file .file-name {
3374
+ flex: 1;
3375
+ font-size: 0.8125rem;
3376
+ color: var(--text-primary);
3377
+ }
3378
+
3379
+ .resource-file .file-size {
3380
+ font-size: 0.75rem;
3381
+ color: var(--text-muted);
3382
+ }
3383
+
3384
+ .empty-resources {
3385
+ display: flex;
3386
+ flex-direction: column;
3387
+ align-items: center;
3388
+ justify-content: center;
3389
+ padding: var(--spacing-xl);
3390
+ gap: var(--spacing-sm);
3391
+ color: var(--text-muted);
3392
+ }
3393
+
3394
+ .empty-resources .empty-icon {
3395
+ font-size: 2.5rem;
3396
+ opacity: 0.4;
3397
+ }
3398
+
3399
+ .empty-resources .empty-text {
3400
+ font-size: 0.875rem;
3401
+ font-style: italic;
3402
+ }
3403
+
3404
+ /* Level Arrow */
3405
+ .level-arrow {
3406
+ display: flex;
3407
+ flex-direction: column;
3408
+ align-items: center;
3409
+ margin: var(--spacing-lg) 0;
3410
+ position: relative;
3411
+ min-height: 60px;
3412
+ }
3413
+
3414
+ .arrow-connector {
3415
+ width: 3px;
3416
+ height: 100%;
3417
+ background: linear-gradient(180deg, rgba(213, 116, 85, 0.6), rgba(163, 113, 247, 0.6));
3418
+ position: absolute;
3419
+ left: 50%;
3420
+ transform: translateX(-50%);
3421
+ top: 0;
3422
+ bottom: 0;
3423
+ }
3424
+
3425
+ .arrow-connector::after {
3426
+ content: '▼';
3427
+ position: absolute;
3428
+ bottom: -12px;
3429
+ left: 50%;
3430
+ transform: translateX(-50%);
3431
+ color: rgba(163, 113, 247, 0.8);
3432
+ font-size: 1.2rem;
3433
+ filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
3434
+ }
3435
+
3436
+ .level-arrow .arrow-label {
3437
+ position: relative;
3438
+ z-index: 2;
3439
+ margin-top: 8px;
3440
+ }
3441
+
3442
+ /* Responsive */
3443
+ @media (max-width: 768px) {
3444
+ .level-header {
3445
+ flex-wrap: wrap;
3446
+ }
3447
+
3448
+ .level-number {
3449
+ width: 40px;
3450
+ height: 40px;
3451
+ font-size: 1.125rem;
3452
+ }
3453
+
3454
+ .level-cost {
3455
+ order: 3;
3456
+ width: 100%;
3457
+ text-align: center;
3458
+ margin-top: var(--spacing-sm);
3459
+ }
3460
+
3461
+ .metadata-field {
3462
+ flex-direction: column;
3463
+ gap: 0.25rem;
3464
+ }
3465
+
3466
+ .field-label {
3467
+ min-width: auto;
3468
+ }
3469
+ }