mcp-config-manager 2.1.0 → 2.3.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.
package/public/style.css CHANGED
@@ -35,6 +35,16 @@
35
35
  --danger-hover: #dc2626;
36
36
  --danger-muted: rgba(239, 68, 68, 0.1);
37
37
 
38
+ --bg-subtle: #f1f5f9;
39
+ --border-subtle: rgba(0, 0, 0, 0.06);
40
+ --border-hover: rgba(0, 0, 0, 0.15);
41
+ --accent-subtle: rgba(59, 130, 246, 0.08);
42
+ --accent-emphasis: #2563eb;
43
+ --info: #3b82f6;
44
+ --info-bg: rgba(59, 130, 246, 0.1);
45
+ --success-bg: rgba(16, 185, 129, 0.1);
46
+ --warning-bg: rgba(245, 158, 11, 0.1);
47
+
38
48
  /* Transport colors */
39
49
  --transport-http: #3b82f6;
40
50
  --transport-sse: #8b5cf6;
@@ -99,6 +109,16 @@
99
109
  --success-muted: rgba(16, 185, 129, 0.15);
100
110
  --danger-muted: rgba(239, 68, 68, 0.15);
101
111
 
112
+ --bg-subtle: #1e293b;
113
+ --border-subtle: rgba(255, 255, 255, 0.06);
114
+ --border-hover: rgba(255, 255, 255, 0.15);
115
+ --accent-subtle: rgba(96, 165, 250, 0.1);
116
+ --accent-emphasis: #60a5fa;
117
+ --info: #60a5fa;
118
+ --info-bg: rgba(96, 165, 250, 0.12);
119
+ --success-bg: rgba(52, 211, 153, 0.12);
120
+ --warning-bg: rgba(251, 191, 36, 0.12);
121
+
102
122
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
103
123
  --shadow-md: 0 2px 4px rgba(0, 0, 0, 0.3);
104
124
  }
@@ -398,6 +418,268 @@ input:checked + .slider:before {
398
418
  flex-wrap: wrap;
399
419
  }
400
420
 
