ft-scout 1.0.8 → 1.1.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.
Files changed (243) hide show
  1. package/.firebase/hosting.d2Vi.cache +9 -0
  2. package/.firebaserc +14 -0
  3. package/AUTONOMOUS_FEATURES.md +192 -0
  4. package/README.md +482 -32
  5. package/bin/ft.js +2 -0
  6. package/bin/src/commands/agent.d.ts.map +1 -0
  7. package/bin/src/commands/agent.js +1230 -0
  8. package/bin/src/commands/agent.js.map +1 -0
  9. package/bin/src/commands/audit.d.ts.map +1 -0
  10. package/bin/src/commands/audit.js +104 -0
  11. package/bin/src/commands/audit.js.map +1 -0
  12. package/bin/src/commands/authCommand.d.ts.map +1 -0
  13. package/bin/src/commands/authCommand.js +38 -0
  14. package/bin/src/commands/authCommand.js.map +1 -0
  15. package/bin/src/commands/benchmark.d.ts.map +1 -0
  16. package/bin/src/commands/benchmark.js +135 -0
  17. package/bin/src/commands/benchmark.js.map +1 -0
  18. package/bin/src/commands/brief.d.ts.map +1 -1
  19. package/bin/src/commands/brief.js +28 -19
  20. package/bin/src/commands/brief.js.map +1 -1
  21. package/bin/src/commands/configCommand.d.ts.map +1 -0
  22. package/bin/src/commands/configCommand.js +53 -0
  23. package/bin/src/commands/configCommand.js.map +1 -0
  24. package/bin/src/commands/dashboard.d.ts.map +1 -0
  25. package/bin/src/commands/dashboard.js +41 -0
  26. package/bin/src/commands/dashboard.js.map +1 -0
  27. package/bin/src/commands/history.d.ts.map +1 -0
  28. package/bin/src/commands/history.js +20 -0
  29. package/bin/src/commands/history.js.map +1 -0
  30. package/bin/src/commands/init.d.ts.map +1 -1
  31. package/bin/src/commands/init.js +411 -78
  32. package/bin/src/commands/init.js.map +1 -1
  33. package/bin/src/commands/login.d.ts.map +1 -0
  34. package/bin/src/commands/login.js +190 -0
  35. package/bin/src/commands/login.js.map +1 -0
  36. package/bin/src/commands/logout.d.ts.map +1 -0
  37. package/bin/src/commands/logout.js +15 -0
  38. package/bin/src/commands/logout.js.map +1 -0
  39. package/bin/src/commands/mcp.d.ts.map +1 -0
  40. package/bin/src/commands/mcp.js +393 -0
  41. package/bin/src/commands/mcp.js.map +1 -0
  42. package/bin/src/commands/owners.js +6 -6
  43. package/bin/src/commands/owners.js.map +1 -1
  44. package/bin/src/commands/plan.d.ts.map +1 -0
  45. package/bin/src/commands/plan.js +152 -0
  46. package/bin/src/commands/plan.js.map +1 -0
  47. package/bin/src/commands/quota.d.ts.map +1 -0
  48. package/bin/src/commands/quota.js +32 -0
  49. package/bin/src/commands/quota.js.map +1 -0
  50. package/bin/src/commands/recommend.d.ts.map +1 -0
  51. package/bin/src/commands/recommend.js +46 -0
  52. package/bin/src/commands/recommend.js.map +1 -0
  53. package/bin/src/commands/risky.d.ts.map +1 -1
  54. package/bin/src/commands/risky.js +235 -39
  55. package/bin/src/commands/risky.js.map +1 -1
  56. package/bin/src/commands/setup.d.ts.map +1 -1
  57. package/bin/src/commands/setup.js +411 -16
  58. package/bin/src/commands/setup.js.map +1 -1
  59. package/bin/src/commands/signup.d.ts.map +1 -0
  60. package/bin/src/commands/signup.js +118 -0
  61. package/bin/src/commands/signup.js.map +1 -0
  62. package/bin/src/commands/undo.d.ts.map +1 -0
  63. package/bin/src/commands/undo.js +59 -0
  64. package/bin/src/commands/undo.js.map +1 -0
  65. package/bin/src/commands/web.d.ts.map +1 -0
  66. package/bin/src/commands/web.js +90 -0
  67. package/bin/src/commands/web.js.map +1 -0
  68. package/bin/src/discovery/config.d.ts.map +1 -0
  69. package/bin/src/discovery/config.js +41 -0
  70. package/bin/src/discovery/config.js.map +1 -0
  71. package/bin/src/discovery/display.d.ts.map +1 -0
  72. package/bin/src/discovery/display.js +57 -0
  73. package/bin/src/discovery/display.js.map +1 -0
  74. package/bin/src/discovery/messages.d.ts.map +1 -0
  75. package/bin/src/discovery/messages.js +7 -0
  76. package/bin/src/discovery/messages.js.map +1 -0
  77. package/bin/src/discovery/signals.d.ts.map +1 -0
  78. package/bin/src/discovery/signals.js +33 -0
  79. package/bin/src/discovery/signals.js.map +1 -0
  80. package/bin/src/engine/actionVerifier.d.ts.map +1 -0
  81. package/bin/src/engine/actionVerifier.js +283 -0
  82. package/bin/src/engine/actionVerifier.js.map +1 -0
  83. package/bin/src/engine/agentEngine.d.ts.map +1 -0
  84. package/bin/src/engine/agentEngine.js +2188 -0
  85. package/bin/src/engine/agentEngine.js.map +1 -0
  86. package/bin/src/engine/agentState.d.ts.map +1 -0
  87. package/bin/src/engine/agentState.js +381 -0
  88. package/bin/src/engine/agentState.js.map +1 -0
  89. package/bin/src/engine/browser/browserController.d.ts.map +1 -0
  90. package/bin/src/engine/browser/browserController.js +737 -0
  91. package/bin/src/engine/browser/browserController.js.map +1 -0
  92. package/bin/src/engine/browser/index.d.ts.map +1 -0
  93. package/bin/src/engine/browser/index.js +2 -0
  94. package/bin/src/engine/browser/index.js.map +1 -0
  95. package/bin/src/engine/computer/computerController.d.ts.map +1 -0
  96. package/bin/src/engine/computer/computerController.js +773 -0
  97. package/bin/src/engine/computer/computerController.js.map +1 -0
  98. package/bin/src/engine/computer/computerDiagnostic.d.ts.map +1 -0
  99. package/bin/src/engine/computer/computerDiagnostic.js +71 -0
  100. package/bin/src/engine/computer/computerDiagnostic.js.map +1 -0
  101. package/bin/src/engine/computer/index.d.ts.map +1 -0
  102. package/bin/src/engine/computer/index.js +4 -0
  103. package/bin/src/engine/computer/index.js.map +1 -0
  104. package/bin/src/engine/computer/mockComputer.d.ts.map +1 -0
  105. package/bin/src/engine/computer/mockComputer.js +260 -0
  106. package/bin/src/engine/computer/mockComputer.js.map +1 -0
  107. package/bin/src/engine/computer/scoutDriver.cs +1161 -0
  108. package/bin/src/engine/computer/scout_driver.exe +0 -0
  109. package/bin/src/engine/git.d.ts.map +1 -1
  110. package/bin/src/engine/git.js +71 -0
  111. package/bin/src/engine/git.js.map +1 -1
  112. package/bin/src/engine/llm.d.ts.map +1 -1
  113. package/bin/src/engine/llm.js +1272 -23
  114. package/bin/src/engine/llm.js.map +1 -1
  115. package/bin/src/engine/planner.d.ts.map +1 -0
  116. package/bin/src/engine/planner.js +321 -0
  117. package/bin/src/engine/planner.js.map +1 -0
  118. package/bin/src/engine/runtime/agentRuntime.d.ts.map +1 -0
  119. package/bin/src/engine/runtime/agentRuntime.js +1258 -0
  120. package/bin/src/engine/runtime/agentRuntime.js.map +1 -0
  121. package/bin/src/engine/runtime/index.d.ts.map +1 -0
  122. package/bin/src/engine/runtime/index.js +2 -0
  123. package/bin/src/engine/runtime/index.js.map +1 -0
  124. package/bin/src/engine/safety.d.ts.map +1 -0
  125. package/bin/src/engine/safety.js +316 -0
  126. package/bin/src/engine/safety.js.map +1 -0
  127. package/bin/src/engine/scoutAudioRecorder.cs +215 -0
  128. package/bin/src/engine/scout_audio_recorder.exe +0 -0
  129. package/bin/src/engine/toolRegistry.d.ts.map +1 -0
  130. package/bin/src/engine/toolRegistry.js +521 -0
  131. package/bin/src/engine/toolRegistry.js.map +1 -0
  132. package/bin/src/engine/verifier.d.ts.map +1 -0
  133. package/bin/src/engine/verifier.js +414 -0
  134. package/bin/src/engine/verifier.js.map +1 -0
  135. package/bin/src/engine/voiceEngine.d.ts.map +1 -0
  136. package/bin/src/engine/voiceEngine.js +474 -0
  137. package/bin/src/engine/voiceEngine.js.map +1 -0
  138. package/bin/src/engine/web.d.ts.map +1 -0
  139. package/bin/src/engine/web.js +161 -0
  140. package/bin/src/engine/web.js.map +1 -0
  141. package/bin/src/engine/workspace/agentWorkspace.d.ts.map +1 -0
  142. package/bin/src/engine/workspace/agentWorkspace.js +505 -0
  143. package/bin/src/engine/workspace/agentWorkspace.js.map +1 -0
  144. package/bin/src/engine/workspace/index.d.ts.map +1 -0
  145. package/bin/src/engine/workspace/index.js +2 -0
  146. package/bin/src/engine/workspace/index.js.map +1 -0
  147. package/bin/src/index.js +365 -23
  148. package/bin/src/index.js.map +1 -1
  149. package/bin/src/mcp/client.d.ts.map +1 -0
  150. package/bin/src/mcp/client.js +127 -0
  151. package/bin/src/mcp/client.js.map +1 -0
  152. package/bin/src/mcp/discovery.d.ts.map +1 -0
  153. package/bin/src/mcp/discovery.js +91 -0
  154. package/bin/src/mcp/discovery.js.map +1 -0
  155. package/bin/src/mcp/health.d.ts.map +1 -0
  156. package/bin/src/mcp/health.js +44 -0
  157. package/bin/src/mcp/health.js.map +1 -0
  158. package/bin/src/mcp/index.d.ts.map +1 -0
  159. package/bin/src/mcp/index.js +15 -0
  160. package/bin/src/mcp/index.js.map +1 -0
  161. package/bin/src/mcp/manager.d.ts.map +1 -0
  162. package/bin/src/mcp/manager.js +648 -0
  163. package/bin/src/mcp/manager.js.map +1 -0
  164. package/bin/src/mcp/permissions.d.ts.map +1 -0
  165. package/bin/src/mcp/permissions.js +50 -0
  166. package/bin/src/mcp/permissions.js.map +1 -0
  167. package/bin/src/mcp/persistence.d.ts.map +1 -0
  168. package/bin/src/mcp/persistence.js +171 -0
  169. package/bin/src/mcp/persistence.js.map +1 -0
  170. package/bin/src/mcp/recovery.d.ts.map +1 -0
  171. package/bin/src/mcp/recovery.js +75 -0
  172. package/bin/src/mcp/recovery.js.map +1 -0
  173. package/bin/src/mcp/telemetry.d.ts.map +1 -0
  174. package/bin/src/mcp/telemetry.js +82 -0
  175. package/bin/src/mcp/telemetry.js.map +1 -0
  176. package/bin/src/mcp/toolRouter.d.ts.map +1 -0
  177. package/bin/src/mcp/toolRouter.js +127 -0
  178. package/bin/src/mcp/toolRouter.js.map +1 -0
  179. package/bin/src/mcp/transport.d.ts.map +1 -0
  180. package/bin/src/mcp/transport.js +328 -0
  181. package/bin/src/mcp/transport.js.map +1 -0
  182. package/bin/src/mcp/types.d.ts.map +1 -0
  183. package/bin/src/mcp/types.js +6 -0
  184. package/bin/src/mcp/types.js.map +1 -0
  185. package/bin/src/server/server.d.ts.map +1 -0
  186. package/bin/src/server/server.js +989 -0
  187. package/bin/src/server/server.js.map +1 -0
  188. package/bin/src/utils/admin.d.ts.map +1 -0
  189. package/bin/src/utils/admin.js +231 -0
  190. package/bin/src/utils/admin.js.map +1 -0
  191. package/bin/src/utils/auditLogger.d.ts.map +1 -0
  192. package/bin/src/utils/auditLogger.js +70 -0
  193. package/bin/src/utils/auditLogger.js.map +1 -0
  194. package/bin/src/utils/auth.d.ts.map +1 -0
  195. package/bin/src/utils/auth.js +679 -0
  196. package/bin/src/utils/auth.js.map +1 -0
  197. package/bin/src/utils/branding.d.ts.map +1 -0
  198. package/bin/src/utils/branding.js +14 -0
  199. package/bin/src/utils/branding.js.map +1 -0
  200. package/bin/src/utils/config.d.ts.map +1 -1
  201. package/bin/src/utils/config.js +124 -3
  202. package/bin/src/utils/config.js.map +1 -1
  203. package/bin/src/utils/email.d.ts.map +1 -0
  204. package/bin/src/utils/email.js +267 -0
  205. package/bin/src/utils/email.js.map +1 -0
  206. package/bin/src/utils/firebaseAuth.d.ts.map +1 -0
  207. package/bin/src/utils/firebaseAuth.js +174 -0
  208. package/bin/src/utils/firebaseAuth.js.map +1 -0
  209. package/bin/src/utils/holoseneAuth.d.ts.map +1 -0
  210. package/bin/src/utils/holoseneAuth.js +307 -0
  211. package/bin/src/utils/holoseneAuth.js.map +1 -0
  212. package/bin/src/utils/language.d.ts.map +1 -0
  213. package/bin/src/utils/language.js +181 -0
  214. package/bin/src/utils/language.js.map +1 -0
  215. package/bin/src/utils/markdown.d.ts.map +1 -0
  216. package/bin/src/utils/markdown.js +215 -0
  217. package/bin/src/utils/markdown.js.map +1 -0
  218. package/bin/src/utils/payment.d.ts.map +1 -0
  219. package/bin/src/utils/payment.js +290 -0
  220. package/bin/src/utils/payment.js.map +1 -0
  221. package/bin/src/utils/pricing.d.ts.map +1 -0
  222. package/bin/src/utils/pricing.js +165 -0
  223. package/bin/src/utils/pricing.js.map +1 -0
  224. package/bin/src/utils/razorpay.d.ts.map +1 -0
  225. package/bin/src/utils/razorpay.js +144 -0
  226. package/bin/src/utils/razorpay.js.map +1 -0
  227. package/bin/src/utils/session.d.ts.map +1 -0
  228. package/bin/src/utils/session.js +82 -0
  229. package/bin/src/utils/session.js.map +1 -0
  230. package/bin/src/utils/updateCheck.d.ts.map +1 -0
  231. package/bin/src/utils/updateCheck.js +108 -0
  232. package/bin/src/utils/updateCheck.js.map +1 -0
  233. package/downloads/invoice-2026-03.pdf +1 -0
  234. package/firebase.json +74 -0
  235. package/package.json +49 -46
  236. package/web/ScoutFavicon.png +0 -0
  237. package/web/app.js +3944 -0
  238. package/web/styles.css +3081 -0
  239. package/.ft/context.json +0 -18
  240. package/email-template.html +0 -223
  241. package/email-template.txt +0 -45
  242. package/scripts/send-brevo-campaign.cjs +0 -167
  243. package/scripts/send-email.js +0 -77
