ft-scout 9.0.7 → 9.0.8

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.
Files changed (75) hide show
  1. package/.firebase/hosting.d2Vi.cache +8 -8
  2. package/AUTONOMOUS_FEATURES.md +1 -1
  3. package/README.md +113 -16
  4. package/bin/src/commands/agent.js +2 -2
  5. package/bin/src/commands/agent.js.map +1 -1
  6. package/bin/src/commands/audit.js +1 -1
  7. package/bin/src/commands/audit.js.map +1 -1
  8. package/bin/src/commands/dashboard.js +1 -1
  9. package/bin/src/commands/dashboard.js.map +1 -1
  10. package/bin/src/commands/mcp.d.ts.map +1 -0
  11. package/bin/src/commands/mcp.js +393 -0
  12. package/bin/src/commands/mcp.js.map +1 -0
  13. package/bin/src/commands/owners.js +1 -1
  14. package/bin/src/commands/owners.js.map +1 -1
  15. package/bin/src/discovery/messages.js +2 -2
  16. package/bin/src/discovery/messages.js.map +1 -1
  17. package/bin/src/discovery/signals.js +3 -3
  18. package/bin/src/discovery/signals.js.map +1 -1
  19. package/bin/src/engine/agentEngine.d.ts.map +1 -1
  20. package/bin/src/engine/agentEngine.js +53 -11
  21. package/bin/src/engine/agentEngine.js.map +1 -1
  22. package/bin/src/engine/runtime/agentRuntime.d.ts.map +1 -1
  23. package/bin/src/engine/runtime/agentRuntime.js +40 -3
  24. package/bin/src/engine/runtime/agentRuntime.js.map +1 -1
  25. package/bin/src/engine/toolRegistry.d.ts.map +1 -1
  26. package/bin/src/engine/toolRegistry.js +13 -0
  27. package/bin/src/engine/toolRegistry.js.map +1 -1
  28. package/bin/src/engine/verifier.js +2 -2
  29. package/bin/src/engine/verifier.js.map +1 -1
  30. package/bin/src/index.js +85 -7
  31. package/bin/src/index.js.map +1 -1
  32. package/bin/src/mcp/client.d.ts.map +1 -0
  33. package/bin/src/mcp/client.js +127 -0
  34. package/bin/src/mcp/client.js.map +1 -0
  35. package/bin/src/mcp/discovery.d.ts.map +1 -0
  36. package/bin/src/mcp/discovery.js +91 -0
  37. package/bin/src/mcp/discovery.js.map +1 -0
  38. package/bin/src/mcp/health.d.ts.map +1 -0
  39. package/bin/src/mcp/health.js +44 -0
  40. package/bin/src/mcp/health.js.map +1 -0
  41. package/bin/src/mcp/index.d.ts.map +1 -0
  42. package/bin/src/mcp/index.js +15 -0
  43. package/bin/src/mcp/index.js.map +1 -0
  44. package/bin/src/mcp/manager.d.ts.map +1 -0
  45. package/bin/src/mcp/manager.js +535 -0
  46. package/bin/src/mcp/manager.js.map +1 -0
  47. package/bin/src/mcp/permissions.d.ts.map +1 -0
  48. package/bin/src/mcp/permissions.js +50 -0
  49. package/bin/src/mcp/permissions.js.map +1 -0
  50. package/bin/src/mcp/persistence.d.ts.map +1 -0
  51. package/bin/src/mcp/persistence.js +156 -0
  52. package/bin/src/mcp/persistence.js.map +1 -0
  53. package/bin/src/mcp/recovery.d.ts.map +1 -0
  54. package/bin/src/mcp/recovery.js +75 -0
  55. package/bin/src/mcp/recovery.js.map +1 -0
  56. package/bin/src/mcp/telemetry.d.ts.map +1 -0
  57. package/bin/src/mcp/telemetry.js +82 -0
  58. package/bin/src/mcp/telemetry.js.map +1 -0
  59. package/bin/src/mcp/toolRouter.d.ts.map +1 -0
  60. package/bin/src/mcp/toolRouter.js +127 -0
  61. package/bin/src/mcp/toolRouter.js.map +1 -0
  62. package/bin/src/mcp/transport.d.ts.map +1 -0
  63. package/bin/src/mcp/transport.js +328 -0
  64. package/bin/src/mcp/transport.js.map +1 -0
  65. package/bin/src/mcp/types.d.ts.map +1 -0
  66. package/bin/src/mcp/types.js +6 -0
  67. package/bin/src/mcp/types.js.map +1 -0
  68. package/bin/src/server/server.d.ts.map +1 -1
  69. package/bin/src/server/server.js +207 -0
  70. package/bin/src/server/server.js.map +1 -1
  71. package/bin/src/utils/branding.js +1 -1
  72. package/bin/src/utils/email.js +4 -4
  73. package/package.json +1 -1
  74. package/web/app.js +1255 -59
  75. package/web/styles.css +1474 -15
package/web/styles.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================================
2
- FrontTerrain Scout — Design System & Visual Engine v9.0.7
2
+ FrontTerrain Scout Design System & Visual Engine v9.0.8
3
3
  Inspired by HappyRobot, Linear.app & Vercel aesthetics
4
4
  ========================================================================== */
5
5
 
@@ -274,23 +274,15 @@ h1, h2, h3, h4, h5, h6 {
274
274
  }
275
275
 
276
276
  .logo-icon {
277
- width: 36px;
278
- height: 36px;
279
- background: transparent;
280
- border: none;
281
- border-radius: 0;
282
- display: flex;
283
- align-items: center;
284
- justify-content: center;
285
- box-shadow: none;
286
- padding: 0;
277
+ display: contents;
287
278
  }
288
279
 
289
280
  .brand-logo-img {
290
- width: 36px;
291
- height: 36px;
281
+ width: 32px;
282
+ height: 32px;
292
283
  object-fit: contain;
293
- filter: drop-shadow(0 0 10px rgba(56, 189, 248, 0.3));
284
+ filter: drop-shadow(0 0 8px rgba(56, 189, 248, 0.25));
285
+ display: block;
294
286
  }
295
287
 