421
+ /* Client Content Tabs (per-client Skills, Commands, etc.) */
422
+ .client-content-tabs {
423
+ display: flex;
424
+ gap: var(--space-1);
425
+ margin-bottom: var(--space-4);
426
+ padding-bottom: var(--space-3);
427
+ border-bottom: 1px solid var(--border-subtle);
428
+ }
429
+
430
+ .client-tab-btn {
431
+ display: inline-flex;
432
+ align-items: center;
433
+ gap: var(--space-1);
434
+ padding: var(--space-2) var(--space-3);
435
+ font-size: var(--text-sm);
436
+ font-weight: 500;
437
+ color: var(--fg-muted);
438
+ background: transparent;
439
+ border: 1px solid transparent;
440
+ border-radius: var(--radius-md);
441
+ cursor: pointer;
442
+ transition: all var(--transition-fast);
443
+ }
444
+
445
+ .client-tab-btn:hover {
446
+ color: var(--fg-default);
447
+ background: var(--bg-subtle);
448
+ }
449
+
450
+ .client-tab-btn.active {
451
+ color: var(--fg-default);
452
+ background: var(--bg-surface);
453
+ border-color: var(--border-default);
454
+ }
455
+
456
+ /* Tab Content Header (Add button for skills/commands tabs) */
457
+ .tab-content-header {
458
+ display: flex;
459
+ justify-content: flex-end;
460
+ margin-bottom: var(--space-3);
461
+ }
462
+
463
+ /* Skill/Item Cards */
464
+ .skill-card {
465
+ border: 1px solid var(--border-default);
466
+ border-radius: var(--radius-md);
467
+ padding: var(--space-3);
468
+ background: var(--bg-surface);
469
+ transition: border-color var(--transition-fast);
470
+ }
471
+
472
+ .skill-card:hover {
473
+ border-color: var(--border-hover);
474
+ }
475
+
476
+ .item-badge {
477
+ display: inline-flex;
478
+ align-items: center;
479
+ padding: var(--space-1) var(--space-2);
480
+ font-size: var(--text-xs);
481
+ font-weight: 500;
482
+ border-radius: var(--radius-sm);
483
+ margin-left: var(--space-2);
484
+ }
485
+
486
+ .item-badge-simple {
487
+ background: var(--success-bg);
488
+ color: var(--success);
489
+ }
490
+
491
+ .item-badge-complex {
492
+ background: var(--info-bg);
493
+ color: var(--info);
494
+ }
495
+
496
+ .item-badge-single {
497
+ background: var(--warning-bg);
498
+ color: var(--warning);
499
+ }
500
+
501
+ .structure-badge {
502
+ display: inline-flex;
503
+ align-items: center;
504
+ padding: var(--space-1) var(--space-2);
505
+ font-size: var(--text-xs);
506
+ font-family: var(--font-mono);
507
+ color: var(--fg-muted);
508
+ background: var(--bg-subtle);
509
+ border-radius: var(--radius-sm);
510
+ margin-right: var(--space-1);
511
+ }
512
+
513
+ /* Dark mode adjustments for client tabs */
514
+ .dark-theme .client-tab-btn:hover {
515
+ background: var(--bg-subtle);
516
+ }
517
+
518
+ .dark-theme .client-tab-btn.active {
519
+ background: var(--bg-elevated);
520
+ border-color: var(--border-default);
521
+ }
522
+
523
+ /* Skill/Item Edit Modal */
524
+ .modal-medium {
525
+ max-width: 600px;
526
+ width: 100%;
527
+ }
528
+
529
+ .modal-large {
530
+ max-width: 900px;
531
+ width: 100%;
532
+ }
533
+
534
+ /* Simple skill view - single pane */
535
+ .skill-metadata-row {
536
+ display: grid;
537
+ grid-template-columns: 1fr 200px;
538
+ gap: var(--space-3);
539
+ margin-bottom: var(--space-3);
540
+ }
541
+
542
+ .form-group-name {
543
+ flex: 1;
544
+ }
545
+
546
+ .form-group-model {
547
+ width: 200px;
548
+ }
549
+
550
+ .skill-content-editor {
551
+ font-family: var(--font-mono);
552
+ font-size: var(--text-sm);
553
+ line-height: 1.5;
554
+ resize: vertical;
555
+ min-height: 300px;
556
+ }
557
+
558
+ /* Complex skill view - file tree + editor */
559
+ .skill-complex-layout {
560
+ display: grid;
561
+ grid-template-columns: 240px 1fr;
562
+ gap: var(--space-4);
563
+ min-height: 500px;
564
+ }
565
+
566
+ .skill-file-tree {
567
+ border: 1px solid var(--border-default);
568
+ border-radius: var(--radius-md);
569
+ background: var(--bg-subtle);
570
+ overflow: hidden;
571
+ display: flex;
572
+ flex-direction: column;
573
+ }
574
+
575
+ .file-tree-header {
576
+ padding: var(--space-3);
577
+ border-bottom: 1px solid var(--border-default);
578
+ background: var(--bg-surface);
579
+ }
580
+
581
+ .file-tree-title {
582
+ font-size: var(--text-sm);
583
+ font-weight: 600;
584
+ color: var(--fg-default);
585
+ }
586
+
587
+ .file-list {
588
+ flex: 1;
589
+ overflow-y: auto;
590
+ padding: var(--space-2);
591
+ }
592
+
593
+ .file-item {
594
+ display: flex;
595
+ align-items: center;
596
+ gap: var(--space-2);
597
+ padding: var(--space-2) var(--space-3);
598
+ font-size: var(--text-sm);
599
+ color: var(--fg-muted);
600
+ border-radius: var(--radius-sm);
601
+ cursor: pointer;
602
+ transition: all var(--transition-fast);
603
+ }
604
+
605
+ .file-item:hover {
606
+ background: var(--bg-surface);
607
+ color: var(--fg-default);
608
+ }
609
+
610
+ .file-item.active {
611
+ background: var(--accent-subtle);
612
+ color: var(--accent);
613
+ }
614
+
615
+ .file-item.is-directory {
616
+ font-weight: 500;
617
+ color: var(--fg-default);
618
+ }
619
+
620
+ .file-item-icon {
621
+ font-size: var(--text-base);
622
+ width: 16px;
623
+ text-align: center;
624
+ }
625
+
626
+ .file-item-name {
627
+ flex: 1;
628
+ white-space: nowrap;
629
+ overflow: hidden;
630
+ text-overflow: ellipsis;
631
+ font-family: var(--font-mono);
632
+ font-size: var(--text-xs);
633
+ }
634
+
635
+ .file-item-indent {
636
+ width: 12px;
637
+ }
638
+
639
+ .skill-editor-pane {
640
+ display: flex;
641
+ flex-direction: column;
642
+ border: 1px solid var(--border-default);
643
+ border-radius: var(--radius-md);
644
+ overflow: hidden;
645
+ }
646
+
647
+ .editor-header {
648
+ display: flex;
649
+ justify-content: space-between;
650
+ align-items: center;
651
+ padding: var(--space-2) var(--space-3);
652
+ background: var(--bg-subtle);
653
+ border-bottom: 1px solid var(--border-default);
654
+ }
655
+
656
+ .editor-header span {
657
+ font-family: var(--font-mono);
658
+ font-size: var(--text-sm);
659
+ color: var(--fg-muted);
660
+ }
661
+
662
+ #skill-file-editor {
663
+ flex: 1;
664
+ border: none;
665
+ border-radius: 0;
666
+ resize: none;
667
+ min-height: 450px;
668
+ }
669
+
670
+ /* Dark mode adjustments for skill modal */
671
+ .dark-theme .skill-file-tree {
672
+ background: var(--bg-elevated);
673
+ }
674
+
675
+ .dark-theme .file-item:hover {
676
+ background: var(--bg-surface);
677
+ }
678
+
679
+ .dark-theme .file-item.active {
680
+ background: var(--accent-subtle);
681
+ }
682
+
401
683
  /* Empty/Error states */