package/web/styles.css ADDED
@@ -0,0 +1,3081 @@
1
+ /* ==========================================================================
2
+ FrontTerrain Scout Design System & Visual Engine v1.1.0
3
+ Inspired by HappyRobot, Linear.app & Vercel aesthetics
4
+ ========================================================================== */
5
+
6
+ :root {
7
+ /* FrontTerrain Color Tokens */
8
+ --hr-canvas: #08090c;
9
+ --hr-surface: #101218;
10
+ --hr-surface-card: #151821;
11
+ --hr-surface-hover: #1c202d;
12
+ --hr-surface-elevated: #232838;
13
+
14
+ --hr-rust: #e15b37;
15
+ --hr-rust-hover: #f06843;
16
+ --hr-rust-glow: rgba(225, 91, 55, 0.25);
17
+
18
+ --hr-cyan: #38bdf8;
19
+ --hr-cyan-glow: rgba(56, 189, 248, 0.25);
20
+
21
+ --hr-violet: #818cf8;
22
+ --hr-emerald: #34d399;
23
+ --hr-amber: #fbbf24;
24
+ --hr-rose: #f87171;
25
+
26
+ --hr-line: rgba(255, 255, 255, 0.08);
27
+ --hr-line-strong: rgba(255, 255, 255, 0.16);
28
+
29
+ /* Contrast Text */
30
+ --text-primary: #f8fafc;
31
+ --text-secondary: #94a3b8;
32
+ --text-tertiary: #64748b;
33
+ --text-dim: #475569;
34
+
35
+ /* Aliases */
36
+ --bg-canvas: var(--hr-canvas);
37
+ --bg-surface: var(--hr-surface);
38
+ --bg-card: var(--hr-surface-card);
39
+ --border-subtle: var(--hr-line);
40
+ --border-hover: rgba(225, 91, 55, 0.35);
41
+
42
+ --accent-primary: var(--hr-rust);
43
+ --accent-cyan: var(--hr-cyan);
44
+ --accent-purple: var(--hr-violet);
45
+ --accent-emerald: var(--hr-emerald);
46
+
47
+ /* Fonts */
48
+ --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
49
+ --font-mono: 'JetBrains Mono', monospace;
50
+ --font-serif: 'Newsreader', Georgia, serif;
51
+
52
+ /* Radii */
53
+ --radius-sm: 6px;
54
+ --radius-md: 12px;
55
+ --radius-lg: 18px;
56
+ --radius-pill: 9999px;
57
+
58
+ /* Transitions */
59
+ --transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);
60
+ --transition-normal: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
61
+ }
62
+
63
+ /* Minimal Custom Scrollbar */
64
+ ::-webkit-scrollbar {
65
+ width: 6px;
66
+ height: 6px;
67
+ }
68
+ ::-webkit-scrollbar-track {
69
+ background: transparent;
70
+ }
71
+ ::-webkit-scrollbar-thumb {
72
+ background: rgba(255, 255, 255, 0.12);
73
+ border-radius: 4px;
74
+ }
75
+ ::-webkit-scrollbar-thumb:hover {
76
+ background: var(--hr-rust);
77
+ }
78
+
79
+ /* Reset & Setup */
80
+ *, *::before, *::after {
81
+ box-sizing: border-box;
82
+ margin: 0;
83
+ padding: 0;
84
+ }
85
+
86
+ html {
87
+ scroll-behavior: smooth;
88
+ }
89
+
90
+ body {
91
+ background-color: var(--bg-canvas);
92
+ color: var(--text-primary);
93
+ font-family: var(--font-sans);
94
+ font-size: 14px;
95
+ line-height: 1.6;
96
+ min-height: 100vh;
97
+ overflow-x: hidden;
98
+ position: relative;
99
+ -webkit-font-smoothing: antialiased;
100
+ }
101
+
102
+ /* Top Announcement Bar */
103
+ .announcement-bar {
104
+ background: var(--hr-rust);
105
+ color: #ffffff;
106
+ padding: 0.55rem 1rem;
107
+ font-size: 0.72rem;
108
+ font-weight: 600;
109
+ text-transform: uppercase;
110
+ letter-spacing: 0.11em;
111
+ text-align: center;
112
+ display: flex;
113
+ align-items: center;
114
+ justify-content: center;
115
+ gap: 0.75rem;
116
+ text-decoration: none;
117
+ transition: opacity var(--transition-fast);
118
+ position: relative;
119
+ z-index: 101;
120
+ }
121
+
122
+ .announcement-bar:hover {
123
+ opacity: 0.92;
124
+ }
125
+
126
+ .blink-dot {
127
+ width: 6px;
128
+ height: 6px;
129
+ background-color: #ffffff;
130
+ border-radius: 50%;
131
+ animation: blink 1.4s ease-in-out infinite;
132
+ }
133
+
134
+ @keyframes blink {
135
+ 0%, 100% { opacity: 1; }
136
+ 50% { opacity: 0.2; }
137
+ }
138
+
139
+ /* FrontTerrain Eyebrow Badge */
140
+ .hr-eyebrow {
141
+ display: inline-flex;
142
+ align-items: center;
143
+ gap: 0.5rem;
144
+ font-family: var(--font-mono);
145
+ font-size: 0.72rem;
146
+ font-weight: 600;
147
+ text-transform: uppercase;
148
+ letter-spacing: 0.14em;
149
+ color: var(--hr-rust);
150
+ background: rgba(225, 91, 55, 0.08);
151
+ border: 1px solid rgba(225, 91, 55, 0.22);
152
+ padding: 0.35rem 0.85rem;
153
+ border-radius: 9999px;
154
+ margin-bottom: 0.75rem;
155
+ }
156
+
157
+ /* Ambient Diffused Background Radial Glows */
158
+ .bg-glow {
159
+ position: fixed;
160
+ border-radius: 50%;
161
+ filter: blur(160px);
162
+ pointer-events: none;
163
+ z-index: 0;
164
+ opacity: 0.16;
165
+ animation: floatGlow 18s infinite alternate ease-in-out;
166
+ will-change: transform, opacity;
167
+ }
168
+
169
+ .bg-glow-1 {
170
+ width: 650px;
171
+ height: 650px;
172
+ background: var(--hr-rust);
173
+ top: -160px;
174
+ left: -140px;
175
+ }
176
+
177
+ .bg-glow-2 {
178
+ width: 700px;
179
+ height: 700px;
180
+ background: var(--hr-violet);
181
+ bottom: -200px;
182
+ right: -160px;
183
+ animation-delay: -7s;
184
+ }
185
+
186
+ .bg-glow-3 {
187
+ width: 500px;
188
+ height: 500px;
189
+ background: var(--hr-cyan);
190
+ top: 45%;
191
+ left: 50%;
192
+ transform: translate(-50%, -50%);
193
+ opacity: 0.07;
194
+ }
195
+
196
+ @keyframes floatGlow {
197
+ 0% { transform: scale(1) translate(0, 0); opacity: 0.14; }
198
+ 100% { transform: scale(1.08) translate(30px, 20px); opacity: 0.22; }
199
+ }
200
+
201
+ /* Frosted Glass Panel */
202
+ .glass-panel {
203
+ background: rgba(21, 24, 33, 0.72);
204
+ backdrop-filter: blur(24px);
205
+ -webkit-backdrop-filter: blur(24px);
206
+ border: 1px solid var(--hr-line);
207
+ border-radius: var(--radius-lg);
208
+ box-shadow: 0 12px 36px -12px rgba(0, 0, 0, 0.6);
209
+ transition: border-color var(--transition-normal), background-color var(--transition-normal), transform var(--transition-normal), box-shadow var(--transition-normal);
210
+ }
211
+
212
+ .glass-panel:hover {
213
+ border-color: rgba(255, 255, 255, 0.14);
214
+ }
215
+
216
+ /* App Wrapper Layout */
217
+ .app-wrapper {
218
+ position: relative;
219
+ z-index: 1;
220
+ max-width: 1280px;
221
+ margin: 0 auto;
222
+ padding: 0 24px;
223
+ display: flex;
224
+ flex-direction: column;
225
+ min-height: 100vh;
226
+ }
227
+
228
+ /* Typography Helpers */
229
+ h1, h2, h3, h4, h5, h6 {
230
+ font-family: var(--font-sans);
231
+ color: var(--text-primary);
232
+ font-weight: 700;
233
+ letter-spacing: -0.025em;
234
+ }
235
+
236
+ .text-gradient {
237
+ background: linear-gradient(135deg, #f8fafc 0%, #c7d2fe 40%, #38bdf8 100%);
238
+ background-clip: text;
239
+ -webkit-background-clip: text;
240
+ -webkit-text-fill-color: transparent;
241
+ }
242
+
243
+ .text-bright { color: var(--text-primary); }
244
+ .text-muted { color: var(--text-secondary); }
245
+ .text-dim { color: var(--text-tertiary); }
246
+ .text-danger { color: var(--hr-rose) !important; }
247
+ .text-primary { color: var(--hr-cyan) !important; }
248
+ .text-warning { color: var(--hr-amber) !important; }
249
+ .text-success { color: var(--hr-emerald) !important; }
250
+ .block { display: block; }
251
+ .hidden { display: none !important; }
252
+
253
+ /* Header Navbar */
254
+ .navbar {
255
+ display: flex;
256
+ align-items: center;
257
+ justify-content: space-between;
258
+ padding: 20px 0;
259
+ border-bottom: 1px solid var(--border-subtle);
260
+ margin-bottom: 32px;
261
+ }
262
+
263
+ .nav-left {
264
+ display: flex;
265
+ align-items: center;
266
+ gap: 14px;
267
+ }
268
+
269
+ .brand-logo {
270
+ display: flex;
271
+ align-items: center;
272
+ gap: 10px;
273
+ text-decoration: none;
274
+ }
275
+
276
+ .logo-icon {
277
+ display: contents;
278
+ }
279
+
280
+ .brand-logo-img {
281
+ width: 32px;
282
+ height: 32px;
283
+ object-fit: contain;
284
+ filter: drop-shadow(0 0 8px rgba(56, 189, 248, 0.25));
285
+ display: block;
286
+ }
287
+
288
+ .brand-text {
289
+ display: flex;
290
+ flex-direction: column;
291
+ }
292
+
293
+ .brand-title {
294
+ font-size: 18px;
295
+ font-weight: 800;
296
+ letter-spacing: 0.08em;
297
+ color: var(--text-primary);
298
+ }
299
+
300
+ .brand-subtitle {
301
+ font-size: 11px;
302
+ color: var(--text-tertiary);
303
+ letter-spacing: 0.05em;
304
+ text-transform: uppercase;
305
+ }
306
+
307
+ .version-badge {
308
+ background: rgba(129, 140, 248, 0.12);
309
+ border: 1px solid rgba(129, 140, 248, 0.28);
310
+ color: #a5b4fc;
311
+ font-size: 11px;
312
+ font-weight: 600;
313
+ padding: 2px 9px;
314
+ border-radius: var(--radius-pill);
315
+ }
316
+
317
+ /* Nav Pills */
318
+ .nav-links {
319
+ display: flex;
320
+ align-items: center;
321
+ gap: 4px;
322
+ background: rgba(16, 18, 24, 0.7);
323
+ padding: 4px;
324
+ border-radius: var(--radius-pill);
325
+ border: 1px solid var(--border-subtle);
326
+ }
327
+
328
+ .nav-btn {
329
+ background: transparent;
330
+ border: none;
331
+ color: var(--text-secondary);
332
+ font-family: var(--font-sans);
333
+ font-size: 13px;
334
+ font-weight: 500;
335
+ padding: 8px 18px;
336
+ border-radius: var(--radius-pill);
337
+ cursor: pointer;
338
+ display: flex;
339
+ align-items: center;
340
+ gap: 8px;
341
+ transition: var(--transition-fast);
342
+ text-decoration: none;
343
+ }
344
+
345
+ .nav-btn:hover {
346
+ color: var(--text-primary);
347
+ background: rgba(255, 255, 255, 0.05);
348
+ }
349
+
350
+ .nav-btn.active {
351
+ background: var(--hr-rust);
352
+ color: #ffffff;
353
+ box-shadow: 0 4px 16px var(--hr-rust-glow);
354
+ }
355
+
356
+ /* Nav Right Controls */
357
+ .nav-right {
358
+ display: flex;
359
+ align-items: center;
360
+ gap: 14px;
361
+ }
362
+
363
+ .user-menu {
364
+ position: relative;
365
+ }
366
+
367
+ .user-menu-btn {
368
+ background: rgba(21, 24, 33, 0.8);
369
+ border: 1px solid var(--border-subtle);
370
+ color: var(--text-primary);
371
+ padding: 6px 14px;
372
+ border-radius: var(--radius-pill);
373
+ display: flex;
374
+ align-items: center;
375
+ gap: 10px;
376
+ cursor: pointer;
377
+ transition: var(--transition-fast);
378
+ }
379
+
380
+ .user-menu-btn:hover {
381
+ border-color: var(--hr-line-strong);
382
+ background: rgba(28, 32, 45, 0.9);
383
+ }
384
+
385
+ .avatar {
386
+ width: 26px;
387
+ height: 26px;
388
+ background: linear-gradient(135deg, var(--hr-rust) 0%, var(--hr-violet) 100%);
389
+ color: #ffffff;
390
+ font-size: 12px;
391
+ font-weight: 700;
392
+ border-radius: 50%;
393
+ display: flex;
394
+ align-items: center;
395
+ justify-content: center;
396
+ }
397
+
398
+ .nav-user-name {
399
+ font-size: 13px;
400
+ font-weight: 600;
401
+ }
402
+
403
+ /* Dropdown Menu */
404
+ .dropdown-menu {
405
+ position: absolute;
406
+ top: calc(100% + 8px);
407
+ right: 0;
408
+ width: 240px;
409
+ background: var(--hr-surface-card);
410
+ border: 1px solid var(--hr-line-strong);
411
+ border-radius: var(--radius-md);
412
+ box-shadow: 0 16px 40px rgba(0, 0, 0, 0.7);
413
+ padding: 8px;
414
+ display: none;
415
+ flex-direction: column;
416
+ gap: 4px;
417
+ z-index: 100;
418
+ }
419
+
420
+ .dropdown-menu.show {
421
+ display: flex;
422
+ }
423
+
424
+ .dropdown-header {
425
+ padding: 8px 12px;
426
+ display: flex;
427
+ flex-direction: column;
428
+ }
429
+
430
+ .dropdown-header strong {
431
+ color: var(--text-primary);
432
+ font-size: 13px;
433
+ }
434
+
435
+ .dropdown-header small {
436
+ color: var(--text-secondary);
437
+ font-size: 11px;
438
+ }
439
+
440
+ .dropdown-divider {
441
+ border: none;
442
+ border-top: 1px solid var(--border-subtle);
443
+ margin: 4px 0;
444
+ }
445
+
446
+ .dropdown-item {
447
+ background: transparent;
448
+ border: none;
449
+ color: var(--text-secondary);
450
+ padding: 8px 12px;
451
+ border-radius: var(--radius-sm);
452
+ font-size: 13px;
453
+ font-weight: 500;
454
+ display: flex;
455
+ align-items: center;
456
+ gap: 10px;
457
+ text-decoration: none;
458
+ cursor: pointer;
459
+ transition: var(--transition-fast);
460
+ width: 100%;
461
+ text-align: left;
462
+ }
463
+
464
+ .dropdown-item:hover {
465
+ background: var(--hr-surface-hover);
466
+ color: var(--text-primary);
467
+ }
468
+
469
+ /* Buttons */
470
+ .btn {
471
+ display: inline-flex;
472
+ align-items: center;
473
+ justify-content: center;
474
+ gap: 8px;
475
+ font-family: var(--font-sans);
476
+ font-size: 13px;
477
+ font-weight: 600;
478
+ padding: 9px 18px;
479
+ border-radius: var(--radius-pill);
480
+ border: 1px solid transparent;
481
+ cursor: pointer;
482
+ text-decoration: none;
483
+ transition: var(--transition-fast);
484
+ }
485
+
486
+ .btn-primary {
487
+ background: var(--hr-rust);
488
+ color: #ffffff;
489
+ box-shadow: 0 4px 14px var(--hr-rust-glow);
490
+ }
491
+
492
+ .btn-primary:hover {
493
+ background: var(--hr-rust-hover);
494
+ box-shadow: 0 6px 20px rgba(225, 91, 55, 0.4);
495
+ transform: translateY(-1px);
496
+ }
497
+
498
+ .btn-success {
499
+ background: var(--hr-emerald);
500
+ color: #0b0c10;
501
+ font-weight: 700;
502
+ }
503
+
504
+ .btn-success:hover {
505
+ background: #2ebd84;
506
+ transform: translateY(-1px);
507
+ }
508
+
509
+ .btn-secondary {
510
+ background: var(--hr-surface-hover);
511
+ color: var(--text-primary);
512
+ border-color: var(--border-subtle);
513
+ }
514
+
515
+ .btn-secondary:hover {
516
+ background: var(--hr-surface-elevated);
517
+ border-color: var(--hr-line-strong);
518
+ }
519
+
520
+ .btn-outline {
521
+ background: transparent;
522
+ color: var(--text-primary);
523
+ border-color: var(--border-subtle);
524
+ }
525
+
526
+ .btn-outline:hover {
527
+ background: rgba(255, 255, 255, 0.05);
528
+ border-color: var(--hr-line-strong);
529
+ }
530
+
531
+ .btn-block { width: 100%; }
532
+ .btn-lg { padding: 12px 24px; font-size: 14px; }
533
+ .btn-sm { padding: 6px 14px; font-size: 12px; }
534
+ .btn-xs { padding: 4px 10px; font-size: 11px; }
535
+
536
+ /* Main Content Area */
537
+ .main-content {
538
+ flex: 1;
539
+ display: flex;
540
+ flex-direction: column;
541
+ }
542
+
543
+ /* Workspace Hero Banner */
544
+ .welcome-banner {
545
+ padding: 32px;
546
+ margin-bottom: 32px;
547
+ display: flex;
548
+ align-items: center;
549
+ justify-content: space-between;
550
+ gap: 24px;
551
+ }
552
+
553
+ .banner-logo-wrapper {
554
+ width: 64px;
555
+ height: 64px;
556
+ background: transparent;
557
+ border: none;
558
+ border-radius: 0;
559
+ padding: 0;
560
+ display: flex;
561
+ align-items: center;
562
+ justify-content: center;
563
+ box-shadow: none;
564
+ }
565
+
566
+ .banner-hero-logo {
567
+ width: 64px;
568
+ height: 64px;
569
+ object-fit: contain;
570
+ filter: drop-shadow(0 0 16px rgba(56, 189, 248, 0.4));
571
+ }
572
+
573
+ .banner-content {
574
+ flex: 1;
575
+ }
576
+
577
+ .banner-content h1 {
578
+ font-size: 28px;
579
+ margin-bottom: 6px;
580
+ }
581
+
582
+ .banner-content p {
583
+ color: var(--text-secondary);
584
+ font-size: 14px;
585
+ max-width: 620px;
586
+ }
587
+
588
+ /* Card Grids */
589
+ .grid-2col {
590
+ display: grid;
591
+ grid-template-columns: repeat(2, 1fr);
592
+ gap: 24px;
593
+ }
594
+
595
+ @media (max-width: 900px) {
596
+ .grid-2col { grid-template-columns: 1fr; }
597
+ }
598
+
599
+ .card {
600
+ border-radius: var(--radius-lg);
601
+ overflow: hidden;
602
+ }
603
+
604
+ .card-header {
605
+ padding: 20px 24px;
606
+ border-bottom: 1px solid var(--border-subtle);
607
+ }
608
+
609
+ .card-header h3 {
610
+ font-size: 16px;
611
+ display: flex;
612
+ align-items: center;
613
+ gap: 10px;
614
+ }
615
+
616
+ .card-header p.subtitle {
617
+ color: var(--text-secondary);
618
+ font-size: 12px;
619
+ margin-top: 4px;
620
+ }
621
+
622
+ .card-body {
623
+ padding: 24px;
624
+ }
625
+
626
+ /* Form Controls */
627
+ .form-group {
628
+ margin-bottom: 18px;
629
+ }
630
+
631
+ .form-group label {
632
+ display: block;
633
+ font-size: 12px;
634
+ font-weight: 600;
635
+ color: var(--text-secondary);
636
+ margin-bottom: 8px;
637
+ text-transform: uppercase;
638
+ letter-spacing: 0.04em;
639
+ }
640
+
641
+ .input-control, input[type="text"], input[type="email"], input[type="password"], input[type="url"], select {
642
+ width: 100%;
643
+ background: rgba(8, 9, 12, 0.8);
644
+ border: 1px solid var(--border-subtle);
645
+ color: var(--text-primary);
646
+ padding: 10px 14px;
647
+ border-radius: var(--radius-md);
648
+ font-family: var(--font-sans);
649
+ font-size: 13px;
650
+ outline: none;
651
+ transition: var(--transition-fast);
652
+ }
653
+
654
+ .input-control:focus, input:focus, select:focus {
655
+ border-color: var(--hr-rust);
656
+ box-shadow: 0 0 14px var(--hr-rust-glow);
657
+ }
658
+
659
+ .input-wrapper {
660
+ position: relative;
661
+ }
662
+
663
+ .btn-toggle-pwd {
664
+ position: absolute;
665
+ right: 12px;
666
+ top: 50%;
667
+ transform: translateY(-50%);
668
+ background: transparent;
669
+ border: none;
670
+ color: var(--text-tertiary);
671
+ cursor: pointer;
672
+ }
673
+
674
+ .btn-toggle-pwd:hover {
675
+ color: var(--text-primary);
676
+ }
677
+
678
+ /* Password Strength Meter */
679
+ .strength-meter {
680
+ height: 4px;
681
+ background: rgba(255, 255, 255, 0.1);
682
+ border-radius: var(--radius-pill);
683
+ margin-top: 8px;
684
+ overflow: hidden;
685
+ }
686
+
687
+ .strength-bar {
688
+ height: 100%;
689
+ width: 0%;
690
+ transition: width 0.3s ease, background-color 0.3s ease;
691
+ }
692
+
693
+ /* Credit Stats Grid */
694
+ .credit-stats-grid {
695
+ display: grid;
696
+ grid-template-columns: repeat(3, 1fr);
697
+ gap: 16px;
698
+ margin-bottom: 24px;
699
+ }
700
+
701
+ .credit-stat-box {
702
+ background: rgba(8, 9, 12, 0.6);
703
+ border: 1px solid var(--border-subtle);
704
+ border-radius: var(--radius-md);
705
+ padding: 16px;
706
+ display: flex;
707
+ flex-direction: column;
708
+ gap: 6px;
709
+ }
710
+
711
+ .credit-stat-label {
712
+ font-size: 11px;
713
+ color: var(--text-tertiary);
714
+ text-transform: uppercase;
715
+ letter-spacing: 0.05em;
716
+ }
717
+
718
+ .credit-stat-val {
719
+ font-size: 22px;
720
+ font-weight: 700;
721
+ }
722
+
723
+ .credit-bar-wrapper {
724
+ background: rgba(8, 9, 12, 0.6);
725
+ border: 1px solid var(--border-subtle);
726
+ border-radius: var(--radius-md);
727
+ padding: 16px;
728
+ margin-bottom: 20px;
729
+ }
730
+
731
+ .credit-bar-header {
732
+ display: flex;
733
+ align-items: center;
734
+ justify-content: space-between;
735
+ font-size: 13px;
736
+ margin-bottom: 10px;
737
+ }
738
+
739
+ .credit-progress-track {
740
+ height: 8px;
741
+ background: rgba(255, 255, 255, 0.08);
742
+ border-radius: var(--radius-pill);
743
+ overflow: hidden;
744
+ }
745
+
746
+ .credit-progress-fill {
747
+ height: 100%;
748
+ width: 0%;
749
+ border-radius: var(--radius-pill);
750
+ transition: width 0.5s ease;
751
+ }
752
+
753
+ .credit-renew-box {
754
+ display: flex;
755
+ align-items: center;
756
+ gap: 14px;
757
+ background: rgba(225, 91, 55, 0.06);
758
+ border: 1px solid rgba(225, 91, 55, 0.2);
759
+ border-radius: var(--radius-md);
760
+ padding: 14px 18px;
761
+ }
762
+
763
+ /* Data Table */
764
+ .data-table {
765
+ width: 100%;
766
+ border-collapse: collapse;
767
+ margin-top: 12px;
768
+ }
769
+
770
+ .data-table th {
771
+ text-align: left;
772
+ font-size: 11px;
773
+ color: var(--text-tertiary);
774
+ text-transform: uppercase;
775
+ letter-spacing: 0.06em;
776
+ padding: 10px 14px;
777
+ border-bottom: 1px solid var(--border-subtle);
778
+ }
779
+
780
+ .data-table td {
781
+ padding: 12px 14px;
782
+ border-bottom: 1px solid rgba(255, 255, 255, 0.04);
783
+ font-size: 13px;
784
+ }
785
+
786
+ .badge {
787
+ display: inline-flex;
788
+ align-items: center;
789
+ gap: 6px;
790
+ padding: 3px 10px;
791
+ border-radius: var(--radius-pill);
792
+ font-size: 11px;
793
+ font-weight: 600;
794
+ background: rgba(255, 255, 255, 0.08);
795
+ color: var(--text-secondary);
796
+ }
797
+
798
+ .badge-success { background: rgba(52, 211, 153, 0.12); color: var(--hr-emerald); border: 1px solid rgba(52, 211, 153, 0.25); }
799
+ .badge-accent { background: rgba(56, 189, 248, 0.12); color: var(--hr-cyan); border: 1px solid rgba(56, 189, 248, 0.25); }
800
+
801
+ /* Pricing Cards Grid */
802
+ .tiers-pricing-grid {
803
+ display: grid;
804
+ grid-template-columns: repeat(3, 1fr);
805
+ gap: 24px;
806
+ margin-top: 32px;
807
+ }
808
+
809
+ @media (max-width: 900px) {
810
+ .tiers-pricing-grid { grid-template-columns: 1fr; }
811
+ }
812
+
813
+ .pricing-card {
814
+ padding: 32px 24px;
815
+ display: flex;
816
+ flex-direction: column;
817
+ justify-content: space-between;
818
+ position: relative;
819
+ transition: transform var(--transition-normal), border-color var(--transition-normal);
820
+ }
821
+
822
+ .pricing-card:hover {
823
+ transform: translateY(-6px);
824
+ }
825
+
826
+ .popular-tier {
827
+ border-color: var(--hr-rust);
828
+ box-shadow: 0 0 35px var(--hr-rust-glow);
829
+ }
830
+
831
+ .popular-badge {
832
+ position: absolute;
833
+ top: -14px;
834
+ left: 50%;
835
+ transform: translateX(-50%);
836
+ background: var(--hr-rust);
837
+ color: #ffffff;
838
+ font-size: 10px;
839
+ font-weight: 800;
840
+ letter-spacing: 0.12em;
841
+ padding: 4px 14px;
842
+ border-radius: var(--radius-pill);
843
+ text-transform: uppercase;
844
+ }
845
+
846
+ .pricing-header { text-align: center; margin-bottom: 24px; }
847
+ .plan-icon { font-size: 28px; margin-bottom: 12px; color: var(--text-secondary); }
848
+ .plan-icon.icon-primary { color: var(--hr-rust); }
849
+ .plan-icon.icon-warning { color: var(--hr-amber); }
850
+ .plan-name { font-size: 20px; margin-bottom: 6px; }
851
+ .plan-desc { color: var(--text-secondary); font-size: 12px; min-height: 36px; }
852
+
853
+ .plan-price {
854
+ margin-top: 16px;
855
+ display: flex;
856
+ align-items: baseline;
857
+ justify-content: center;
858
+ }
859
+
860
+ .price-currency { font-size: 20px; font-weight: 600; color: var(--text-secondary); }
861
+ .price-val { font-size: 42px; font-weight: 800; color: var(--text-primary); margin: 0 2px; }
862
+ .price-period { font-size: 12px; color: var(--text-tertiary); }
863
+
864
+ .plan-features {
865
+ list-style: none;
866
+ margin-bottom: 32px;
867
+ display: flex;
868
+ flex-direction: column;
869
+ gap: 12px;
870
+ }
871
+
872
+ .plan-features li {
873
+ font-size: 13px;
874
+ display: flex;
875
+ align-items: center;
876
+ gap: 10px;
877
+ }
878
+
879
+ /* Feature Comparison Table */
880
+ .matrix-section { margin-top: 48px; }
881
+ .matrix-table { width: 100%; border-collapse: collapse; margin-top: 20px; }
882
+ .matrix-table th, .matrix-table td { padding: 14px 18px; text-align: center; border-bottom: 1px solid var(--border-subtle); }
883
+ .matrix-table th:first-child, .matrix-table td:first-child { text-align: left; }
884
+
885
+ /* FAQ Accordions */
886
+ .faq-section { margin-top: 48px; }
887
+ .faq-item { border-bottom: 1px solid var(--border-subtle); padding: 16px 0; }
888
+ .faq-question { width: 100%; background: transparent; border: none; color: var(--text-primary); font-size: 15px; font-weight: 600; text-align: left; display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
889
+ .faq-answer { color: var(--text-secondary); font-size: 13px; margin-top: 10px; display: none; line-height: 1.6; }
890
+ .faq-item.open .faq-answer { display: block; }
891
+ .faq-item.open .faq-question i { transform: rotate(180deg); }
892
+
893
+ /* Terminal Styling */
894
+ .terminal-window {
895
+ background: #060709;
896
+ border: 1px solid var(--border-subtle);
897
+ border-radius: var(--radius-md);
898
+ overflow: hidden;
899
+ }
900
+
901
+ .terminal-topbar {
902
+ background: rgba(18, 20, 26, 0.9);
903
+ padding: 10px 16px;
904
+ display: flex;
905
+ align-items: center;
906
+ justify-content: space-between;
907
+ border-bottom: 1px solid var(--border-subtle);
908
+ }
909
+
910
+ .terminal-dots { display: flex; gap: 6px; }
911
+ .dot { width: 10px; height: 10px; border-radius: 50%; }
912
+ .dot-red { background: #ef4444; }
913
+ .dot-yellow { background: #eab308; }
914
+ .dot-green { background: #22c55e; }
915
+ .terminal-title { font-family: var(--font-mono); font-size: 11px; color: var(--text-tertiary); }
916
+
917
+ .terminal-body {
918
+ padding: 20px;
919
+ font-family: var(--font-mono);
920
+ font-size: 13px;
921
+ color: #e2e8f0;
922
+ min-height: 240px;
923
+ }
924
+
925
+ .terminal-line { margin-bottom: 12px; }
926
+ .prompt-user { color: var(--hr-emerald); }
927
+ .prompt-path { color: var(--hr-cyan); }
928
+ .cmd-text { color: #f8fafc; font-weight: 600; }
929
+
930
+ .terminal-input-row {
931
+ display: flex;
932
+ align-items: center;
933
+ gap: 10px;
934
+ margin-top: 14px;
935
+ }
936
+
937
+ .terminal-input {
938
+ flex: 1;
939
+ background: transparent;
940
+ border: none;
941
+ color: #ffffff;
942
+ font-family: var(--font-mono);
943
+ font-size: 13px;
944
+ outline: none;
945
+ }
946
+
947
+ .term-green { color: var(--hr-emerald); }
948
+ .term-yellow { color: var(--hr-amber); }
949
+ .term-purple { color: var(--hr-violet); }
950
+ .term-bg-cyan { background: var(--hr-cyan); color: #0b0c10; padding: 2px 6px; font-weight: 700; border-radius: 3px; }
951
+ .term-dim { color: var(--text-tertiary); }
952
+
953
+ /* Arcade Cabinet Styling */
954
+ .arcade-card { padding: 24px; }
955
+ .arcade-header { margin-bottom: 20px; }
956
+ .arcade-cabinet-frame {
957
+ background: #040507;
958
+ border: 4px solid #1c202d;
959
+ border-radius: var(--radius-lg);
960
+ padding: 16px;
961
+ box-shadow: 0 0 40px rgba(0, 0, 0, 0.8), inset 0 0 20px rgba(0, 0, 0, 0.9);
962
+ }
963
+
964
+ .arcade-screen {
965
+ position: relative;
966
+ border-radius: var(--radius-md);
967
+ overflow: hidden;
968
+ }
969
+
970
+ .arcade-screen.crt-active::after {
971
+ content: " ";
972
+ display: block;
973
+ position: absolute;
974
+ top: 0; left: 0; bottom: 0; right: 0;
975
+ background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%);
976
+ background-size: 100% 4px;
977
+ pointer-events: none;
978
+ z-index: 10;
979
+ }
980
+
981
+ .arcade-score-bar {
982
+ display: flex;
983
+ justify-content: space-around;
984
+ width: 100%;
985
+ max-width: 448px;
986
+ margin-bottom: 12px;
987
+ background: rgba(8, 9, 12, 0.8);
988
+ padding: 10px;
989
+ border-radius: var(--radius-md);
990
+ border: 1px solid var(--border-subtle);
991
+ }
992
+
993
+ .score-box { display: flex; flex-direction: column; align-items: center; }
994
+ .score-label { font-size: 10px; color: var(--text-tertiary); font-family: var(--font-mono); }
995
+ .score-val { font-family: var(--font-mono); font-size: 16px; font-weight: 700; }
996
+
997
+ .arcade-overlay {
998
+ position: absolute;
999
+ top: 0; left: 0; width: 100%; height: 100%;
1000
+ background: rgba(8, 9, 12, 0.88);
1001
+ backdrop-filter: blur(8px);
1002
+ display: flex;
1003
+ align-items: center;
1004
+ justify-content: center;
1005
+ z-index: 20;
1006
+ }
1007
+
1008
+ .overlay-content { text-align: center; }
1009
+ .arcade-heading { font-size: 32px; margin-bottom: 8px; }
1010
+ .overlay-desc { color: var(--text-secondary); margin-bottom: 20px; font-size: 13px; }
1011
+
1012
+ /* D-Pad Touch Controls */
1013
+ .arcade-dpad-container { margin-top: 16px; display: flex; flex-direction: column; align-items: center; }
1014
+ .dpad-row { display: flex; gap: 4px; }
1015
+ .dpad-btn { width: 44px; height: 44px; background: var(--hr-surface-card); border: 1px solid var(--border-subtle); color: var(--text-primary); border-radius: var(--radius-sm); font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
1016
+ .dpad-btn:active { background: var(--hr-rust); }
1017
+ .dpad-center { width: 44px; height: 44px; }
1018
+
1019
+ /* Auth Card Layout */
1020
+ .auth-section { display: flex; justify-content: center; padding: 40px 0; }
1021
+ .auth-card { width: 100%; max-width: 460px; padding: 36px 32px; }
1022
+ .auth-header { text-align: center; margin-bottom: 24px; }
1023
+ .auth-logo-badge { width: 52px; height: 52px; margin: 0 auto 12px; background: transparent; border: none; border-radius: 0; padding: 0; display: flex; align-items: center; justify-content: center; }
1024
+ .auth-logo-img { width: 52px; height: 52px; object-fit: contain; filter: drop-shadow(0 0 14px rgba(56, 189, 248, 0.4)); }
1025
+ .auth-header h2 { font-size: 22px; margin-bottom: 6px; }
1026
+ .auth-header p { color: var(--text-secondary); font-size: 12px; }
1027
+
1028
+ .auth-tabs { display: flex; background: rgba(8, 9, 12, 0.8); padding: 4px; border-radius: var(--radius-pill); border: 1px solid var(--border-subtle); margin-bottom: 24px; }
1029
+ .auth-tab { flex: 1; background: transparent; border: none; color: var(--text-secondary); font-size: 13px; font-weight: 600; padding: 8px 0; border-radius: var(--radius-pill); cursor: pointer; transition: var(--transition-fast); }
1030
+ .auth-tab.active { background: var(--hr-rust); color: #ffffff; }
1031
+
1032
+ .auth-demo-box { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--border-subtle); display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: var(--text-tertiary); }
1033
+
1034
+ /* Modal & Toast */
1035
+ .modal-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(4, 5, 7, 0.85); backdrop-filter: blur(12px); display: flex; align-items: center; justify-content: center; z-index: 200; }
1036
+ .modal-card { width: 100%; max-width: 520px; padding: 28px; }
1037
+
1038
+ .toast-container { position: fixed; bottom: 24px; right: 24px; z-index: 300; display: flex; flex-direction: column; gap: 10px; }
1039
+ .toast { background: var(--hr-surface-card); border: 1px solid var(--hr-line-strong); color: var(--text-primary); padding: 12px 18px; border-radius: var(--radius-md); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); display: flex; align-items: center; gap: 10px; font-size: 13px; animation: slideIn 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
1040
+ .toast-success i { color: var(--hr-emerald); }
1041
+ .toast-error i { color: var(--hr-rose); }
1042
+ .toast-info i { color: var(--hr-cyan); }
1043
+
1044
+ @keyframes slideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
1045
+
1046
+ /* Footer */
1047
+ .footer { border-top: 1px solid var(--border-subtle); margin-top: auto; padding: 32px 0; }
1048
+ .footer-content { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
1049
+ .footer-brand { display: flex; align-items: center; gap: 8px; }
1050
+ .footer-logo-img { width: 24px; height: 24px; }
1051
+ .footer-brand-title { font-weight: 800; font-size: 14px; letter-spacing: 0.08em; }
1052
+ .footer p { color: var(--text-tertiary); font-size: 12px; }
1053
+ .footer-links { display: flex; gap: 16px; }
1054
+ .footer-links a { color: var(--text-secondary); text-decoration: none; font-size: 12px; transition: var(--transition-fast); }
1055
+ .footer-links a:hover { color: var(--hr-rust); }
1056
+
1057
+ /* ==========================================================================
1058
+ Visual Perception & Automation Engine v1.1.0
1059
+ ========================================================================== */
1060
+ .vision-banner {
1061
+ margin-bottom: 28px;
1062
+ position: relative;
1063
+ overflow: hidden;
1064
+ border: 1px solid rgba(0, 229, 255, 0.28);
1065
+ box-shadow: 0 8px 32px -8px rgba(0, 229, 255, 0.15);
1066
+ background: radial-gradient(ellipse at 90% 10%, rgba(0, 229, 255, 0.08) 0%, rgba(21, 24, 33, 0.85) 60%);
1067
+ }
1068
+
1069
+ .vision-banner::before {
1070
+ content: '';
1071
+ position: absolute;
1072
+ top: 0;
1073
+ left: 0;
1074
+ right: 0;
1075
+ height: 2px;
1076
+ background: linear-gradient(90deg, transparent, #00e5ff, #38bdf8, transparent);
1077
+ animation: auraScanline 3s ease-in-out infinite;
1078
+ }
1079
+
1080
+ @keyframes auraScanline {
1081
+ 0%, 100% { opacity: 0.4; }
1082
+ 50% { opacity: 1; }
1083
+ }
1084
+
1085
+ .vision-grid {
1086
+ display: grid;
1087
+ grid-template-columns: repeat(3, 1fr);
1088
+ gap: 16px;
1089
+ margin-top: 20px;
1090
+ }
1091
+
1092
+ @media (max-width: 860px) {
1093
+ .vision-grid {
1094
+ grid-template-columns: 1fr;
1095
+ }
1096
+ }
1097
+
1098
+ .vision-feature-pill {
1099
+ background: rgba(16, 18, 24, 0.6);
1100
+ border: 1px solid rgba(255, 255, 255, 0.07);
1101
+ border-radius: var(--radius-md);
1102
+ padding: 16px;
1103
+ transition: var(--transition-normal);
1104
+ position: relative;
1105
+ }
1106
+
1107
+ .vision-feature-pill:hover {
1108
+ border-color: rgba(0, 229, 255, 0.4);
1109
+ background: rgba(28, 32, 45, 0.7);
1110
+ transform: translateY(-2px);
1111
+ }
1112
+
1113
+ .vision-icon-aura {
1114
+ width: 40px;
1115
+ height: 40px;
1116
+ border-radius: 10px;
1117
+ background: rgba(0, 229, 255, 0.12);
1118
+ color: #00e5ff;
1119
+ display: flex;
1120
+ align-items: center;
1121
+ justify-content: center;
1122
+ font-size: 18px;
1123
+ margin-bottom: 12px;
1124
+ border: 1px solid rgba(0, 229, 255, 0.3);
1125
+ box-shadow: 0 0 14px rgba(0, 229, 255, 0.25);
1126
+ }
1127
+
1128
+ .vision-badge-live {
1129
+ display: inline-flex;
1130
+ align-items: center;
1131
+ gap: 6px;
1132
+ font-size: 11px;
1133
+ font-weight: 700;
1134
+ text-transform: uppercase;
1135
+ letter-spacing: 0.08em;
1136
+ padding: 3px 10px;
1137
+ border-radius: 9999px;
1138
+ background: rgba(0, 229, 255, 0.15);
1139
+ color: #00e5ff;
1140
+ border: 1px solid rgba(0, 229, 255, 0.4);
1141
+ }
1142
+
1143
+ .aura-dot-pulse {
1144
+ width: 7px;
1145
+ height: 7px;
1146
+ background-color: #00e5ff;
1147
+ border-radius: 50%;
1148
+ box-shadow: 0 0 8px #00e5ff;
1149
+ animation: blink 1.2s ease-in-out infinite;
1150
+ }
1151
+
1152
+ /* ==========================================================================
1153
+ Mobile & Responsive Layout Media Queries
1154
+ ========================================================================== */
1155
+
1156
+ /* Tablet & Smaller Laptops (<= 992px) */
1157
+ @media (max-width: 992px) {
1158
+ .app-wrapper {
1159
+ padding: 0 16px;
1160
+ }
1161
+
1162
+ .welcome-banner {
1163
+ padding: 24px;
1164
+ }
1165
+
1166
+ .banner-content h1 {
1167
+ font-size: 24px;
1168
+ }
1169
+
1170
+ .tiers-pricing-grid {
1171
+ grid-template-columns: repeat(2, 1fr);
1172
+ }
1173
+ }
1174
+
1175
+ /* Mobile Devices & Small Tablets (<= 768px) */
1176
+ @media (max-width: 768px) {
1177
+ /* Announcement Bar */
1178
+ .announcement-bar {
1179
+ font-size: 0.65rem;
1180
+ padding: 0.45rem 0.6rem;
1181
+ letter-spacing: 0.05em;
1182
+ }
1183
+
1184
+ /* Header & Navigation Bar */
1185
+ .navbar {
1186
+ flex-wrap: wrap;
1187
+ padding: 14px 0;
1188
+ margin-bottom: 20px;
1189
+ gap: 12px;
1190
+ }
1191
+
1192
+ .nav-left {
1193
+ gap: 10px;
1194
+ }
1195
+
1196
+ .brand-title {
1197
+ font-size: 16px;
1198
+ }
1199
+
1200
+ .brand-subtitle {
1201
+ font-size: 10px;
1202
+ }
1203
+
1204
+ .version-badge {
1205
+ font-size: 10px;
1206
+ padding: 1px 7px;
1207
+ }
1208
+
1209
+ /* Full-width responsive tab menu for mobile nav links */
1210
+ .nav-links {
1211
+ width: 100%;
1212
+ order: 3;
1213
+ justify-content: space-around;
1214
+ padding: 4px;
1215
+ margin-top: 4px;
1216
+ background: rgba(16, 18, 24, 0.95);
1217
+ backdrop-filter: blur(16px);
1218
+ -webkit-backdrop-filter: blur(16px);
1219
+ }
1220
+
1221
+ .nav-btn {
1222
+ padding: 8px 10px;
1223
+ font-size: 12px;
1224
+ flex: 1;
1225
+ justify-content: center;
1226
+ }
1227
+
1228
+ .nav-right {
1229
+ gap: 8px;
1230
+ }
1231
+
1232
+ /* Welcome Banner */
1233
+ .welcome-banner {
1234
+ flex-direction: column;
1235
+ align-items: flex-start;
1236
+ gap: 16px;
1237
+ padding: 20px 16px;
1238
+ margin-bottom: 20px;
1239
+ }
1240
+
1241
+ .banner-content h1 {
1242
+ font-size: 20px;
1243
+ }
1244
+
1245
+ .banner-content p {
1246
+ font-size: 13px;
1247
+ }
1248
+
1249
+ /* Grid Layouts */
1250
+ .grid-2col {
1251
+ grid-template-columns: 1fr;
1252
+ gap: 16px;
1253
+ }
1254
+
1255
+ .credit-stats-grid {
1256
+ grid-template-columns: 1fr;
1257
+ gap: 12px;
1258
+ }
1259
+
1260
+ .credit-stat-val {
1261
+ font-size: 18px;
1262
+ }
1263
+
1264
+ .credit-renew-box {
1265
+ flex-direction: column;
1266
+ align-items: flex-start;
1267
+ gap: 8px;
1268
+ padding: 12px 14px;
1269
+ }
1270
+
1271
+ .credit-renew-box .btn {
1272
+ margin-left: 0 !important;
1273
+ width: 100%;
1274
+ }
1275
+
1276
+ /* Pricing Grid & Cards */
1277
+ .tiers-pricing-grid {
1278
+ grid-template-columns: 1fr;
1279
+ gap: 20px;
1280
+ }
1281
+
1282
+ .pricing-card {
1283
+ padding: 24px 18px;
1284
+ }
1285
+
1286
+ .plan-price .price-val {
1287
+ font-size: 36px;
1288
+ }
1289
+
1290
+ .pricing-header-wrapper {
1291
+ flex-direction: column;
1292
+ gap: 12px;
1293
+ align-items: flex-start !important;
1294
+ }
1295
+
1296
+ /* Feature Comparison Table horizontal scroll container */
1297
+ .matrix-section {
1298
+ overflow-x: auto;
1299
+ -webkit-overflow-scrolling: touch;
1300
+ margin-top: 32px;
1301
+ padding: 18px 14px !important;
1302
+ }
1303
+
1304
+ .matrix-table {
1305
+ min-width: 520px;
1306
+ }
1307
+
1308
+ /* Dynamic Session & Data Tables Scroll Container */
1309
+ .session-table-wrapper {
1310
+ overflow-x: auto;
1311
+ -webkit-overflow-scrolling: touch;
1312
+ width: 100%;
1313
+ }
1314
+
1315
+ .data-table {
1316
+ min-width: 480px;
1317
+ }
1318
+
1319
+ /* Web CLI Terminal Window */
1320
+ .terminal-card {
1321
+ margin-bottom: 20px;
1322
+ }
1323
+
1324
+ .card-header {
1325
+ padding: 16px;
1326
+ flex-direction: column;
1327
+ align-items: flex-start !important;
1328
+ gap: 10px;
1329
+ }
1330
+
1331
+ .card-body {
1332
+ padding: 16px 12px;
1333
+ }
1334
+
1335
+ .terminal-topbar {
1336
+ padding: 8px 12px;
1337
+ }
1338
+
1339
+ .terminal-body {
1340
+ padding: 14px 10px;
1341
+ font-size: 12px;
1342
+ min-height: 200px;
1343
+ word-break: break-word;
1344
+ }
1345
+
1346
+ .terminal-input-row {
1347
+ gap: 6px;
1348
+ }
1349
+
1350
+ .terminal-input {
1351
+ font-size: 14px; /* Prevents iOS mobile browser auto-zoom */
1352
+ }
1353
+
1354
+ .cli-command-chips {
1355
+ gap: 6px !important;
1356
+ }
1357
+
1358
+ .btn-cli-chip {
1359
+ font-size: 10px;
1360
+ padding: 3px 8px;
1361
+ }
1362
+
1363
+ /* Pacman Arcade Section */
1364
+ .arcade-card {
1365
+ padding: 16px 12px;
1366
+ }
1367
+
1368
+ .arcade-header {
1369
+ flex-direction: column;
1370
+ align-items: flex-start !important;
1371
+ gap: 10px;
1372
+ margin-bottom: 14px;
1373
+ }
1374
+
1375
+ .arcade-cabinet-frame {
1376
+ padding: 8px;
1377
+ border-width: 2px;
1378
+ width: 100%;
1379
+ max-width: 100%;
1380
+ }
1381
+
1382
+ .arcade-screen {
1383
+ width: 100%;
1384
+ max-width: 100%;
1385
+ }
1386
+
1387
+ #pacman-canvas {
1388
+ width: 100% !important;
1389
+ max-width: 100% !important;
1390
+ height: auto !important;
1391
+ aspect-ratio: 448 / 496;
1392
+ display: block;
1393
+ margin: 0 auto;
1394
+ }
1395
+
1396
+ .arcade-score-bar {
1397
+ display: grid;
1398
+ grid-template-columns: repeat(2, 1fr);
1399
+ gap: 8px;
1400
+ padding: 8px;
1401
+ max-width: 100%;
1402
+ }
1403
+
1404
+ .score-val {
1405
+ font-size: 14px;
1406
+ }
1407
+
1408
+ .arcade-heading {
1409
+ font-size: 24px;
1410
+ }
1411
+
1412
+ .overlay-desc {
1413
+ font-size: 12px;
1414
+ }
1415
+
1416
+ .arcade-btn-group {
1417
+ flex-direction: column;
1418
+ gap: 8px;
1419
+ width: 100%;
1420
+ }
1421
+
1422
+ .arcade-btn-group .btn {
1423
+ width: 100%;
1424
+ }
1425
+
1426
+ .dpad-btn {
1427
+ width: 52px;
1428
+ height: 52px;
1429
+ font-size: 22px;
1430
+ }
1431
+
1432
+ .dpad-center {
1433
+ width: 52px;
1434
+ height: 52px;
1435
+ }
1436
+
1437
+ /* Authentication Page */
1438
+ .auth-section {
1439
+ padding: 16px 0;
1440
+ }
1441
+
1442
+ .auth-card {
1443
+ padding: 24px 16px;
1444
+ max-width: 100%;
1445
+ margin: 0 4px;
1446
+ }
1447
+
1448
+ .auth-header h2 {
1449
+ font-size: 20px;
1450
+ }
1451
+
1452
+ .auth-demo-box {
1453
+ flex-direction: column;
1454
+ gap: 10px;
1455
+ align-items: center;
1456
+ text-align: center;
1457
+ }
1458
+
1459
+ /* Modals & Toasts */
1460
+ .modal-card {
1461
+ width: 95%;
1462
+ padding: 20px 16px;
1463
+ max-height: 90vh;
1464
+ overflow-y: auto;
1465
+ }
1466
+
1467
+ .toast-container {
1468
+ bottom: 16px;
1469
+ right: 12px;
1470
+ left: 12px;
1471
+ width: auto;
1472
+ }
1473
+
1474
+ .toast {
1475
+ font-size: 12px;
1476
+ padding: 10px 14px;
1477
+ }
1478
+
1479
+ /* Footer */
1480
+ .footer {
1481
+ padding: 24px 0;
1482
+ }
1483
+
1484
+ .footer-content {
1485
+ flex-direction: column;
1486
+ align-items: center;
1487
+ text-align: center;
1488
+ gap: 14px;
1489
+ }
1490
+
1491
+ .footer-links {
1492
+ flex-wrap: wrap;
1493
+ justify-content: center;
1494
+ }
1495
+ }
1496
+
1497
+ /* Extra Small Mobile Devices (<= 480px) */
1498
+ @media (max-width: 480px) {
1499
+ .app-wrapper {
1500
+ padding: 0 10px;
1501
+ }
1502
+
1503
+ .navbar {
1504
+ margin-bottom: 16px;
1505
+ }
1506
+
1507
+ .btn {
1508
+ padding: 8px 14px;
1509
+ font-size: 12px;
1510
+ }
1511
+
1512
+ .btn-lg {
1513
+ padding: 10px 18px;
1514
+ font-size: 13px;
1515
+ }
1516
+
1517
+ .nav-user-name {
1518
+ display: none; /* Icon avatar only on small mobile screen */
1519
+ }
1520
+
1521
+ .user-menu-btn {
1522
+ padding: 4px 8px;
1523
+ }
1524
+
1525
+ .dropdown-menu {
1526
+ right: -10px;
1527
+ width: 220px;
1528
+ }
1529
+
1530
+ .faq-question {
1531
+ font-size: 14px;
1532
+ }
1533
+
1534
+ .faq-answer {
1535
+ font-size: 12px;
1536
+ }
1537
+ }
1538
+
1539
+ /* ==========================================================================
1540
+ Autonomous Agent Execution Monitor & Human-in-the-Loop Styles
1541
+ ========================================================================== */
1542
+ .agent-monitor-card {
1543
+ border: 1px solid rgba(0, 229, 255, 0.2);
1544
+ position: relative;
1545
+ overflow: hidden;
1546
+ }
1547
+
1548
+ .agent-monitor-card::before {
1549
+ content: '';
1550
+ position: absolute;
1551
+ top: 0;
1552
+ left: 0;
1553
+ right: 0;
1554
+ height: 2px;
1555
+ background: linear-gradient(90deg, #38bdf8, #818cf8, #e15b37);
1556
+ opacity: 0.8;
1557
+ }
1558
+
1559
+ .agent-pulse-icon {
1560
+ width: 36px;
1561
+ height: 36px;
1562
+ border-radius: 8px;
1563
+ background: rgba(0, 229, 255, 0.12);
1564
+ border: 1px solid rgba(0, 229, 255, 0.3);
1565
+ display: flex;
1566
+ align-items: center;
1567
+ justify-content: center;
1568
+ font-size: 18px;
1569
+ animation: pulse-border 2.5s infinite;
1570
+ }
1571
+
1572
+ @keyframes pulse-border {
1573
+ 0%, 100% { box-shadow: 0 0 0 0 rgba(0, 229, 255, 0.4); }
1574
+ 50% { box-shadow: 0 0 12px 2px rgba(0, 229, 255, 0.3); }
1575
+ }
1576
+
1577
+ .approval-alert-box {
1578
+ animation: slide-down 0.3s ease-out;
1579
+ }
1580
+
1581
+ @keyframes slide-down {
1582
+ from { opacity: 0; transform: translateY(-8px); }
1583
+ to { opacity: 1; transform: translateY(0); }
1584
+ }
1585
+
1586
+ .agent-plan-step-item {
1587
+ display: flex;
1588
+ align-items: center;
1589
+ gap: 10px;
1590
+ padding: 6px 10px;
1591
+ border-radius: 4px;
1592
+ font-size: 0.82rem;
1593
+ background: rgba(255, 255, 255, 0.03);
1594
+ border: 1px solid rgba(255, 255, 255, 0.04);
1595
+ }
1596
+
1597
+ .agent-plan-step-item.step-completed {
1598
+ border-left: 3px solid #10b981;
1599
+ }
1600
+
1601
+ .agent-plan-step-item.step-in_progress {
1602
+ border-left: 3px solid #38bdf8;
1603
+ background: rgba(56, 189, 248, 0.08);
1604
+ }
1605
+
1606
+ .agent-plan-step-item.step-failed {
1607
+ border-left: 3px solid #ef4444;
1608
+ background: rgba(239, 68, 68, 0.08);
1609
+ }
1610
+
1611
+ .agent-plan-step-item.step-pending {
1612
+ opacity: 0.65;
1613
+ }
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
+