296
288
  .brand-text {
@@ -1063,7 +1055,7 @@ h1, h2, h3, h4, h5, h6 {
1063
1055
  .footer-links a:hover { color: var(--hr-rust); }
1064
1056
 
1065
1057
  /* ==========================================================================
1066
- Visual Perception & Automation Engine v9.0.7
1058
+ Visual Perception & Automation Engine v9.0.8
1067
1059
  ========================================================================== */
1068
1060
  .vision-banner {
1069
1061
  margin-bottom: 28px;
@@ -1620,3 +1612,1470 @@ h1, h2, h3, h4, h5, h6 {
1620
1612
  opacity: 0.65;
1621
1613
  }
1622
1614
 
1615
+ /* ==========================================================================
1616
+ FrontTerrain Scout Enterprise Autonomous Agent Workstation Design System
1617
+ ========================================================================== */
1618
+
1619
+ :root {
1620
+ --scout-canvas: #090a0f;
1621
+ --scout-sidebar-bg: #0d0f15;
1622
+ --scout-surface-card: #12151e;
1623
+ --scout-surface-card-hover: #161a26;
1624
+ --scout-surface-elevated: #1a1e2d;
1625
+ --scout-surface-input: #0e1119;
1626
+
1627
+ --scout-border: rgba(255, 255, 255, 0.08);
1628
+ --scout-border-subtle: rgba(255, 255, 255, 0.05);
1629
+ --scout-border-strong: rgba(255, 255, 255, 0.16);
1630
+ --scout-border-glow: rgba(56, 189, 248, 0.35);
1631
+
1632
+ --scout-rust: #e15b37;
1633
+ --scout-rust-hover: #f06843;
1634
+ --scout-rust-subtle: rgba(225, 91, 55, 0.12);
1635
+
1636
+ --scout-cyan: #38bdf8;
1637
+ --scout-cyan-hover: #0ea5e9;
1638
+ --scout-cyan-subtle: rgba(56, 189, 248, 0.12);
1639
+
1640
+ --scout-emerald: #10b981;
1641
+ --scout-emerald-subtle: rgba(16, 185, 129, 0.12);
1642
+
1643
+ --scout-amber: #f59e0b;
1644
+ --scout-amber-subtle: rgba(245, 158, 11, 0.12);
1645
+
1646
+ --scout-purple: #a855f7;
1647
+ --scout-purple-subtle: rgba(168, 85, 247, 0.12);
1648
+
1649
+ --scout-text-main: #f8fafc;
1650
+ --scout-text-secondary: #94a3b8;
1651
+ --scout-text-tertiary: #64748b;
1652
+ --scout-text-dim: #475569;
1653
+ }
1654
+
1655
+ /* Modern Layout Shell */
1656
+ .scout-shell {
1657
+ display: flex;
1658
+ min-height: 100vh;
1659
+ width: 100%;
1660
+ background-color: var(--scout-canvas);
1661
+ color: var(--scout-text-main);
1662
+ position: relative;
1663
+ overflow-x: hidden;
1664
+ }
1665
+
1666
+ /* Sidebar Component */
1667
+ .scout-sidebar {
1668
+ width: 264px;
1669
+ flex-shrink: 0;
1670
+ background-color: var(--scout-sidebar-bg);
1671
+ border-right: 1px solid var(--scout-border);
1672
+ display: flex;
1673
+ flex-direction: column;
1674
+ position: sticky;
1675
+ top: 0;
1676
+ height: 100vh;
1677
+ z-index: 95;
1678
+ transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
1679
+ }
1680
+
1681
+ .scout-sidebar-header {
1682
+ padding: 20px 20px 16px;
1683
+ border-bottom: 1px solid var(--scout-border-subtle);
1684
+ display: flex;
1685
+ align-items: center;
1686
+ justify-content: space-between;
1687
+ }
1688
+
1689
+ .scout-sidebar-brand {
1690
+ display: flex;
1691
+ align-items: center;
1692
+ gap: 12px;
1693
+ text-decoration: none;
1694
+ color: inherit;
1695
+ }
1696
+
1697
+ .scout-sidebar-brand-img {
1698
+ width: 28px;
1699
+ height: 28px;
1700
+ object-fit: contain;
1701
+ display: block;
1702
+ flex-shrink: 0;
1703
+ }
1704
+
1705
+ .scout-sidebar-brand-icon {
1706
+ display: contents;
1707
+ }
1708
+
1709
+ .scout-sidebar-brand-text {
1710
+ display: flex;
1711
+ flex-direction: column;
1712
+ }
1713
+
1714
+ .scout-sidebar-brand-title {
1715
+ font-size: 14px;
1716
+ font-weight: 700;
1717
+ letter-spacing: 0.08em;
1718
+ color: #ffffff;
1719
+ display: flex;
1720
+ align-items: center;
1721
+ gap: 6px;
1722
+ }
1723
+
1724
+ .scout-sidebar-brand-subtitle {
1725
+ font-size: 11px;
1726
+ color: var(--scout-text-tertiary);
1727
+ font-family: var(--font-mono);
1728
+ }
1729
+
1730
+ .scout-status-indicator {
1731
+ display: flex;
1732
+ align-items: center;
1733
+ gap: 6px;
1734
+ padding: 3px 8px;
1735
+ background: var(--scout-emerald-subtle);
1736
+ border: 1px solid rgba(16, 185, 129, 0.3);
1737
+ border-radius: 9999px;
1738
+ font-size: 10px;
1739
+ font-weight: 600;
1740
+ color: #10b981;
1741
+ text-transform: uppercase;
1742
+ letter-spacing: 0.06em;
1743
+ }
1744
+
1745
+ .scout-status-dot {
1746
+ width: 6px;
1747
+ height: 6px;
1748
+ border-radius: 50%;
1749
+ background: #10b981;
1750
+ box-shadow: 0 0 8px #10b981;
1751
+ animation: pulse-dot 2s infinite;
1752
+ }
1753
+
1754
+ @keyframes pulse-dot {
1755
+ 0%, 100% { opacity: 1; transform: scale(1); }
1756
+ 50% { opacity: 0.4; transform: scale(0.85); }
1757
+ }
1758
+
1759
+ /* Sidebar Navigation Items */
1760
+ .scout-sidebar-content {
1761
+ flex: 1;
1762
+ overflow-y: auto;
1763
+ padding: 16px 12px;
1764
+ display: flex;
1765
+ flex-direction: column;
1766
+ gap: 20px;
1767
+ }
1768
+
1769
+ .scout-nav-group {
1770
+ display: flex;
1771
+ flex-direction: column;
1772
+ gap: 2px;
1773
+ }
1774
+
1775
+ .scout-nav-group-title {
1776
+ font-size: 11px;
1777
+ font-weight: 600;
1778
+ color: var(--scout-text-tertiary);
1779
+ text-transform: uppercase;
1780
+ letter-spacing: 0.1em;
1781
+ padding: 6px 12px 4px;
1782
+ }
1783
+
1784
+ .scout-nav-item {
1785
+ display: flex;
1786
+ align-items: center;
1787
+ gap: 12px;
1788
+ padding: 8px 12px;
1789
+ border-radius: 8px;
1790
+ color: var(--scout-text-secondary);
1791
+ text-decoration: none;
1792
+ font-size: 13px;
1793
+ font-weight: 500;
1794
+ transition: all 0.15s ease;
1795
+ border: 1px solid transparent;
1796
+ cursor: pointer;
1797
+ user-select: none;
1798
+ position: relative;
1799
+ }
1800
+
1801
+ .scout-nav-item i {
1802
+ font-size: 14px;
1803
+ width: 18px;
1804
+ text-align: center;
1805
+ color: var(--scout-text-tertiary);
1806
+ transition: color 0.15s ease;
1807
+ }
1808
+
1809
+ .scout-nav-item:hover {
1810
+ color: var(--scout-text-main);
1811
+ background-color: var(--scout-surface-card);
1812
+ border-color: var(--scout-border-subtle);
1813
+ }
1814
+
1815
+ .scout-nav-item:hover i {
1816
+ color: var(--scout-text-main);
1817
+ }
1818
+
1819
+ .scout-nav-item.active {
1820
+ color: #ffffff;
1821
+ background-color: var(--scout-surface-card);
1822
+ border-color: var(--scout-border);
1823
+ font-weight: 600;
1824
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
1825
+ }
1826
+
1827
+ .scout-nav-item.active i {
1828
+ color: var(--scout-rust);
1829
+ }
1830
+
1831
+ .scout-nav-item.active::before {
1832
+ content: '';
1833
+ position: absolute;
1834
+ left: 0;
1835
+ top: 6px;
1836
+ bottom: 6px;
1837
+ width: 3px;
1838
+ border-radius: 0 3px 3px 0;
1839
+ background: var(--scout-rust);
1840
+ }
1841
+
1842
+ .scout-nav-badge {
1843
+ margin-left: auto;
1844
+ font-size: 10px;
1845
+ font-weight: 600;
1846
+ padding: 2px 6px;
1847
+ border-radius: 9999px;
1848
+ background: rgba(255, 255, 255, 0.08);
1849
+ color: var(--scout-text-tertiary);
1850
+ font-family: var(--font-mono);
1851
+ }
1852
+
1853
+ .scout-nav-badge.live {
1854
+ background: var(--scout-cyan-subtle);
1855
+ color: var(--scout-cyan);
1856
+ border: 1px solid rgba(56, 189, 248, 0.25);
1857
+ }
1858
+
1859
+ /* Sidebar Footer */
1860
+ .scout-sidebar-footer {
1861
+ padding: 14px 16px;
1862
+ border-top: 1px solid var(--scout-border-subtle);
1863
+ background-color: rgba(13, 15, 21, 0.6);
1864
+ display: flex;
1865
+ align-items: center;
1866
+ justify-content: space-between;
1867
+ gap: 10px;
1868
+ }
1869
+
1870
+ .scout-user-preview {
1871
+ display: flex;
1872
+ align-items: center;
1873
+ gap: 10px;
1874
+ text-decoration: none;
1875
+ color: inherit;
1876
+ flex: 1;
1877
+ min-width: 0;
1878
+ }
1879
+
1880
+ .scout-user-avatar {
1881
+ width: 32px;
1882
+ height: 32px;
1883
+ border-radius: 8px;
1884
+ background: linear-gradient(135deg, var(--scout-rust) 0%, #a855f7 100%);
1885
+ display: flex;
1886
+ align-items: center;
1887
+ justify-content: center;
1888
+ font-weight: 700;
1889
+ font-size: 13px;
1890
+ color: #ffffff;
1891
+ flex-shrink: 0;
1892
+ }
1893
+
1894
+ .scout-user-meta {
1895
+ display: flex;
1896
+ flex-direction: column;
1897
+ min-width: 0;
1898
+ }
1899
+
1900
+ .scout-user-name {
1901
+ font-size: 12px;
1902
+ font-weight: 600;
1903
+ color: var(--scout-text-main);
1904
+ white-space: nowrap;
1905
+ overflow: hidden;
1906
+ text-overflow: ellipsis;
1907
+ }
1908
+
1909
+ .scout-user-tier {
1910
+ font-size: 10px;
1911
+ color: var(--scout-rust);
1912
+ font-weight: 600;
1913
+ text-transform: uppercase;
1914
+ letter-spacing: 0.06em;
1915
+ }
1916
+
1917
+ /* Main Workstation Container */
1918
+ .scout-main {
1919
+ flex: 1;
1920
+ min-width: 0;
1921
+ display: flex;
1922
+ flex-direction: column;
1923
+ background-color: var(--scout-canvas);
1924
+ }
1925
+
1926
+ /* Workstation Topbar */
1927
+ .scout-topbar {
1928
+ height: 56px;
1929
+ background: rgba(9, 10, 15, 0.85);
1930
+ backdrop-filter: blur(16px);
1931
+ -webkit-backdrop-filter: blur(16px);
1932
+ border-bottom: 1px solid var(--scout-border);
1933
+ position: sticky;
1934
+ top: 0;
1935
+ z-index: 85;
1936
+ display: flex;
1937
+ align-items: center;
1938
+ justify-content: space-between;
1939
+ padding: 0 28px;
1940
+ }
1941
+
1942
+ .scout-topbar-left {
1943
+ display: flex;
1944
+ align-items: center;
1945
+ gap: 16px;
1946
+ }
1947
+
1948
+ .scout-mobile-toggle {
1949
+ display: none;
1950
+ background: transparent;
1951
+ border: 1px solid var(--scout-border);
1952
+ border-radius: 6px;
1953
+ color: var(--scout-text-secondary);
1954
+ width: 34px;
1955
+ height: 34px;
1956
+ align-items: center;
1957
+ justify-content: center;
1958
+ cursor: pointer;
1959
+ }
1960
+
1961
+ .scout-breadcrumb {
1962
+ display: flex;
1963
+ align-items: center;
1964
+ gap: 8px;
1965
+ font-size: 13px;
1966
+ color: var(--scout-text-tertiary);
1967
+ }
1968
+
1969
+ .scout-breadcrumb-segment {
1970
+ color: var(--scout-text-secondary);
1971
+ }
1972
+
1973
+ .scout-breadcrumb-current {
1974
+ color: var(--scout-text-main);
1975
+ font-weight: 600;
1976
+ }
1977
+
1978
+ .scout-topbar-right {
1979
+ display: flex;
1980
+ align-items: center;
1981
+ gap: 14px;
1982
+ }
1983
+
1984
+ .scout-engine-pill {
1985
+ display: flex;
1986
+ align-items: center;
1987
+ gap: 8px;
1988
+ padding: 5px 12px;
1989
+ background: rgba(255, 255, 255, 0.04);
1990
+ border: 1px solid var(--scout-border);
1991
+ border-radius: 6px;
1992
+ font-size: 12px;
1993
+ color: var(--scout-text-secondary);
1994
+ }
1995
+
1996
+ .scout-engine-pill code {
1997
+ color: var(--scout-cyan);
1998
+ font-family: var(--font-mono);
1999
+ font-size: 11px;
2000
+ }
2001
+
2002
+ /* Dashboard Views Container */
2003
+ .scout-content {
2004
+ flex: 1;
2005
+ padding: 28px 32px 48px;
2006
+ max-width: 1360px;
2007
+ margin: 0 auto;
2008
+ width: 100%;
2009
+ }
2010
+
2011
+ .scout-view {
2012
+ display: none;
2013
+ }
2014
+
2015
+ .scout-view.active {
2016
+ display: block;
2017
+ animation: fadeInView 0.2s cubic-bezier(0.4, 0, 0.2, 1);
2018
+ }
2019
+
2020
+ @keyframes fadeInView {
2021
+ from { opacity: 0; transform: translateY(4px); }
2022
+ to { opacity: 1; transform: translateY(0); }
2023
+ }
2024
+
2025
+ /* Command Center: Hero & Composer */
2026
+ .scout-hero-header {
2027
+ margin-bottom: 24px;
2028
+ }
2029
+
2030
+ .scout-hero-eyebrow {
2031
+ display: inline-flex;
2032
+ align-items: center;
2033
+ gap: 8px;
2034
+ font-size: 11px;
2035
+ font-weight: 600;
2036
+ text-transform: uppercase;
2037
+ letter-spacing: 0.12em;
2038
+ color: var(--scout-rust);
2039
+ background: var(--scout-rust-subtle);
2040
+ border: 1px solid rgba(225, 91, 55, 0.25);
2041
+ padding: 3px 10px;
2042
+ border-radius: 9999px;
2043
+ margin-bottom: 8px;
2044
+ }
2045
+
2046
+ .scout-hero-title {
2047
+ font-size: 26px;
2048
+ font-weight: 700;
2049
+ letter-spacing: -0.03em;
2050
+ color: #ffffff;
2051
+ margin-bottom: 4px;
2052
+ }
2053
+
2054
+ .scout-hero-subtitle {
2055
+ font-size: 14px;
2056
+ color: var(--scout-text-secondary);
2057
+ max-width: 680px;
2058
+ }
2059
+
2060
+ /* Task Composer */
2061
+ .scout-composer-card {
2062
+ background: linear-gradient(180deg, var(--scout-surface-card) 0%, rgba(18, 21, 30, 0.7) 100%);
2063
+ border: 1px solid var(--scout-border-strong);
2064
+ border-radius: 14px;
2065
+ padding: 20px;
2066
+ box-shadow: 0 16px 36px -16px rgba(0, 0, 0, 0.6);
2067
+ margin-bottom: 28px;
2068
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
2069
+ position: relative;
2070
+ }
2071
+
2072
+ .scout-composer-card:focus-within {
2073
+ border-color: rgba(56, 189, 248, 0.5);
2074
+ box-shadow: 0 0 0 1px rgba(56, 189, 248, 0.3), 0 20px 40px -16px rgba(0, 0, 0, 0.8);
2075
+ }
2076
+
2077
+ .scout-composer-header {
2078
+ display: flex;
2079
+ align-items: center;
2080
+ justify-content: space-between;
2081
+ margin-bottom: 12px;
2082
+ }
2083
+
2084
+ .scout-composer-title {
2085
+ font-size: 15px;
2086
+ font-weight: 600;
2087
+ color: #ffffff;
2088
+ display: flex;
2089
+ align-items: center;
2090
+ gap: 8px;
2091
+ }
2092
+
2093
+ .scout-composer-badges {
2094
+ display: flex;
2095
+ align-items: center;
2096
+ gap: 8px;
2097
+ }
2098
+
2099
+ .scout-composer-input-wrapper {
2100
+ position: relative;
2101
+ margin-bottom: 14px;
2102
+ }
2103
+
2104
+ .scout-composer-textarea {
2105
+ width: 100%;
2106
+ min-height: 84px;
2107
+ background: rgba(10, 12, 17, 0.7);
2108
+ border: 1px solid var(--scout-border);
2109
+ border-radius: 10px;
2110
+ padding: 14px 16px;
2111
+ font-family: var(--font-sans);
2112
+ font-size: 14px;
2113
+ line-height: 1.6;
2114
+ color: #ffffff;
2115
+ resize: vertical;
2116
+ transition: border-color 0.15s ease;
2117
+ outline: none;
2118
+ }
2119
+
2120
+ .scout-composer-textarea:focus {
2121
+ border-color: rgba(56, 189, 248, 0.4);
2122
+ }
2123
+
2124
+ .scout-composer-textarea::placeholder {
2125
+ color: var(--scout-text-dim);
2126
+ }
2127
+
2128
+ /* Quick Suggestion Chips */
2129
+ .scout-composer-chips {
2130
+ display: flex;
2131
+ align-items: center;
2132
+ gap: 8px;
2133
+ flex-wrap: wrap;
2134
+ margin-bottom: 16px;
2135
+ }
2136
+
2137
+ .scout-composer-chips-label {
2138
+ font-size: 11px;
2139
+ color: var(--scout-text-tertiary);
2140
+ font-weight: 500;
2141
+ display: flex;
2142
+ align-items: center;
2143
+ gap: 4px;
2144
+ }
2145
+
2146
+ .scout-suggestion-chip {
2147
+ background: rgba(255, 255, 255, 0.04);
2148
+ border: 1px solid var(--scout-border);
2149
+ border-radius: 9999px;
2150
+ padding: 4px 12px;
2151
+ font-size: 12px;
2152
+ color: var(--scout-text-secondary);
2153
+ cursor: pointer;
2154
+ transition: all 0.15s ease;
2155
+ display: inline-flex;
2156
+ align-items: center;
2157
+ gap: 6px;
2158
+ user-select: none;
2159
+ }
2160
+
2161
+ .scout-suggestion-chip i {
2162
+ font-size: 11px;
2163
+ color: var(--scout-rust);
2164
+ }
2165
+
2166
+ .scout-suggestion-chip:hover {
2167
+ background: rgba(255, 255, 255, 0.08);
2168
+ border-color: rgba(255, 255, 255, 0.15);
2169
+ color: #ffffff;
2170
+ transform: translateY(-1px);
2171
+ }
2172
+
2173
+ /* Composer Controls Toolbar */
2174
+ .scout-composer-toolbar {
2175
+ display: flex;
2176
+ align-items: center;
2177
+ justify-content: space-between;
2178
+ flex-wrap: wrap;
2179
+ gap: 12px;
2180
+ padding-top: 12px;
2181
+ border-top: 1px solid var(--scout-border-subtle);
2182
+ }
2183
+
2184
+ .scout-composer-options {
2185
+ display: flex;
2186
+ align-items: center;
2187
+ gap: 12px;
2188
+ flex-wrap: wrap;
2189
+ }
2190
+
2191
+ .scout-select-pill {
2192
+ background: rgba(255, 255, 255, 0.04);
2193
+ border: 1px solid var(--scout-border);
2194
+ border-radius: 6px;
2195
+ padding: 5px 10px;
2196
+ font-size: 12px;
2197
+ color: var(--scout-text-secondary);
2198
+ display: flex;
2199
+ align-items: center;
2200
+ gap: 6px;
2201
+ outline: none;
2202
+ }
2203
+
2204
+ .scout-select-pill select {
2205
+ background: transparent;
2206
+ border: none;
2207
+ color: inherit;
2208
+ font-size: inherit;
2209
+ outline: none;
2210
+ cursor: pointer;
2211
+ }
2212
+
2213
+ .scout-select-pill select option {
2214
+ background: #151821;
2215
+ color: #ffffff;
2216
+ }
2217
+
2218
+ .scout-toggle-pill {
2219
+ display: flex;
2220
+ align-items: center;
2221
+ gap: 6px;
2222
+ font-size: 12px;
2223
+ color: var(--scout-text-secondary);
2224
+ cursor: pointer;
2225
+ user-select: none;
2226
+ }
2227
+
2228
+ .scout-toggle-pill input {
2229
+ accent-color: var(--scout-rust);
2230
+ }
2231
+
2232
+ .btn-run-operator {
2233
+ background: linear-gradient(135deg, var(--scout-rust) 0%, #ea580c 100%);
2234
+ border: 1px solid rgba(255, 255, 255, 0.15);
2235
+ color: #ffffff;
2236
+ font-weight: 600;
2237
+ font-size: 13px;
2238
+ padding: 9px 20px;
2239
+ border-radius: 8px;
2240
+ cursor: pointer;
2241
+ display: inline-flex;
2242
+ align-items: center;
2243
+ gap: 8px;
2244
+ transition: all 0.15s ease;
2245
+ box-shadow: 0 4px 14px rgba(225, 91, 55, 0.3);
2246
+ }
2247
+
2248
+ .btn-run-operator:hover {
2249
+ background: linear-gradient(135deg, var(--scout-rust-hover) 0%, #f97316 100%);
2250
+ box-shadow: 0 6px 20px rgba(225, 91, 55, 0.45);
2251
+ transform: translateY(-1px);
2252
+ }
2253
+
2254
+ .btn-run-operator:disabled {
2255
+ opacity: 0.6;
2256
+ cursor: not-allowed;
2257
+ transform: none;
2258
+ box-shadow: none;
2259
+ }
2260
+
2261
+ /* Live Execution & Perception Card (Screen 5 & 6) */
2262
+ .scout-execution-panel {
2263
+ background: var(--scout-surface-card);
2264
+ border: 1px solid var(--scout-border);
2265
+ border-radius: 12px;
2266
+ overflow: hidden;
2267
+ margin-bottom: 28px;
2268
+ position: relative;
2269
+ }
2270
+
2271
+ .scout-execution-panel::before {
2272
+ content: '';
2273
+ position: absolute;
2274
+ top: 0;
2275
+ left: 0;
2276
+ right: 0;
2277
+ height: 2px;
2278
+ background: linear-gradient(90deg, var(--scout-cyan), var(--scout-rust), var(--scout-purple));
2279
+ }
2280
+
2281
+ .scout-execution-header {
2282
+ padding: 16px 20px;
2283
+ display: flex;
2284
+ align-items: center;
2285
+ justify-content: space-between;
2286
+ flex-wrap: wrap;
2287
+ gap: 12px;
2288
+ border-bottom: 1px solid var(--scout-border-subtle);
2289
+ background: rgba(255, 255, 255, 0.01);
2290
+ }
2291
+
2292
+ .scout-execution-meta {
2293
+ display: flex;
2294
+ align-items: center;
2295
+ gap: 12px;
2296
+ }
2297
+
2298
+ .live-pulse-badge {
2299
+ display: inline-flex;
2300
+ align-items: center;
2301
+ gap: 6px;
2302
+ padding: 4px 10px;
2303
+ background: var(--scout-cyan-subtle);
2304
+ border: 1px solid rgba(56, 189, 248, 0.3);
2305
+ border-radius: 9999px;
2306
+ font-size: 11px;
2307
+ font-weight: 600;
2308
+ color: var(--scout-cyan);
2309
+ font-family: var(--font-mono);
2310
+ }
2311
+
2312
+ .live-pulse-dot {
2313
+ width: 6px;
2314
+ height: 6px;
2315
+ border-radius: 50%;
2316
+ background: var(--scout-cyan);
2317
+ box-shadow: 0 0 10px var(--scout-cyan);
2318
+ animation: pulse-dot 1.5s infinite;
2319
+ }
2320
+
2321
+ .active-app-pill {
2322
+ display: inline-flex;
2323
+ align-items: center;
2324
+ gap: 6px;
2325
+ padding: 4px 10px;
2326
+ background: rgba(255, 255, 255, 0.05);
2327
+ border: 1px solid var(--scout-border);
2328
+ border-radius: 6px;
2329
+ font-size: 12px;
2330
+ font-weight: 500;
2331
+ color: #ffffff;
2332
+ }
2333
+
2334
+ .active-app-pill i {
2335
+ color: var(--scout-cyan);
2336
+ }
2337
+
2338
+ .scout-execution-body {
2339
+ padding: 20px;
2340
+ display: flex;
2341
+ flex-direction: column;
2342
+ gap: 16px;
2343
+ }
2344
+
2345
+ .scout-current-op-box {
2346
+ background: rgba(10, 12, 17, 0.6);
2347
+ border: 1px solid var(--scout-border);
2348
+ border-radius: 8px;
2349
+ padding: 12px 16px;
2350
+ display: flex;
2351
+ align-items: center;
2352
+ justify-content: space-between;
2353
+ flex-wrap: wrap;
2354
+ gap: 10px;
2355
+ }
2356
+
2357
+ .scout-current-op-text {
2358
+ display: flex;
2359
+ align-items: center;
2360
+ gap: 10px;
2361
+ font-size: 13px;
2362
+ color: #ffffff;
2363
+ }
2364
+
2365
+ .scout-current-op-spinner {
2366
+ color: var(--scout-cyan);
2367
+ font-size: 14px;
2368
+ }
2369
+
2370
+ /* Plan Checklist */
2371
+ .scout-plan-checklist {
2372
+ display: flex;
2373
+ flex-direction: column;
2374
+ gap: 6px;
2375
+ }
2376
+
2377
+ .scout-plan-step {
2378
+ display: flex;
2379
+ align-items: center;
2380
+ gap: 10px;
2381
+ padding: 8px 12px;
2382
+ border-radius: 6px;
2383
+ background: rgba(255, 255, 255, 0.02);
2384
+ border: 1px solid var(--scout-border-subtle);
2385
+ font-size: 13px;
2386
+ transition: all 0.15s ease;
2387
+ }
2388
+
2389
+ .scout-plan-step.completed {
2390
+ border-color: rgba(16, 185, 129, 0.2);
2391
+ background: rgba(16, 185, 129, 0.04);
2392
+ color: #ffffff;
2393
+ }
2394
+
2395
+ .scout-plan-step.completed i {
2396
+ color: #10b981;
2397
+ }
2398
+
2399
+ .scout-plan-step.in_progress {
2400
+ border-color: rgba(56, 189, 248, 0.3);
2401
+ background: rgba(56, 189, 248, 0.06);
2402
+ color: #ffffff;
2403
+ font-weight: 500;
2404
+ }
2405
+
2406
+ .scout-plan-step.in_progress i {
2407
+ color: var(--scout-cyan);
2408
+ }
2409
+
2410
+ .scout-plan-step.pending {
2411
+ color: var(--scout-text-tertiary);
2412
+ }
2413
+
2414
+ .scout-plan-step.pending i {
2415
+ color: var(--scout-text-dim);
2416
+ }
2417
+
2418
+ .scout-plan-step.failed {
2419
+ border-color: rgba(239, 68, 68, 0.3);
2420
+ background: rgba(239, 68, 68, 0.06);
2421
+ color: #f87171;
2422
+ }
2423
+
2424
+ .scout-plan-step.failed i {
2425
+ color: #ef4444;
2426
+ }
2427
+
2428
+ /* Enterprise Metrics Row */
2429
+ .scout-stats-row {
2430
+ display: grid;
2431
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
2432
+ gap: 16px;
2433
+ margin-bottom: 28px;
2434
+ }
2435
+
2436
+ .scout-stat-card {
2437
+ background: var(--scout-surface-card);
2438
+ border: 1px solid var(--scout-border);
2439
+ border-radius: 10px;
2440
+ padding: 16px 20px;
2441
+ display: flex;
2442
+ align-items: center;
2443
+ justify-content: space-between;
2444
+ transition: border-color 0.15s ease;
2445
+ }
2446
+
2447
+ .scout-stat-card:hover {
2448
+ border-color: var(--scout-border-strong);
2449
+ }
2450
+
2451
+ .scout-stat-info {
2452
+ display: flex;
2453
+ flex-direction: column;
2454
+ }
2455
+
2456
+ .scout-stat-label {
2457
+ font-size: 12px;
2458
+ color: var(--scout-text-tertiary);
2459
+ font-weight: 500;
2460
+ margin-bottom: 4px;
2461
+ }
2462
+
2463
+ .scout-stat-val {
2464
+ font-size: 22px;
2465
+ font-weight: 700;
2466
+ color: #ffffff;
2467
+ letter-spacing: -0.02em;
2468
+ font-family: var(--font-sans);
2469
+ }
2470
+
2471
+ .scout-stat-icon {
2472
+ width: 40px;
2473
+ height: 40px;
2474
+ border-radius: 8px;
2475
+ background: rgba(255, 255, 255, 0.04);
2476
+ border: 1px solid var(--scout-border-subtle);
2477
+ display: flex;
2478
+ align-items: center;
2479
+ justify-content: center;
2480
+ font-size: 18px;
2481
+ color: var(--scout-cyan);
2482
+ }
2483
+
2484
+ /* Two Column Workstation Feeds */
2485
+ .scout-two-col {
2486
+ display: grid;
2487
+ grid-template-columns: 1fr 1fr;
2488
+ gap: 24px;
2489
+ }
2490
+
2491
+ @media (max-width: 1080px) {
2492
+ .scout-two-col {
2493
+ grid-template-columns: 1fr;
2494
+ }
2495
+ }
2496
+
2497
+ .scout-card {
2498
+ background: var(--scout-surface-card);
2499
+ border: 1px solid var(--scout-border);
2500
+ border-radius: 12px;
2501
+ overflow: hidden;
2502
+ }
2503
+
2504
+ .scout-card-header {
2505
+ padding: 16px 20px;
2506
+ border-bottom: 1px solid var(--scout-border-subtle);
2507
+ display: flex;
2508
+ align-items: center;
2509
+ justify-content: space-between;
2510
+ }
2511
+
2512
+ .scout-card-title {
2513
+ font-size: 14px;
2514
+ font-weight: 600;
2515
+ color: #ffffff;
2516
+ display: flex;
2517
+ align-items: center;
2518
+ gap: 8px;
2519
+ }
2520
+
2521
+ .scout-card-body {
2522
+ padding: 20px;
2523
+ }
2524
+
2525
+ /* Activity Timeline (Screen 7) */
2526
+ .scout-timeline {
2527
+ display: flex;
2528
+ flex-direction: column;
2529
+ position: relative;
2530
+ }
2531
+
2532
+ .scout-timeline::before {
2533
+ content: '';
2534
+ position: absolute;
2535
+ top: 14px;
2536
+ bottom: 14px;
2537
+ left: 17px;
2538
+ width: 2px;
2539
+ background: var(--scout-border);
2540
+ }
2541
+
2542
+ .scout-timeline-item {
2543
+ display: flex;
2544
+ align-items: flex-start;
2545
+ gap: 16px;
2546
+ padding: 10px 0;
2547
+ position: relative;
2548
+ }
2549
+
2550
+ .scout-timeline-icon {
2551
+ width: 36px;
2552
+ height: 36px;
2553
+ border-radius: 50%;
2554
+ background: var(--scout-surface-elevated);
2555
+ border: 2px solid var(--scout-sidebar-bg);
2556
+ display: flex;
2557
+ align-items: center;
2558
+ justify-content: center;
2559
+ font-size: 13px;
2560
+ color: var(--scout-cyan);
2561
+ flex-shrink: 0;
2562
+ z-index: 2;
2563
+ }
2564
+
2565
+ .scout-timeline-icon.success {
2566
+ color: #10b981;
2567
+ background: var(--scout-emerald-subtle);
2568
+ }
2569
+
2570
+ .scout-timeline-icon.browser {
2571
+ color: #38bdf8;
2572
+ background: var(--scout-cyan-subtle);
2573
+ }
2574
+
2575
+ .scout-timeline-icon.desktop {
2576
+ color: #e15b37;
2577
+ background: var(--scout-rust-subtle);
2578
+ }
2579
+
2580
+ .scout-timeline-content {
2581
+ flex: 1;
2582
+ min-width: 0;
2583
+ }
2584
+
2585
+ .scout-timeline-title {
2586
+ font-size: 13px;
2587
+ font-weight: 500;
2588
+ color: #ffffff;
2589
+ margin-bottom: 2px;
2590
+ }
2591
+
2592
+ .scout-timeline-meta {
2593
+ display: flex;
2594
+ align-items: center;
2595
+ gap: 8px;
2596
+ font-size: 11px;
2597
+ color: var(--scout-text-tertiary);
2598
+ font-family: var(--font-mono);
2599
+ }
2600
+
2601
+ /* Artifacts Gallery (Screen 9) */
2602
+ .scout-artifacts-grid {
2603
+ display: grid;
2604
+ grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
2605
+ gap: 16px;
2606
+ }
2607
+
2608
+ .scout-artifact-card {
2609
+ background: var(--scout-surface-card);
2610
+ border: 1px solid var(--scout-border);
2611
+ border-radius: 10px;
2612
+ padding: 16px;
2613
+ display: flex;
2614
+ flex-direction: column;
2615
+ justify-content: space-between;
2616
+ transition: all 0.15s ease;
2617
+ }
2618
+
2619
+ .scout-artifact-card:hover {
2620
+ border-color: var(--scout-border-strong);
2621
+ transform: translateY(-2px);
2622
+ box-shadow: 0 8px 24px -8px rgba(0, 0, 0, 0.5);
2623
+ }
2624
+
2625
+ .scout-artifact-top {
2626
+ display: flex;
2627
+ align-items: flex-start;
2628
+ gap: 12px;
2629
+ margin-bottom: 12px;
2630
+ }
2631
+
2632
+ .scout-artifact-icon {
2633
+ width: 36px;
2634
+ height: 36px;
2635
+ border-radius: 8px;
2636
+ background: rgba(255, 255, 255, 0.05);
2637
+ display: flex;
2638
+ align-items: center;
2639
+ justify-content: center;
2640
+ font-size: 16px;
2641
+ color: var(--scout-cyan);
2642
+ flex-shrink: 0;
2643
+ }
2644
+
2645
+ .scout-artifact-details {
2646
+ flex: 1;
2647
+ min-width: 0;
2648
+ }
2649
+
2650
+ .scout-artifact-name {
2651
+ font-size: 13px;
2652
+ font-weight: 600;
2653
+ color: #ffffff;
2654
+ white-space: nowrap;
2655
+ overflow: hidden;
2656
+ text-overflow: ellipsis;
2657
+ margin-bottom: 2px;
2658
+ }
2659
+
2660
+ .scout-artifact-desc {
2661
+ font-size: 11px;
2662
+ color: var(--scout-text-tertiary);
2663
+ line-height: 1.4;
2664
+ }
2665
+
2666
+ .scout-artifact-footer {
2667
+ display: flex;
2668
+ align-items: center;
2669
+ justify-content: space-between;
2670
+ padding-top: 10px;
2671
+ border-top: 1px solid var(--scout-border-subtle);
2672
+ font-size: 11px;
2673
+ color: var(--scout-text-dim);
2674
+ }
2675
+
2676
+ /* Capabilities Matrix (Screen 10) */
2677
+ .scout-capabilities-grid {
2678
+ display: grid;
2679
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
2680
+ gap: 16px;
2681
+ }
2682
+
2683
+ .scout-capability-card {
2684
+ background: var(--scout-surface-card);
2685
+ border: 1px solid var(--scout-border);
2686
+ border-radius: 10px;
2687
+ padding: 20px;
2688
+ transition: border-color 0.15s ease;
2689
+ }
2690
+
2691
+ .scout-capability-card:hover {
2692
+ border-color: var(--scout-border-strong);
2693
+ }
2694
+
2695
+ .scout-capability-icon {
2696
+ width: 40px;
2697
+ height: 40px;
2698
+ border-radius: 8px;
2699
+ background: rgba(255, 255, 255, 0.04);
2700
+ border: 1px solid var(--scout-border);
2701
+ display: flex;
2702
+ align-items: center;
2703
+ justify-content: center;
2704
+ font-size: 18px;
2705
+ margin-bottom: 14px;
2706
+ }
2707
+
2708
+ .scout-capability-title {
2709
+ font-size: 15px;
2710
+ font-weight: 600;
2711
+ color: #ffffff;
2712
+ margin-bottom: 6px;
2713
+ }
2714
+
2715
+ .scout-capability-desc {
2716
+ font-size: 13px;
2717
+ color: var(--scout-text-secondary);
2718
+ line-height: 1.5;
2719
+ }
2720
+
2721
+ /* Settings Subnav Tabs */
2722
+ .scout-settings-nav {
2723
+ display: flex;
2724
+ gap: 6px;
2725
+ border-bottom: 1px solid var(--scout-border);
2726
+ margin-bottom: 24px;
2727
+ }
2728
+
2729
+ .scout-settings-tab {
2730
+ padding: 10px 16px;
2731
+ font-size: 13px;
2732
+ font-weight: 500;
2733
+ color: var(--scout-text-secondary);
2734
+ background: transparent;
2735
+ border: none;
2736
+ border-bottom: 2px solid transparent;
2737
+ cursor: pointer;
2738
+ display: flex;
2739
+ align-items: center;
2740
+ gap: 8px;
2741
+ transition: all 0.15s ease;
2742
+ }
2743
+
2744
+ .scout-settings-tab:hover {
2745
+ color: #ffffff;
2746
+ }
2747
+
2748
+ .scout-settings-tab.active {
2749
+ color: #ffffff;
2750
+ font-weight: 600;
2751
+ border-bottom-color: var(--scout-rust);
2752
+ }
2753
+
2754
+ /* Responsive Overrides */
2755
+ @media (max-width: 900px) {
2756
+ .scout-sidebar {
2757
+ position: fixed;
2758
+ transform: translateX(-100%);
2759
+ box-shadow: 0 0 40px rgba(0, 0, 0, 0.8);
2760
+ }
2761
+
2762
+ .scout-sidebar.open {
2763
+ transform: translateX(0);
2764
+ }
2765
+
2766
+ .scout-mobile-toggle {
2767
+ display: flex;
2768
+ }
2769
+
2770
+ .scout-content {
2771
+ padding: 20px 16px 36px;
2772
+ }
2773
+ }
2774
+
2775
+ /* ==========================================================================
2776
+ Model Context Protocol (MCP) Ecosystem Styles
2777
+ ========================================================================== */
2778
+ .mcp-servers-grid {
2779
+ display: grid;
2780
+ grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
2781
+ gap: 16px;
2782
+ padding: 16px;
2783
+ }
2784
+
2785
+ .mcp-server-card {
2786
+ background: rgba(18, 22, 31, 0.7);
2787
+ border: 1px solid var(--scout-border-subtle);
2788
+ border-radius: var(--radius-md);
2789
+ padding: 18px;
2790
+ display: flex;
2791
+ flex-direction: column;
2792
+ gap: 14px;
2793
+ transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
2794
+ position: relative;
2795
+ overflow: hidden;
2796
+ }
2797
+
2798
+ .mcp-server-card:hover {
2799
+ border-color: rgba(0, 229, 255, 0.35);
2800
+ box-shadow: 0 8px 24px -6px rgba(0, 229, 255, 0.12);
2801
+ transform: translateY(-2px);
2802
+ }
2803
+
2804
+ .mcp-server-header {
2805
+ display: flex;
2806
+ align-items: flex-start;
2807
+ justify-content: space-between;
2808
+ gap: 12px;
2809
+ }
2810
+
2811
+ .mcp-server-title-area {
2812
+ display: flex;
2813
+ align-items: center;
2814
+ gap: 10px;
2815
+ }
2816
+
2817
+ .mcp-server-avatar {
2818
+ width: 36px;
2819
+ height: 36px;
2820
+ border-radius: 8px;
2821
+ display: flex;
2822
+ align-items: center;
2823
+ justify-content: center;
2824
+ font-size: 16px;
2825
+ font-weight: 700;
2826
+ background: rgba(0, 229, 255, 0.1);
2827
+ color: #00e5ff;
2828
+ border: 1px solid rgba(0, 229, 255, 0.25);
2829
+ flex-shrink: 0;
2830
+ }
2831
+
2832
+ .mcp-server-avatar.stdio {
2833
+ background: rgba(168, 85, 247, 0.1);
2834
+ color: #c084fc;
2835
+ border-color: rgba(168, 85, 247, 0.25);
2836
+ }
2837
+
2838
+ .mcp-server-name {
2839
+ font-weight: 700;
2840
+ font-size: 15px;
2841
+ color: #ffffff;
2842
+ margin: 0;
2843
+ display: flex;
2844
+ align-items: center;
2845
+ gap: 8px;
2846
+ }
2847
+
2848
+ .mcp-server-endpoint {
2849
+ font-family: var(--font-mono);
2850
+ font-size: 11px;
2851
+ color: var(--scout-text-dim);
2852
+ overflow: hidden;
2853
+ text-overflow: ellipsis;
2854
+ white-space: nowrap;
2855
+ max-width: 260px;
2856
+ margin-top: 2px;
2857
+ }
2858
+
2859
+ .mcp-badge {
2860
+ display: inline-flex;
2861
+ align-items: center;
2862
+ gap: 5px;
2863
+ padding: 3px 8px;
2864
+ border-radius: 4px;
2865
+ font-size: 11px;
2866
+ font-weight: 600;
2867
+ letter-spacing: 0.02em;
2868
+ }
2869
+
2870
+ .mcp-badge.connected {
2871
+ background: rgba(16, 185, 129, 0.12);
2872
+ color: #10b981;
2873
+ border: 1px solid rgba(16, 185, 129, 0.3);
2874
+ }
2875
+
2876
+ .mcp-badge.connecting {
2877
+ background: rgba(245, 158, 11, 0.12);
2878
+ color: #f59e0b;
2879
+ border: 1px solid rgba(245, 158, 11, 0.3);
2880
+ }
2881
+
2882
+ .mcp-badge.disconnected {
2883
+ background: rgba(148, 163, 184, 0.1);
2884
+ color: #94a3b8;
2885
+ border: 1px solid rgba(148, 163, 184, 0.2);
2886
+ }
2887
+
2888
+ .mcp-badge.error {
2889
+ background: rgba(239, 68, 68, 0.12);
2890
+ color: #ef4444;
2891
+ border: 1px solid rgba(239, 68, 68, 0.3);
2892
+ }
2893
+
2894
+ .mcp-badge.unauthorized {
2895
+ background: rgba(249, 115, 22, 0.12);
2896
+ color: #f97316;
2897
+ border: 1px solid rgba(249, 115, 22, 0.3);
2898
+ }
2899
+
2900
+ .mcp-pulse-dot {
2901
+ width: 6px;
2902
+ height: 6px;
2903
+ border-radius: 50%;
2904
+ background-color: currentColor;
2905
+ box-shadow: 0 0 8px currentColor;
2906
+ animation: mcpBlink 2s infinite ease-in-out;
2907
+ }
2908
+
2909
+ @keyframes mcpBlink {
2910
+ 0%, 100% { opacity: 1; transform: scale(1); }
2911
+ 50% { opacity: 0.4; transform: scale(0.85); }
2912
+ }
2913
+
2914
+ .mcp-server-meta-grid {
2915
+ display: grid;
2916
+ grid-template-columns: repeat(3, 1fr);
2917
+ gap: 8px;
2918
+ background: rgba(0, 0, 0, 0.25);
2919
+ border: 1px solid var(--scout-border-subtle);
2920
+ border-radius: 6px;
2921
+ padding: 10px;
2922
+ }
2923
+
2924
+ .mcp-meta-item {
2925
+ display: flex;
2926
+ flex-direction: column;
2927
+ gap: 2px;
2928
+ }
2929
+
2930
+ .mcp-meta-label {
2931
+ font-size: 10px;
2932
+ text-transform: uppercase;
2933
+ letter-spacing: 0.05em;
2934
+ color: var(--scout-text-dim);
2935
+ }
2936
+
2937
+ .mcp-meta-val {
2938
+ font-size: 12px;
2939
+ font-weight: 600;
2940
+ color: #ffffff;
2941
+ font-family: var(--font-mono);
2942
+ }
2943
+
2944
+ .mcp-server-footer {
2945
+ display: flex;
2946
+ align-items: center;
2947
+ justify-content: space-between;
2948
+ gap: 8px;
2949
+ padding-top: 10px;
2950
+ border-top: 1px solid var(--scout-border-subtle);
2951
+ }
2952
+
2953
+ .mcp-perm-tag {
2954
+ font-size: 10px;
2955
+ padding: 2px 6px;
2956
+ border-radius: 3px;
2957
+ font-weight: 700;
2958
+ letter-spacing: 0.04em;
2959
+ text-transform: uppercase;
2960
+ }
2961
+
2962
+ .mcp-perm-tag.read {
2963
+ background: rgba(16, 185, 129, 0.15);
2964
+ color: #34d399;
2965
+ border: 1px solid rgba(16, 185, 129, 0.3);
2966
+ }
2967
+
2968
+ .mcp-perm-tag.write {
2969
+ background: rgba(56, 189, 248, 0.15);
2970
+ color: #38bdf8;
2971
+ border: 1px solid rgba(56, 189, 248, 0.3);
2972
+ }
2973
+
2974
+ .mcp-perm-tag.destructive {
2975
+ background: rgba(239, 68, 68, 0.15);
2976
+ color: #f87171;
2977
+ border: 1px solid rgba(239, 68, 68, 0.3);
2978
+ }
2979
+
2980
+ .mcp-perm-tag.admin {
2981
+ background: rgba(168, 85, 247, 0.15);
2982
+ color: #c084fc;
2983
+ border: 1px solid rgba(168, 85, 247, 0.3);
2984
+ }
2985
+
2986
+ .mcp-tool-item {
2987
+ background: rgba(14, 18, 26, 0.85);
2988
+ border: 1px solid var(--scout-border-subtle);
2989
+ border-radius: 8px;
2990
+ padding: 12px 16px;
2991
+ margin-bottom: 10px;
2992
+ display: flex;
2993
+ align-items: flex-start;
2994
+ justify-content: space-between;
2995
+ gap: 16px;
2996
+ transition: border-color 0.15s;
2997
+ }
2998
+
2999
+ .mcp-tool-item:hover {
3000
+ border-color: rgba(0, 229, 255, 0.25);
3001
+ }
3002
+
3003
+ .mcp-tool-info {
3004
+ flex: 1;
3005
+ }
3006
+
3007
+ .mcp-tool-title-row {
3008
+ display: flex;
3009
+ align-items: center;
3010
+ gap: 8px;
3011
+ margin-bottom: 4px;
3012
+ }
3013
+
3014
+ .mcp-tool-name {
3015
+ font-weight: 700;
3016
+ font-size: 13px;
3017
+ color: #ffffff;
3018
+ font-family: var(--font-mono);
3019
+ }
3020
+
3021
+ .mcp-tool-desc {
3022
+ font-size: 12px;
3023
+ color: var(--scout-text-secondary);
3024
+ line-height: 1.4;
3025
+ margin: 0 0 6px 0;
3026
+ }
3027
+
3028
+ .mcp-tool-params {
3029
+ font-size: 11px;
3030
+ color: var(--scout-text-dim);
3031
+ font-family: var(--font-mono);
3032
+ }
3033
+
3034
+ /* Switch styling */
3035
+ .mcp-toggle-switch {
3036
+ position: relative;
3037
+ display: inline-block;
3038
+ width: 36px;
3039
+ height: 20px;
3040
+ flex-shrink: 0;
3041
+ }
3042
+
3043
+ .mcp-toggle-switch input {
3044
+ opacity: 0;
3045
+ width: 0;
3046
+ height: 0;
3047
+ }
3048
+
3049
+ .mcp-toggle-slider {
3050
+ position: absolute;
3051
+ cursor: pointer;
3052
+ top: 0;
3053
+ left: 0;
3054
+ right: 0;
3055
+ bottom: 0;
3056
+ background-color: rgba(255, 255, 255, 0.15);
3057
+ transition: 0.2s;
3058
+ border-radius: 20px;
3059
+ }
3060
+
3061
+ .mcp-toggle-slider:before {
3062
+ position: absolute;
3063
+ content: "";
3064
+ height: 14px;
3065
+ width: 14px;
3066
+ left: 3px;
3067
+ bottom: 3px;
3068
+ background-color: white;
3069
+ transition: 0.2s;
3070
+ border-radius: 50%;
3071
+ }
3072
+
3073
+ input:checked + .mcp-toggle-slider {
3074
+ background-color: #10b981;
3075
+ }
3076
+
3077
+ input:checked + .mcp-toggle-slider:before {
3078
+ transform: translateX(16px);
3079
+ }
3080
+
3081
+