402
684
  .no-servers,
403
685
  .empty-state,
@@ -1444,7 +1726,7 @@ input:checked + .slider:before {
1444
1726
  right: 0;
1445
1727
  bottom: 0;
1446
1728
  background: rgba(0, 0, 0, 0.6);
1447
- display: flex;
1729
+ display: none; /* Hidden by default - shown via JS with display:flex */
1448
1730
  align-items: center;
1449
1731
  justify-content: center;
1450
1732
  z-index: 1000;
@@ -2104,37 +2386,606 @@ input:checked + .slider:before {
2104
2386
  }
2105
2387
 
2106
2388
  /* ==========================================================================
2107
- Responsive
2389
+ Mode Switcher (Skills Management)
2108
2390
  ========================================================================== */
2109
2391
 
2110
- @media (max-width: 768px) {
2111
- .container {
2112
- padding: var(--space-3);
2113
- }
2392
+ .mode-switcher {
2393
+ display: flex;
2394
+ gap: var(--space-1);
2395
+ background: var(--bg-muted);
2396
+ padding: var(--space-1);
2397
+ border-radius: var(--radius-lg);
2398
+ }
2114
2399
 
2115
- header {
2116
- flex-direction: column;
2117
- align-items: stretch;
2118
- }
2400
+ .mode-btn {
2401
+ padding: var(--space-2) var(--space-4);
2402
+ border: none;
2403
+ background: transparent;
2404
+ color: var(--fg-muted);
2405
+ border-radius: var(--radius-md);
2406
+ cursor: pointer;
2407
+ font-weight: 500;
2408
+ font-size: var(--text-sm);
2409
+ font-family: var(--font-sans);
2410
+ transition: all var(--transition-base);
2411
+ }
2119
2412
 
2120
- .client-header {
2121
- flex-direction: column;
2122
- align-items: stretch;
2123
- }
2413
+ .mode-btn:hover {
2414
+ background: var(--bg-inset);
2415
+ color: var(--fg-default);
2416
+ }
2124
2417
 
2125
- .action-buttons {
2126
- flex-direction: column;
2127
- }
2418
+ .mode-btn.active {
2419
+ background: var(--accent);
2420
+ color: white;
2421
+ }
2128
2422
 
2129
- .action-buttons .btn {
2130
- width: 100%;
2131
- }
2423
+ /* ==========================================================================
2424
+ Skills Layout (Sidebar + Main Area)
2425
+ ========================================================================== */
2132
2426
 
2133
- .kanban-grid {
2134
- grid-template-columns: 1fr;
2135
- }
2427
+ .skills-layout {
2428
+ display: grid;
2429
+ grid-template-columns: 260px 1fr;
2430
+ gap: var(--space-6);
2431
+ height: 100%;
2432
+ }
2136
2433
 
2137
- .server-list-all {
2138
- grid-template-columns: 1fr;
2139
- }
2434
+ .skills-sidebar {
2435
+ background: var(--bg-surface);
2436
+ border-radius: var(--radius-lg);
2437
+ padding: var(--space-4);
2438
+ border: 1px solid var(--border-default);
2439
+ }
2440
+
2441
+ .skills-sidebar-header {
2442
+ font-weight: 600;
2443
+ margin-bottom: var(--space-4);
2444
+ padding-bottom: var(--space-3);
2445
+ border-bottom: 1px solid var(--border-default);
2446
+ color: var(--fg-default);
2447
+ font-size: var(--text-md);
2448
+ }
2449
+
2450
+ .skills-scope-list {
2451
+ display: flex;
2452
+ flex-direction: column;
2453
+ gap: var(--space-1);
2454
+ }
2455
+
2456
+ .scope-item {
2457
+ display: flex;
2458
+ align-items: center;
2459
+ gap: var(--space-3);
2460
+ padding: var(--space-2) var(--space-3);
2461
+ border-radius: var(--radius-lg);
2462
+ cursor: pointer;
2463
+ transition: all var(--transition-fast);
2464
+ }
2465
+
2466
+ .scope-item:hover {
2467
+ background: var(--bg-muted);
2468
+ }
2469
+
2470
+ .scope-item.active {
2471
+ background: var(--accent);
2472
+ color: white;
2473
+ }
2474
+
2475
+ .scope-icon {
2476
+ font-size: var(--text-lg);
2477
+ }
2478
+
2479
+ .scope-info {
2480
+ flex: 1;
2481
+ }
2482
+
2483
+ .scope-name {
2484
+ font-weight: 500;
2485
+ font-size: var(--text-sm);
2486
+ }
2487
+
2488
+ .scope-count {
2489
+ font-size: var(--text-xs);
2490
+ color: var(--fg-subtle);
2491
+ }
2492
+
2493
+ .scope-item.active .scope-count {
2494
+ color: rgba(255, 255, 255, 0.7);
2495
+ }
2496
+
2497
+ .scope-readonly-indicator {
2498
+ font-size: var(--text-md);
2499
+ opacity: 0.5;
2500
+ }
2501
+
2502
+ /* ==========================================================================
2503
+ Skill Cards
2504
+ ========================================================================== */
2505
+
2506
+ .skills-list {
2507
+ display: grid;
2508
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
2509
+ gap: var(--space-4);
2510
+ }
2511
+
2512
+ .skill-card {
2513
+ background: var(--bg-surface);
2514
+ border: 1px solid var(--border-default);
2515
+ border-radius: var(--radius-lg);
2516
+ padding: var(--space-4);
2517
+ transition: all var(--transition-base);
2518
+ }
2519
+
2520
+ .skill-card:hover {
2521
+ border-color: var(--accent);
2522
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
2523
+ }
2524
+
2525
+ .skill-card-header {
2526
+ display: flex;
2527
+ align-items: flex-start;
2528
+ gap: var(--space-3);
2529
+ margin-bottom: var(--space-3);
2530
+ }
2531
+
2532
+ .skill-icon {
2533
+ font-size: var(--text-xl);
2534
+ width: 40px;
2535
+ height: 40px;
2536
+ display: flex;
2537
+ align-items: center;
2538
+ justify-content: center;
2539
+ background: var(--bg-muted);
2540
+ border-radius: var(--radius-lg);
2541
+ }
2542
+
2543
+ .skill-info {
2544
+ flex: 1;
2545
+ }
2546
+
2547
+ .skill-name {
2548
+ font-family: var(--font-mono);
2549
+ font-weight: 600;
2550
+ margin-bottom: var(--space-1);
2551
+ color: var(--fg-default);
2552
+ font-size: var(--text-md);
2553
+ }
2554
+
2555
+ .skill-type-badge {
2556
+ display: inline-block;
2557
+ padding: 2px var(--space-2);
2558
+ font-size: var(--text-xs);
2559
+ font-weight: 500;
2560
+ border-radius: var(--radius-sm);
2561
+ background: var(--bg-muted);
2562
+ color: var(--fg-muted);
2563
+ }
2564
+
2565
+ .skill-type-badge.simple {
2566
+ background: #dcfce7;
2567
+ color: #166534;
2568
+ }
2569
+
2570
+ .skill-type-badge.complex {
2571
+ background: #dbeafe;
2572
+ color: #1e40af;
2573
+ }
2574
+
2575
+ .skill-model-badge {
2576
+ display: inline-block;
2577
+ padding: 2px var(--space-2);
2578
+ font-size: var(--text-xs);
2579
+ border-radius: var(--radius-sm);
2580
+ background: var(--bg-muted);
2581
+ color: var(--fg-muted);
2582
+ margin-left: var(--space-1);
2583
+ }
2584
+
2585
+ .skill-description {
2586
+ color: var(--fg-muted);
2587
+ font-size: var(--text-md);
2588
+ line-height: var(--leading-normal);
2589
+ margin-bottom: var(--space-3);
2590
+ }
2591
+
2592
+ .skill-card-footer {
2593
+ display: flex;
2594
+ justify-content: space-between;
2595
+ align-items: center;
2596
+ padding-top: var(--space-3);
2597
+ border-top: 1px solid var(--border-default);
2598
+ }
2599
+
2600
+ .skill-meta {
2601
+ font-size: var(--text-sm);
2602
+ color: var(--fg-subtle);
2603
+ }
2604
+
2605
+ .skill-actions {
2606
+ display: flex;
2607
+ gap: var(--space-2);
2608
+ }
2609
+
2610
+ .read-only-badge {
2611
+ display: inline-flex;
2612
+ align-items: center;
2613
+ gap: var(--space-1);
2614
+ padding: var(--space-1) var(--space-2);
2615
+ font-size: var(--text-sm);
2616
+ background: var(--bg-muted);
2617
+ border-radius: var(--radius-sm);
2618
+ color: var(--fg-muted);
2619
+ }
2620
+
2621
+ /* ==========================================================================
2622
+ Scope Kanban View
2623
+ ========================================================================== */
2624
+
2625
+ .scope-kanban-grid {
2626
+ display: grid;
2627
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
2628
+ gap: var(--space-6);
2629
+ padding: var(--space-4);
2630
+ }
2631
+
2632
+ .scope-column {
2633
+ background: var(--bg-surface);
2634
+ border: 1px solid var(--border-default);
2635
+ border-radius: var(--radius-lg);
2636
+ min-height: 400px;
2637
+ }
2638
+
2639
+ .scope-column-readonly {
2640
+ opacity: 0.85;
2641
+ }
2642
+
2643
+ .scope-header {
2644
+ padding: var(--space-4);
2645
+ border-bottom: 1px solid var(--border-default);
2646
+ display: flex;
2647
+ align-items: center;
2648
+ gap: var(--space-3);
2649
+ }
2650
+
2651
+ .scope-header-title {
2652
+ display: flex;
2653
+ align-items: center;
2654
+ gap: var(--space-2);
2655
+ flex: 1;
2656
+ }
2657
+
2658
+ .scope-readonly-badge {
2659
+ font-size: var(--text-xs);
2660
+ padding: 2px var(--space-2);
2661
+ background: var(--bg-muted);
2662
+ border-radius: var(--radius-sm);
2663
+ color: var(--fg-muted);
2664
+ }
2665
+
2666
+ .scope-skills-container {
2667
+ padding: var(--space-3);
2668
+ display: flex;
2669
+ flex-direction: column;
2670
+ gap: var(--space-2);
2671
+ min-height: 200px;
2672
+ }
2673
+
2674
+ .scope-skills-container.drag-over {
2675
+ background: var(--accent-muted);
2676
+ border-radius: var(--radius-lg);
2677
+ }
2678
+
2679
+ .skill-card-mini {
2680
+ background: var(--bg-base);
2681
+ border: 1px solid var(--border-default);
2682
+ border-radius: var(--radius-lg);
2683
+ padding: var(--space-3);
2684
+ cursor: grab;
2685
+ transition: all var(--transition-fast);
2686
+ }
2687
+
2688
+ .skill-card-mini:hover {
2689
+ border-color: var(--accent);
2690
+ }
2691
+
2692
+ .skill-card-mini.dragging {
2693
+ opacity: 0.5;
2694
+ transform: rotate(2deg);
2695
+ }
2696
+
2697
+ .skill-card-name {
2698
+ font-family: var(--font-mono);
2699
+ font-weight: 500;
2700
+ margin-bottom: var(--space-1);
2701
+ color: var(--fg-default);
2702
+ font-size: var(--text-sm);
2703
+ }
2704
+
2705
+ .skill-card-description {
2706
+ font-size: var(--text-base);
2707
+ color: var(--fg-muted);
2708
+ white-space: nowrap;
2709
+ overflow: hidden;
2710
+ text-overflow: ellipsis;
2711
+ }
2712
+
2713
+ /* ==========================================================================
2714
+ Commands Table
2715
+ ========================================================================== */
2716
+
2717
+ .commands-header {
2718
+ display: flex;
2719
+ justify-content: space-between;
2720
+ align-items: center;
2721
+ margin-bottom: var(--space-6);
2722
+ }
2723
+
2724
+ .commands-table {
2725
+ width: 100%;
2726
+ border-collapse: collapse;
2727
+ background: var(--bg-surface);
2728
+ border-radius: var(--radius-lg);
2729
+ overflow: hidden;
2730
+ border: 1px solid var(--border-default);
2731
+ }
2732
+
2733
+ .commands-table th {
2734
+ text-align: left;
2735
+ padding: var(--space-3) var(--space-4);
2736
+ background: var(--bg-muted);
2737
+ font-weight: 600;
2738
+ font-size: var(--text-base);
2739
+ color: var(--fg-muted);
2740
+ text-transform: uppercase;
2741
+ letter-spacing: 0.5px;
2742
+ }
2743
+
2744
+ .commands-table td {
2745
+ padding: var(--space-3) var(--space-4);
2746
+ border-top: 1px solid var(--border-default);
2747
+ }
2748
+
2749
+ .command-row:hover {
2750
+ background: var(--bg-muted);
2751
+ }
2752
+
2753
+ .command-name {
2754
+ font-family: var(--font-mono);
2755
+ font-weight: 500;
2756
+ color: var(--accent);
2757
+ }
2758
+
2759
+ .command-tools {
2760
+ display: flex;
2761
+ gap: var(--space-1);
2762
+ flex-wrap: wrap;
2763
+ }
2764
+
2765
+ .command-tools span {
2766
+ padding: 2px var(--space-2);
2767
+ background: var(--bg-muted);
2768
+ border-radius: var(--radius-sm);
2769
+ font-size: var(--text-sm);
2770
+ }
2771
+
2772
+ .command-actions-col {
2773
+ text-align: right;
2774
+ }
2775
+
2776
+ /* ==========================================================================
2777
+ Skill Editor Modal
2778
+ ========================================================================== */
2779
+
2780
+ #skill-modal-content {
2781
+ max-width: 1200px;
2782
+ width: 92vw;
2783
+ }
2784
+
2785
+ .skill-editor-layout {
2786
+ display: grid;
2787
+ grid-template-columns: 240px 1fr;
2788
+ gap: var(--space-4);
2789
+ min-height: 400px;
2790
+ }
2791
+
2792
+ .skill-file-tree-container {
2793
+ background: var(--bg-muted);
2794
+ border-radius: var(--radius-lg);
2795
+ overflow: hidden;
2796
+ }
2797
+
2798
+ .file-tree-header {
2799
+ display: flex;
2800
+ justify-content: space-between;
2801
+ align-items: center;
2802
+ padding: var(--space-3);
2803
+ border-bottom: 1px solid var(--border-default);
2804
+ font-weight: 500;
2805
+ color: var(--fg-default);
2806
+ font-size: var(--text-sm);
2807
+ }
2808
+
2809
+ .file-tree-actions {
2810
+ display: flex;
2811
+ gap: var(--space-1);
2812
+ }
2813
+
2814
+ #skill-file-tree {
2815
+ padding: var(--space-2);
2816
+ }
2817
+
2818
+ .file-tree-item {
2819
+ display: flex;
2820
+ align-items: center;
2821
+ gap: var(--space-2);
2822
+ padding: var(--space-2);
2823
+ border-radius: var(--radius-sm);
2824
+ cursor: pointer;
2825
+ font-size: var(--text-base);
2826
+ color: var(--fg-default);
2827
+ }
2828
+
2829
+ .file-tree-item:hover {
2830
+ background: var(--bg-surface);
2831
+ }
2832
+
2833
+ .file-tree-item.active {
2834
+ background: var(--accent);
2835
+ color: white;
2836
+ }
2837
+
2838
+ .file-tree-item.folder {
2839
+ font-weight: 500;
2840
+ }
2841
+
2842
+ .file-tree-item .icon {
2843
+ width: 16px;
2844
+ }
2845
+
2846
+ .skill-editor-container {
2847
+ display: flex;
2848
+ flex-direction: column;
2849
+ }
2850
+
2851
+ .editor-header {
2852
+ display: flex;
2853
+ justify-content: space-between;
2854
+ align-items: center;
2855
+ padding: var(--space-2) var(--space-3);
2856
+ background: var(--bg-muted);
2857
+ border-radius: var(--radius-lg) var(--radius-lg) 0 0;
2858
+ font-family: var(--font-mono);
2859
+ font-size: var(--text-base);
2860
+ color: var(--fg-muted);
2861
+ }
2862
+
2863
+ #skill-editor-pane {
2864
+ flex: 1;
2865
+ font-family: var(--font-mono);
2866
+ font-size: var(--text-base);
2867
+ line-height: var(--leading-normal);
2868
+ padding: var(--space-3);
2869
+ border: 1px solid var(--border-default);
2870
+ border-radius: 0 0 var(--radius-lg) var(--radius-lg);
2871
+ resize: none;
2872
+ background: var(--bg-surface);
2873
+ color: var(--fg-default);
2874
+ }
2875
+
2876
+ #skill-editor-pane:focus {
2877
+ outline: none;
2878
+ border-color: var(--accent);
2879
+ }
2880
+
2881
+ .preview-pane {
2882
+ padding: var(--space-4);
2883
+ background: var(--bg-muted);
2884
+ border-radius: var(--radius-lg);
2885
+ min-height: 200px;
2886
+ font-size: var(--text-md);
2887
+ line-height: var(--leading-relaxed);
2888
+ color: var(--fg-default);
2889
+ }
2890
+
2891
+ .preview-pane h1,
2892
+ .preview-pane h2,
2893
+ .preview-pane h3 {
2894
+ margin-top: var(--space-4);
2895
+ margin-bottom: var(--space-2);
2896
+ }
2897
+
2898
+ .preview-pane code {
2899
+ background: var(--bg-surface);
2900
+ padding: 2px var(--space-2);
2901
+ border-radius: var(--radius-sm);
2902
+ font-family: var(--font-mono);
2903
+ }
2904
+
2905
+ /* ==========================================================================
2906
+ Dark Mode Overrides for Skill Type Badges
2907
+ ========================================================================== */
2908
+
2909
+ .dark-theme .skill-type-badge.simple {
2910
+ background: #166534;
2911
+ color: #dcfce7;
2912
+ }
2913
+
2914
+ .dark-theme .skill-type-badge.complex {
2915
+ background: #1e40af;
2916
+ color: #dbeafe;
2917
+ }
2918
+
2919
+ /* ==========================================================================
2920
+ Responsive
2921
+ ========================================================================== */
2922
+
2923
+ @media (max-width: 768px) {
2924
+ .container {
2925
+ padding: var(--space-3);
2926
+ }
2927
+
2928
+ header {
2929
+ flex-direction: column;
2930
+ align-items: stretch;
2931
+ }
2932
+
2933
+ .client-header {
2934
+ flex-direction: column;
2935
+ align-items: stretch;
2936
+ }
2937
+
2938
+ .action-buttons {
2939
+ flex-direction: column;
2940
+ }
2941
+
2942
+ .action-buttons .btn {
2943
+ width: 100%;
2944
+ }
2945
+
2946
+ .kanban-grid {
2947
+ grid-template-columns: 1fr;
2948
+ }
2949
+
2950
+ .server-list-all {
2951
+ grid-template-columns: 1fr;
2952
+ }
2953
+
2954
+ /* Skills Management Responsive */
2955
+ .skills-layout {
2956
+ grid-template-columns: 1fr;
2957
+ }
2958
+
2959
+ .skills-sidebar {
2960
+ order: -1;
2961
+ }
2962
+
2963
+ .skill-editor-layout {
2964
+ grid-template-columns: 1fr;
2965
+ }
2966
+
2967
+ .skill-file-tree-container {
2968
+ max-height: 200px;
2969
+ overflow-y: auto;
2970
+ }
2971
+
2972
+ .scope-kanban-grid {
2973
+ grid-template-columns: 1fr;
2974
+ }
2975
+
2976
+ .skills-list {
2977
+ grid-template-columns: 1fr;
2978
+ }
2979
+ }
2980
+
2981
+ .version-tag {
2982
+ position: fixed;
2983
+ bottom: 8px;
2984
+ right: 12px;
2985
+ font-size: 11px;
2986
+ color: var(--text-muted);
2987
+ opacity: 0.4;
2988
+ pointer-events: none;
2989
+ user-select: none;
2990
+ z-index: 1;
2140
2991
  }