agent-nuvira 3.3.1 → 3.3.4

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 (466) hide show
  1. package/README.md +18 -13
  2. package/dist/agent-sdk/src/agent.d.ts +2 -0
  3. package/dist/agent-sdk/src/agent.d.ts.map +1 -1
  4. package/dist/agent-sdk/src/define.d.ts +64 -0
  5. package/dist/agent-sdk/src/define.d.ts.map +1 -0
  6. package/dist/agent-sdk/src/define.js +76 -0
  7. package/dist/agent-sdk/src/define.js.map +1 -0
  8. package/dist/agent-sdk/src/index.d.ts +9 -0
  9. package/dist/agent-sdk/src/index.d.ts.map +1 -1
  10. package/dist/agent-sdk/src/index.js +9 -0
  11. package/dist/agent-sdk/src/index.js.map +1 -1
  12. package/dist/agent-sdk/src/scaffold.d.ts +11 -0
  13. package/dist/agent-sdk/src/scaffold.d.ts.map +1 -1
  14. package/dist/agent-sdk/src/scaffold.js +16 -6
  15. package/dist/agent-sdk/src/scaffold.js.map +1 -1
  16. package/dist/agents/agents/runner.d.ts +9 -0
  17. package/dist/agents/agents/runner.d.ts.map +1 -1
  18. package/dist/agents/agents/runner.js +34 -12
  19. package/dist/agents/agents/runner.js.map +1 -1
  20. package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
  21. package/dist/agents/agents/writer-tool-calling.js +7 -2
  22. package/dist/agents/agents/writer-tool-calling.js.map +1 -1
  23. package/dist/agents/agents/writer.d.ts.map +1 -1
  24. package/dist/agents/agents/writer.js +7 -1
  25. package/dist/agents/agents/writer.js.map +1 -1
  26. package/dist/agents/artifact-verification.d.ts +102 -0
  27. package/dist/agents/artifact-verification.d.ts.map +1 -0
  28. package/dist/agents/artifact-verification.js +216 -0
  29. package/dist/agents/artifact-verification.js.map +1 -0
  30. package/dist/agents/checkpoint-store.d.ts +73 -0
  31. package/dist/agents/checkpoint-store.d.ts.map +1 -1
  32. package/dist/agents/checkpoint-store.js +161 -0
  33. package/dist/agents/checkpoint-store.js.map +1 -1
  34. package/dist/agents/credential-store.d.ts +120 -0
  35. package/dist/agents/credential-store.d.ts.map +1 -1
  36. package/dist/agents/credential-store.js +358 -19
  37. package/dist/agents/credential-store.js.map +1 -1
  38. package/dist/agents/long-form-plan.d.ts.map +1 -1
  39. package/dist/agents/long-form-plan.js +2 -1
  40. package/dist/agents/long-form-plan.js.map +1 -1
  41. package/dist/agents/orchestrator.d.ts +10 -1
  42. package/dist/agents/orchestrator.d.ts.map +1 -1
  43. package/dist/agents/orchestrator.js +239 -79
  44. package/dist/agents/orchestrator.js.map +1 -1
  45. package/dist/agents/phase-engine.d.ts +61 -0
  46. package/dist/agents/phase-engine.d.ts.map +1 -1
  47. package/dist/agents/phase-engine.js +68 -2
  48. package/dist/agents/phase-engine.js.map +1 -1
  49. package/dist/agents/prompt-assembly.d.ts +11 -0
  50. package/dist/agents/prompt-assembly.d.ts.map +1 -1
  51. package/dist/agents/prompt-assembly.js +17 -0
  52. package/dist/agents/prompt-assembly.js.map +1 -1
  53. package/dist/agents/release-preflight.d.ts +121 -0
  54. package/dist/agents/release-preflight.d.ts.map +1 -0
  55. package/dist/agents/release-preflight.js +259 -0
  56. package/dist/agents/release-preflight.js.map +1 -0
  57. package/dist/agents/release-runner.d.ts +157 -0
  58. package/dist/agents/release-runner.d.ts.map +1 -0
  59. package/dist/agents/release-runner.js +719 -0
  60. package/dist/agents/release-runner.js.map +1 -0
  61. package/dist/agents/step-handoff.d.ts +190 -0
  62. package/dist/agents/step-handoff.d.ts.map +1 -0
  63. package/dist/agents/step-handoff.js +443 -0
  64. package/dist/agents/step-handoff.js.map +1 -0
  65. package/dist/cli/agent.d.ts +2 -2
  66. package/dist/cli/agent.js +10 -10
  67. package/dist/cli/benchmark.d.ts.map +1 -1
  68. package/dist/cli/benchmark.js +11 -4
  69. package/dist/cli/benchmark.js.map +1 -1
  70. package/dist/cli/chat.d.ts +94 -0
  71. package/dist/cli/chat.d.ts.map +1 -1
  72. package/dist/cli/chat.js +379 -24
  73. package/dist/cli/chat.js.map +1 -1
  74. package/dist/cli/cli-program.d.ts.map +1 -1
  75. package/dist/cli/cli-program.js +8 -0
  76. package/dist/cli/cli-program.js.map +1 -1
  77. package/dist/cli/config.d.ts.map +1 -1
  78. package/dist/cli/config.js +9 -1
  79. package/dist/cli/config.js.map +1 -1
  80. package/dist/cli/credentials.d.ts +28 -0
  81. package/dist/cli/credentials.d.ts.map +1 -0
  82. package/dist/cli/credentials.js +213 -0
  83. package/dist/cli/credentials.js.map +1 -0
  84. package/dist/cli/doctor.d.ts.map +1 -1
  85. package/dist/cli/doctor.js +3 -2
  86. package/dist/cli/doctor.js.map +1 -1
  87. package/dist/cli/edit.js +2 -2
  88. package/dist/cli/eval.d.ts +17 -0
  89. package/dist/cli/eval.d.ts.map +1 -1
  90. package/dist/cli/eval.js +105 -2
  91. package/dist/cli/eval.js.map +1 -1
  92. package/dist/cli/execute.d.ts +16 -1
  93. package/dist/cli/execute.d.ts.map +1 -1
  94. package/dist/cli/execute.js +192 -22
  95. package/dist/cli/execute.js.map +1 -1
  96. package/dist/cli/failover-runner.d.ts.map +1 -1
  97. package/dist/cli/failover-runner.js +9 -3
  98. package/dist/cli/failover-runner.js.map +1 -1
  99. package/dist/cli/loop-executor.d.ts +55 -0
  100. package/dist/cli/loop-executor.d.ts.map +1 -1
  101. package/dist/cli/loop-executor.js +285 -19
  102. package/dist/cli/loop-executor.js.map +1 -1
  103. package/dist/cli/model.d.ts.map +1 -1
  104. package/dist/cli/model.js +9 -8
  105. package/dist/cli/model.js.map +1 -1
  106. package/dist/cli/models.d.ts +1 -1
  107. package/dist/cli/models.js +4 -4
  108. package/dist/cli/nlu.d.ts.map +1 -1
  109. package/dist/cli/nlu.js +8 -2
  110. package/dist/cli/nlu.js.map +1 -1
  111. package/dist/cli/parity.d.ts +85 -0
  112. package/dist/cli/parity.d.ts.map +1 -0
  113. package/dist/cli/parity.js +506 -0
  114. package/dist/cli/parity.js.map +1 -0
  115. package/dist/cli/plan.d.ts.map +1 -1
  116. package/dist/cli/plan.js +2 -1
  117. package/dist/cli/plan.js.map +1 -1
  118. package/dist/cli/publish.d.ts +22 -0
  119. package/dist/cli/publish.d.ts.map +1 -1
  120. package/dist/cli/publish.js +109 -13
  121. package/dist/cli/publish.js.map +1 -1
  122. package/dist/cli/retrieval.d.ts.map +1 -1
  123. package/dist/cli/retrieval.js +5 -4
  124. package/dist/cli/retrieval.js.map +1 -1
  125. package/dist/cli/sdk.js +4 -4
  126. package/dist/cli/sdk.js.map +1 -1
  127. package/dist/cli/trace.d.ts.map +1 -1
  128. package/dist/cli/trace.js +2 -1
  129. package/dist/cli/trace.js.map +1 -1
  130. package/dist/cli/workflow.js +2 -2
  131. package/dist/cli/workflow.js.map +1 -1
  132. package/dist/config/live-credentials.d.ts +57 -0
  133. package/dist/config/live-credentials.d.ts.map +1 -0
  134. package/dist/config/live-credentials.js +126 -0
  135. package/dist/config/live-credentials.js.map +1 -0
  136. package/dist/config/paths.d.ts +18 -0
  137. package/dist/config/paths.d.ts.map +1 -1
  138. package/dist/config/paths.js +25 -0
  139. package/dist/config/paths.js.map +1 -1
  140. package/dist/config/types.d.ts +44 -0
  141. package/dist/config/types.d.ts.map +1 -1
  142. package/dist/federation/a2a-types.js +1 -1
  143. package/dist/federation/a2a-types.js.map +1 -1
  144. package/dist/findings/verdicts.d.ts +241 -0
  145. package/dist/findings/verdicts.d.ts.map +1 -0
  146. package/dist/findings/verdicts.js +284 -0
  147. package/dist/findings/verdicts.js.map +1 -0
  148. package/dist/gateway/adapters.d.ts +65 -0
  149. package/dist/gateway/adapters.d.ts.map +1 -1
  150. package/dist/gateway/adapters.js +216 -10
  151. package/dist/gateway/adapters.js.map +1 -1
  152. package/dist/gateway/channel-directory.d.ts +31 -0
  153. package/dist/gateway/channel-directory.d.ts.map +1 -1
  154. package/dist/gateway/channel-directory.js +40 -0
  155. package/dist/gateway/channel-directory.js.map +1 -1
  156. package/dist/gateway/gateway-log.d.ts +1 -1
  157. package/dist/gateway/gateway-log.d.ts.map +1 -1
  158. package/dist/gateway/gateway-log.js.map +1 -1
  159. package/dist/gateway/hooks.d.ts +87 -19
  160. package/dist/gateway/hooks.d.ts.map +1 -1
  161. package/dist/gateway/hooks.js +62 -23
  162. package/dist/gateway/hooks.js.map +1 -1
  163. package/dist/gateway/inbound-media.d.ts +147 -0
  164. package/dist/gateway/inbound-media.d.ts.map +1 -0
  165. package/dist/gateway/inbound-media.js +317 -0
  166. package/dist/gateway/inbound-media.js.map +1 -0
  167. package/dist/gateway/inbox.d.ts +8 -1
  168. package/dist/gateway/inbox.d.ts.map +1 -1
  169. package/dist/gateway/inbox.js.map +1 -1
  170. package/dist/gateway/platform-config.d.ts +14 -0
  171. package/dist/gateway/platform-config.d.ts.map +1 -1
  172. package/dist/gateway/platform-config.js +26 -8
  173. package/dist/gateway/platform-config.js.map +1 -1
  174. package/dist/gateway/realtime.d.ts +114 -0
  175. package/dist/gateway/realtime.d.ts.map +1 -0
  176. package/dist/gateway/realtime.js +402 -0
  177. package/dist/gateway/realtime.js.map +1 -0
  178. package/dist/gateway/registry.d.ts +31 -0
  179. package/dist/gateway/registry.d.ts.map +1 -1
  180. package/dist/gateway/registry.js +224 -4
  181. package/dist/gateway/registry.js.map +1 -1
  182. package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
  183. package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
  184. package/dist/gateway/whatsapp/baileys-bridge.js +123 -4
  185. package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
  186. package/dist/gateway/whatsapp/bridge.d.ts +6 -2
  187. package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
  188. package/dist/gateway/whatsapp/bridge.js.map +1 -1
  189. package/dist/index.js +8 -0
  190. package/dist/index.js.map +1 -1
  191. package/dist/inference/factory.d.ts +14 -0
  192. package/dist/inference/factory.d.ts.map +1 -1
  193. package/dist/inference/factory.js +17 -0
  194. package/dist/inference/factory.js.map +1 -1
  195. package/dist/inference/groq-adapter.d.ts +2 -0
  196. package/dist/inference/groq-adapter.d.ts.map +1 -1
  197. package/dist/inference/groq-adapter.js +16 -6
  198. package/dist/inference/groq-adapter.js.map +1 -1
  199. package/dist/inference/model-validator.d.ts +6 -1
  200. package/dist/inference/model-validator.d.ts.map +1 -1
  201. package/dist/inference/model-validator.js +7 -2
  202. package/dist/inference/model-validator.js.map +1 -1
  203. package/dist/inference/route-resolver.d.ts +116 -0
  204. package/dist/inference/route-resolver.d.ts.map +1 -0
  205. package/dist/inference/route-resolver.js +159 -0
  206. package/dist/inference/route-resolver.js.map +1 -0
  207. package/dist/inference/tools.d.ts.map +1 -1
  208. package/dist/inference/tools.js +29 -0
  209. package/dist/inference/tools.js.map +1 -1
  210. package/dist/learning/autonomy-policy.d.ts +18 -0
  211. package/dist/learning/autonomy-policy.d.ts.map +1 -1
  212. package/dist/learning/autonomy-policy.js +35 -0
  213. package/dist/learning/autonomy-policy.js.map +1 -1
  214. package/dist/learning/benchmark.d.ts.map +1 -1
  215. package/dist/learning/benchmark.js +3 -2
  216. package/dist/learning/benchmark.js.map +1 -1
  217. package/dist/learning/continuation.d.ts.map +1 -1
  218. package/dist/learning/continuation.js +2 -1
  219. package/dist/learning/continuation.js.map +1 -1
  220. package/dist/learning/cost-tracker.d.ts.map +1 -1
  221. package/dist/learning/cost-tracker.js +2 -1
  222. package/dist/learning/cost-tracker.js.map +1 -1
  223. package/dist/learning/deferred-task.d.ts.map +1 -1
  224. package/dist/learning/deferred-task.js +13 -4
  225. package/dist/learning/deferred-task.js.map +1 -1
  226. package/dist/learning/eval-framework.d.ts.map +1 -1
  227. package/dist/learning/eval-framework.js +2 -1
  228. package/dist/learning/eval-framework.js.map +1 -1
  229. package/dist/learning/long-form.d.ts.map +1 -1
  230. package/dist/learning/long-form.js +2 -1
  231. package/dist/learning/long-form.js.map +1 -1
  232. package/dist/learning/model-registry.d.ts.map +1 -1
  233. package/dist/learning/model-registry.js +2 -1
  234. package/dist/learning/model-registry.js.map +1 -1
  235. package/dist/learning/reasoning-cache.d.ts.map +1 -1
  236. package/dist/learning/reasoning-cache.js +2 -1
  237. package/dist/learning/reasoning-cache.js.map +1 -1
  238. package/dist/learning/reasoning-trace.d.ts +38 -2
  239. package/dist/learning/reasoning-trace.d.ts.map +1 -1
  240. package/dist/learning/reasoning-trace.js +91 -1
  241. package/dist/learning/reasoning-trace.js.map +1 -1
  242. package/dist/learning/resilient-call.d.ts.map +1 -1
  243. package/dist/learning/resilient-call.js +31 -18
  244. package/dist/learning/resilient-call.js.map +1 -1
  245. package/dist/learning/retrieval.d.ts.map +1 -1
  246. package/dist/learning/retrieval.js +2 -1
  247. package/dist/learning/retrieval.js.map +1 -1
  248. package/dist/learning/seeded-benchmark.d.ts +160 -0
  249. package/dist/learning/seeded-benchmark.d.ts.map +1 -0
  250. package/dist/learning/seeded-benchmark.js +321 -0
  251. package/dist/learning/seeded-benchmark.js.map +1 -0
  252. package/dist/learning/seeded-bugs.d.ts +142 -0
  253. package/dist/learning/seeded-bugs.d.ts.map +1 -0
  254. package/dist/learning/seeded-bugs.js +535 -0
  255. package/dist/learning/seeded-bugs.js.map +1 -0
  256. package/dist/learning/skill-store.d.ts.map +1 -1
  257. package/dist/learning/skill-store.js +30 -9
  258. package/dist/learning/skill-store.js.map +1 -1
  259. package/dist/learning/step-checkpoint.d.ts +127 -0
  260. package/dist/learning/step-checkpoint.d.ts.map +1 -0
  261. package/dist/learning/step-checkpoint.js +244 -0
  262. package/dist/learning/step-checkpoint.js.map +1 -0
  263. package/dist/mcp/catalog.js +2 -3
  264. package/dist/mcp/catalog.js.map +1 -1
  265. package/dist/mcp/manager.d.ts.map +1 -1
  266. package/dist/mcp/manager.js +5 -3
  267. package/dist/mcp/manager.js.map +1 -1
  268. package/dist/nlu/intent-confirm.d.ts +23 -1
  269. package/dist/nlu/intent-confirm.d.ts.map +1 -1
  270. package/dist/nlu/intent-confirm.js +85 -2
  271. package/dist/nlu/intent-confirm.js.map +1 -1
  272. package/dist/nlu/learnings.d.ts +7 -0
  273. package/dist/nlu/learnings.d.ts.map +1 -1
  274. package/dist/nlu/learnings.js +7 -0
  275. package/dist/nlu/learnings.js.map +1 -1
  276. package/dist/observability/debug-log.d.ts +250 -0
  277. package/dist/observability/debug-log.d.ts.map +1 -0
  278. package/dist/observability/debug-log.js +500 -0
  279. package/dist/observability/debug-log.js.map +1 -0
  280. package/dist/observability/event-bus.d.ts.map +1 -1
  281. package/dist/observability/event-bus.js +4 -1
  282. package/dist/observability/event-bus.js.map +1 -1
  283. package/dist/observability/otel.d.ts +278 -0
  284. package/dist/observability/otel.d.ts.map +1 -0
  285. package/dist/observability/otel.js +590 -0
  286. package/dist/observability/otel.js.map +1 -0
  287. package/dist/parity/drivers.d.ts +99 -0
  288. package/dist/parity/drivers.d.ts.map +1 -0
  289. package/dist/parity/drivers.js +1362 -0
  290. package/dist/parity/drivers.js.map +1 -0
  291. package/dist/parity/graph.d.ts +73 -0
  292. package/dist/parity/graph.d.ts.map +1 -0
  293. package/dist/parity/graph.js +162 -0
  294. package/dist/parity/graph.js.map +1 -0
  295. package/dist/parity/matrix.d.ts +105 -0
  296. package/dist/parity/matrix.d.ts.map +1 -0
  297. package/dist/parity/matrix.js +352 -0
  298. package/dist/parity/matrix.js.map +1 -0
  299. package/dist/parity/observation.d.ts +444 -0
  300. package/dist/parity/observation.d.ts.map +1 -0
  301. package/dist/parity/observation.js +333 -0
  302. package/dist/parity/observation.js.map +1 -0
  303. package/dist/parity/scenarios.d.ts +229 -0
  304. package/dist/parity/scenarios.d.ts.map +1 -0
  305. package/dist/parity/scenarios.js +175 -0
  306. package/dist/parity/scenarios.js.map +1 -0
  307. package/dist/parity/surfaces.d.ts +122 -0
  308. package/dist/parity/surfaces.d.ts.map +1 -0
  309. package/dist/parity/surfaces.js +190 -0
  310. package/dist/parity/surfaces.js.map +1 -0
  311. package/dist/runtime/fault-injection.d.ts +173 -0
  312. package/dist/runtime/fault-injection.d.ts.map +1 -0
  313. package/dist/runtime/fault-injection.js +281 -0
  314. package/dist/runtime/fault-injection.js.map +1 -0
  315. package/dist/skills/secret-capture.d.ts.map +1 -1
  316. package/dist/skills/secret-capture.js +9 -4
  317. package/dist/skills/secret-capture.js.map +1 -1
  318. package/dist/tools/child-agent-entry.d.ts +23 -0
  319. package/dist/tools/child-agent-entry.d.ts.map +1 -0
  320. package/dist/tools/child-agent-entry.js +129 -0
  321. package/dist/tools/child-agent-entry.js.map +1 -0
  322. package/dist/tools/child-agent-runtime.d.ts +124 -0
  323. package/dist/tools/child-agent-runtime.d.ts.map +1 -0
  324. package/dist/tools/child-agent-runtime.js +704 -0
  325. package/dist/tools/child-agent-runtime.js.map +1 -0
  326. package/dist/tools/coding-tools.d.ts.map +1 -1
  327. package/dist/tools/coding-tools.js +82 -10
  328. package/dist/tools/coding-tools.js.map +1 -1
  329. package/dist/tools/credentials-tool.d.ts +24 -0
  330. package/dist/tools/credentials-tool.d.ts.map +1 -0
  331. package/dist/tools/credentials-tool.js +125 -0
  332. package/dist/tools/credentials-tool.js.map +1 -0
  333. package/dist/tools/delegation-system.d.ts +31 -0
  334. package/dist/tools/delegation-system.d.ts.map +1 -1
  335. package/dist/tools/delegation-system.js +70 -9
  336. package/dist/tools/delegation-system.js.map +1 -1
  337. package/dist/tools/extract/docx.d.ts +27 -0
  338. package/dist/tools/extract/docx.d.ts.map +1 -0
  339. package/dist/tools/extract/docx.js +48 -0
  340. package/dist/tools/extract/docx.js.map +1 -0
  341. package/dist/tools/extract/html-text.d.ts +27 -0
  342. package/dist/tools/extract/html-text.d.ts.map +1 -0
  343. package/dist/tools/extract/html-text.js +86 -0
  344. package/dist/tools/extract/html-text.js.map +1 -0
  345. package/dist/tools/extract/pdf-ocr.d.ts +58 -0
  346. package/dist/tools/extract/pdf-ocr.d.ts.map +1 -0
  347. package/dist/tools/extract/pdf-ocr.js +116 -0
  348. package/dist/tools/extract/pdf-ocr.js.map +1 -0
  349. package/dist/tools/extract/pdf.d.ts +65 -0
  350. package/dist/tools/extract/pdf.d.ts.map +1 -0
  351. package/dist/tools/extract/pdf.js +197 -0
  352. package/dist/tools/extract/pdf.js.map +1 -0
  353. package/dist/tools/extract/pptx.d.ts +32 -0
  354. package/dist/tools/extract/pptx.d.ts.map +1 -0
  355. package/dist/tools/extract/pptx.js +77 -0
  356. package/dist/tools/extract/pptx.js.map +1 -0
  357. package/dist/tools/extract/xlsx.d.ts +47 -0
  358. package/dist/tools/extract/xlsx.d.ts.map +1 -0
  359. package/dist/tools/extract/xlsx.js +111 -0
  360. package/dist/tools/extract/xlsx.js.map +1 -0
  361. package/dist/tools/finding-tool.d.ts +76 -0
  362. package/dist/tools/finding-tool.d.ts.map +1 -0
  363. package/dist/tools/finding-tool.js +125 -0
  364. package/dist/tools/finding-tool.js.map +1 -0
  365. package/dist/tools/git-tool.d.ts +25 -7
  366. package/dist/tools/git-tool.d.ts.map +1 -1
  367. package/dist/tools/git-tool.js +155 -15
  368. package/dist/tools/git-tool.js.map +1 -1
  369. package/dist/tools/loop-project-context.d.ts.map +1 -1
  370. package/dist/tools/loop-project-context.js +16 -0
  371. package/dist/tools/loop-project-context.js.map +1 -1
  372. package/dist/tools/loop-route-feed.d.ts +57 -0
  373. package/dist/tools/loop-route-feed.d.ts.map +1 -0
  374. package/dist/tools/loop-route-feed.js +101 -0
  375. package/dist/tools/loop-route-feed.js.map +1 -0
  376. package/dist/tools/messaging-tools.d.ts +41 -11
  377. package/dist/tools/messaging-tools.d.ts.map +1 -1
  378. package/dist/tools/messaging-tools.js +104 -55
  379. package/dist/tools/messaging-tools.js.map +1 -1
  380. package/dist/tools/neutts-synth.d.ts +27 -3
  381. package/dist/tools/neutts-synth.d.ts.map +1 -1
  382. package/dist/tools/neutts-synth.js +57 -13
  383. package/dist/tools/neutts-synth.js.map +1 -1
  384. package/dist/tools/pipeline-tool.d.ts +43 -1
  385. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  386. package/dist/tools/pipeline-tool.js +21 -4
  387. package/dist/tools/pipeline-tool.js.map +1 -1
  388. package/dist/tools/publish-tool.d.ts.map +1 -1
  389. package/dist/tools/publish-tool.js +76 -10
  390. package/dist/tools/publish-tool.js.map +1 -1
  391. package/dist/tools/read-extract.d.ts +116 -45
  392. package/dist/tools/read-extract.d.ts.map +1 -1
  393. package/dist/tools/read-extract.js +494 -158
  394. package/dist/tools/read-extract.js.map +1 -1
  395. package/dist/tools/registry.d.ts +23 -3
  396. package/dist/tools/registry.d.ts.map +1 -1
  397. package/dist/tools/registry.js +196 -29
  398. package/dist/tools/registry.js.map +1 -1
  399. package/dist/tools/run-terminal.d.ts +9 -0
  400. package/dist/tools/run-terminal.d.ts.map +1 -1
  401. package/dist/tools/run-terminal.js +80 -2
  402. package/dist/tools/run-terminal.js.map +1 -1
  403. package/dist/tools/subagent-refusal.d.ts +15 -0
  404. package/dist/tools/subagent-refusal.d.ts.map +1 -0
  405. package/dist/tools/subagent-refusal.js +18 -0
  406. package/dist/tools/subagent-refusal.js.map +1 -0
  407. package/dist/tools/subagent-spawner.d.ts +122 -0
  408. package/dist/tools/subagent-spawner.d.ts.map +1 -1
  409. package/dist/tools/subagent-spawner.js +249 -28
  410. package/dist/tools/subagent-spawner.js.map +1 -1
  411. package/dist/tools/tool-hooks.d.ts +177 -0
  412. package/dist/tools/tool-hooks.d.ts.map +1 -0
  413. package/dist/tools/tool-hooks.js +427 -0
  414. package/dist/tools/tool-hooks.js.map +1 -0
  415. package/dist/tools/tool-loop.d.ts +94 -5
  416. package/dist/tools/tool-loop.d.ts.map +1 -1
  417. package/dist/tools/tool-loop.js +315 -9
  418. package/dist/tools/tool-loop.js.map +1 -1
  419. package/dist/tools/tool-refusal.d.ts +68 -0
  420. package/dist/tools/tool-refusal.d.ts.map +1 -0
  421. package/dist/tools/tool-refusal.js +78 -0
  422. package/dist/tools/tool-refusal.js.map +1 -0
  423. package/dist/tools/toolsets.d.ts +8 -0
  424. package/dist/tools/toolsets.d.ts.map +1 -1
  425. package/dist/tools/toolsets.js +14 -4
  426. package/dist/tools/toolsets.js.map +1 -1
  427. package/dist/tools/vision-tools.d.ts +88 -83
  428. package/dist/tools/vision-tools.d.ts.map +1 -1
  429. package/dist/tools/vision-tools.js +134 -103
  430. package/dist/tools/vision-tools.js.map +1 -1
  431. package/dist/tools/worktree.d.ts +210 -0
  432. package/dist/tools/worktree.d.ts.map +1 -0
  433. package/dist/tools/worktree.js +374 -0
  434. package/dist/tools/worktree.js.map +1 -0
  435. package/dist/utils/format.d.ts +3 -0
  436. package/dist/utils/format.d.ts.map +1 -0
  437. package/dist/utils/format.js +32 -0
  438. package/dist/utils/format.js.map +1 -0
  439. package/dist/web-dashboard/attachment-extract.d.ts +64 -0
  440. package/dist/web-dashboard/attachment-extract.d.ts.map +1 -0
  441. package/dist/web-dashboard/attachment-extract.js +154 -0
  442. package/dist/web-dashboard/attachment-extract.js.map +1 -0
  443. package/dist/web-dashboard/chat-console.d.ts +108 -1
  444. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  445. package/dist/web-dashboard/chat-console.js +36 -0
  446. package/dist/web-dashboard/chat-console.js.map +1 -1
  447. package/dist/web-dashboard/hub-data.d.ts +37 -0
  448. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  449. package/dist/web-dashboard/hub-data.js +61 -1
  450. package/dist/web-dashboard/hub-data.js.map +1 -1
  451. package/dist/web-dashboard/server.d.ts +14 -0
  452. package/dist/web-dashboard/server.d.ts.map +1 -1
  453. package/dist/web-dashboard/server.js +247 -13
  454. package/dist/web-dashboard/server.js.map +1 -1
  455. package/dist/web-dashboard/src/types.d.ts +196 -48
  456. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  457. package/dist/workflow/registry.js +1 -1
  458. package/dist/workflow/registry.js.map +1 -1
  459. package/package.json +22 -6
  460. package/src/web-dashboard/public/assets/{index-Cyd6tIew.css → index-XJjj2cBX.css} +1 -1
  461. package/src/web-dashboard/public/assets/index-YWF9FpwQ.js +207 -0
  462. package/src/web-dashboard/public/assets/index-YWF9FpwQ.js.map +1 -0
  463. package/src/web-dashboard/public/index.html +2 -2
  464. package/dist/tools/child-agent-worker.js +0 -212
  465. package/src/web-dashboard/public/assets/index-CjvoBhlz.js +0 -207
  466. package/src/web-dashboard/public/assets/index-CjvoBhlz.js.map +0 -1
@@ -1 +1 @@
1
- :root{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #1c2333;--bg-card: #1a1f2e;--bg-hover: #1c2538;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #6e7681;--accent-blue: #58a6ff;--accent-green: #3fb950;--accent-yellow: #d29922;--accent-red: #f85149;--accent-purple: #bc8cff;--accent-cyan: #39d2c0;--border: #30363d;--border-light: #21262d;--shadow: rgba(0, 0, 0, .3);--nav-width: 220px;--transition: all .2s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;font-size:14px;min-height:100vh}#root{min-height:100vh}.layout{display:flex;min-height:100vh}.nav{width:var(--nav-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;overflow-y:auto;z-index:100}.nav-header{display:flex;align-items:center;gap:10px;padding:20px 16px;border-bottom:1px solid var(--border)}.nav-logo{font-size:24px}.nav-title{font-size:15px;font-weight:600;color:var(--text-primary)}.nav-links{flex:1;padding:8px 0}.nav-link{display:block;padding:10px 16px;color:var(--text-secondary);text-decoration:none;font-size:13px;transition:var(--transition);border-left:3px solid transparent}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-link.active{color:var(--accent-blue);background:#58a6ff14;border-left-color:var(--accent-blue);font-weight:500}.nav-footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.connected{background:var(--accent-green);box-shadow:0 0 6px #3fb95066}.status-dot.reconnecting{background:var(--accent-yellow);animation:pulse 1s infinite}.status-text{font-size:11px;color:var(--text-secondary);flex:1}.last-updated{font-size:10px;color:var(--text-muted)}.main{margin-left:var(--nav-width);flex:1;padding:32px 40px;max-width:1200px}.section-title{font-size:22px;font-weight:600;margin-bottom:24px;color:var(--text-primary)}.section-subtitle{font-size:15px;font-weight:500;color:var(--text-secondary);margin:28px 0 14px}.section-description{color:var(--text-secondary);font-size:13px;margin-bottom:24px;line-height:1.6}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:10px}.stats-grid.mini{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:18px 16px;display:flex;align-items:center;gap:14px;transition:var(--transition)}.stat-card:hover{border-color:var(--accent-blue);box-shadow:0 4px 12px var(--shadow)}.stat-icon{font-size:24px}.stat-body{min-width:0}.stat-value{font-size:20px;font-weight:700;color:var(--text-primary);line-height:1.2}.stat-label{font-size:11px;color:var(--text-secondary);margin-top:2px;text-transform:uppercase;letter-spacing:.5px}.chart-container{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:10px}.cost-summary{display:flex;gap:24px;margin-bottom:20px}.cost-summary-sub{margin-bottom:20px}.cost-summary-sub .cost-total{padding:10px 16px;background:transparent;border-style:dashed}.cost-summary-sub .cost-amount{font-size:20px}.cost-total{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px 24px;text-align:center;flex:1}.cost-label{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.cost-amount{font-size:28px;font-weight:700;color:var(--accent-green);display:block;margin-top:4px}.cost-list{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px}.cost-row{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border-light);transition:var(--transition)}.cost-row:last-child{border-bottom:none}.cost-row:hover{background:var(--bg-hover)}.cost-row-name{flex:1;font-size:13px;font-weight:500}.cost-row-bar{width:200px;height:6px;background:var(--bg-tertiary);border-radius:3px;margin:0 16px;overflow:hidden}.cost-row-fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),var(--accent-cyan));border-radius:3px;transition:width .5s ease}.cost-row-value{font-size:13px;font-weight:600;color:var(--accent-green);min-width:70px;text-align:right}.request-list{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.request-row{display:flex;align-items:center;padding:8px 14px;border-bottom:1px solid var(--border-light);font-size:12px;transition:var(--transition)}.request-row:last-child{border-bottom:none}.request-row:hover{background:var(--bg-hover)}.request-time{color:var(--text-muted);min-width:70px}.request-provider{min-width:80px;font-weight:500}.request-model{flex:1;color:var(--text-secondary)}.request-cost{min-width:60px;text-align:right;color:var(--accent-green);font-weight:500}.request-tokens{min-width:60px;text-align:right;color:var(--text-secondary)}.history-stats{margin-bottom:14px;font-size:13px;color:var(--text-secondary)}.history-list{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.history-item{padding:12px 16px;border-bottom:1px solid var(--border-light);transition:var(--transition)}.history-item:last-child{border-bottom:none}.history-item:hover{background:var(--bg-hover)}.history-summary{font-size:13px;color:var(--text-primary);margin-bottom:4px;line-height:1.5}.history-meta{font-size:11px;color:var(--text-secondary);display:flex;gap:12px;flex-wrap:wrap;align-items:center}.history-meta span{display:inline-flex;align-items:center;gap:4px}.history-tag{background:#58a6ff26;color:var(--accent-blue);padding:1px 6px;border-radius:3px;font-size:10px;margin-left:2px}.benchmark-latest{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.benchmark-header{margin-bottom:8px;font-size:13px;color:var(--text-primary)}.benchmark-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:12px}.benchmark-stat{text-align:center;padding:12px;background:var(--bg-tertiary);border-radius:8px}.benchmark-stat-value{font-size:18px;font-weight:700}.benchmark-stat-label{font-size:10px;color:var(--text-secondary);margin-top:2px;text-transform:uppercase;letter-spacing:.5px}.benchmark-stat.pass .benchmark-stat-value{color:var(--accent-green)}.benchmark-stat.fail .benchmark-stat-value{color:var(--accent-red)}.benchmark-stat.quality .benchmark-stat-value{color:var(--accent-purple)}.benchmark-stat.latency .benchmark-stat-value{color:var(--accent-yellow)}.benchmark-stat.deps .benchmark-stat-value{color:var(--accent-blue)}.benchmark-list{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.benchmark-item{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border-light);font-size:12px;transition:var(--transition)}.benchmark-item:last-child{border-bottom:none}.benchmark-item:hover{background:var(--bg-hover)}.benchmark-date{min-width:100px;color:var(--text-muted)}.benchmark-model{flex:1;font-weight:500}.benchmark-score{min-width:50px;text-align:right}.benchmark-score.high{color:var(--accent-green)}.benchmark-score.medium{color:var(--accent-yellow)}.benchmark-score.low{color:var(--accent-red)}.dag-container{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:24px;margin-bottom:16px;overflow-x:auto}.dag-container svg{display:block;margin:0 auto}.dag-legend{display:flex;flex-wrap:wrap;gap:12px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-icon{font-size:12px}.legend-label{font-size:11px}.memory-list{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.memory-item{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border-light);font-size:13px;transition:var(--transition)}.memory-item:last-child{border-bottom:none}.memory-item:hover{background:var(--bg-hover)}.memory-project{flex:1;font-weight:500}.memory-count{min-width:50px;text-align:right;color:var(--text-secondary)}.health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-bottom:20px}.health-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px;display:flex;align-items:center;gap:14px;transition:var(--transition)}.health-card:hover{border-color:var(--accent-blue)}.health-icon{font-size:22px}.health-body{min-width:0}.health-title{font-size:12px;color:var(--text-secondary);margin-bottom:2px}.health-path{font-size:11px;color:var(--text-muted);font-family:SFMono-Regular,Consolas,monospace}.health-value{font-size:16px;font-weight:600;color:var(--text-primary)}.server-info{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.info-row{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border-light);font-size:13px}.info-row:last-child{border-bottom:none}.info-label{min-width:140px;color:var(--text-secondary)}.info-value{color:var(--text-primary);font-weight:500}.loading-state{text-align:center;padding:80px 20px;color:var(--text-muted)}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{padding:32px;text-align:center;color:var(--text-muted);font-size:13px}.empty-state code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--accent-blue)}.dag-engine-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;cursor:default}.dag-engine-loop{color:var(--accent-cyan, #39d2c0);background:#39d2c01f;border:1px solid rgba(57,210,192,.4)}.dag-engine-pipeline{color:var(--accent-purple, #bc8cff);background:#bc8cff1f;border:1px solid rgba(188,140,255,.4)}.dag-loop-turn-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 18px;margin-bottom:14px}.dag-loop-turn-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.dag-loop-turn-icon{font-size:15px}.dag-loop-turn-title{font-size:13px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.dag-loop-turn-live{font-size:10px;font-weight:700;color:var(--accent-green, #3fb950);letter-spacing:.4px;text-transform:uppercase;animation:dag-loop-pulse 1.6s ease-in-out infinite}@keyframes dag-loop-pulse{0%,to{opacity:1}50%{opacity:.35}}.dag-loop-turn-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.dag-loop-turn-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;color:var(--text-primary);background:var(--bg-tertiary, #1c2333);border:1px solid var(--border)}.dag-loop-turn-chip-error{color:var(--accent-red, #f85149);border-color:#f8514966}.dag-loop-turn-chip-dim{color:var(--text-secondary, #8b949e)}.dag-loop-turn-tools{display:flex;flex-wrap:wrap;gap:5px}.dag-loop-tool{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;color:var(--accent-green, #3fb950);background:#3fb95014;border:1px solid rgba(63,185,80,.25);border-radius:4px;padding:1px 6px}.dag-loop-tool-error{color:var(--accent-red, #f85149);background:#f8514914;border-color:#f851494d}.phase-run-chip-engine{font-size:10px;line-height:1;opacity:.9}.phase-run-chip-engine-loop{filter:drop-shadow(0 0 3px rgba(57,210,192,.6))}.dag-status-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 18px;margin-bottom:14px;transition:var(--transition)}.dag-status-bar.active{border-color:var(--accent-blue);box-shadow:0 0 12px #58a6ff1a}.dag-pipeline-name{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text-primary)}.dag-live-dot{width:10px;height:10px;border-radius:50%;background:var(--accent-green);box-shadow:0 0 8px #3fb95099;animation:pulse 1.5s infinite}.dag-live-badge{background:#3fb95026;color:var(--accent-green);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.5px;animation:pulse 2s infinite}.dag-pipeline-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dag-step-count{font-size:11px;color:var(--text-secondary)}.dag-running-badge{background:#58a6ff26;color:var(--accent-blue);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600}.dag-completed-badge{background:#3fb9501f;color:var(--accent-green);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600}.dag-pending-badge{background:#6e768126;color:var(--text-secondary);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600}.dag-failed-badge{background:#f8514926;color:var(--accent-red);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600}.dag-empty{text-align:center;padding:60px 20px;background:var(--bg-card);border:1px dashed var(--border);border-radius:12px}.dag-empty-icon{font-size:48px;margin-bottom:16px}.dag-empty h3{font-size:18px;color:var(--text-primary);margin-bottom:8px}.dag-empty p{color:var(--text-secondary);font-size:13px;max-width:400px;margin:0 auto}.dag-empty-hint{margin-top:12px!important;font-size:12px!important;color:var(--text-muted)!important}.dag-empty-hint code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--accent-blue)}.dag-node-group{transition:opacity .3s ease}.dag-node-group:hover rect:first-of-type{filter:brightness(1.2)}.dag-node-running{animation:dag-node-pulse 2s ease-in-out infinite}.dag-edge{transition:stroke .5s ease,stroke-width .5s ease,stroke-opacity .5s ease}@keyframes dag-node-pulse{0%,to{stroke-opacity:.9}50%{stroke-opacity:.5}}.dag-node-summary{pointer-events:none;animation:fadeIn .2s ease-out}.dag-table-wrapper{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px}.dag-table{width:100%;border-collapse:collapse;font-size:12px}.dag-table th{background:var(--bg-tertiary);padding:10px 14px;text-align:left;font-weight:600;color:var(--text-secondary);font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}.dag-table td{padding:8px 14px;border-bottom:1px solid var(--border-light)}.dag-row:last-child td{border-bottom:none}.dag-row:hover td{background:var(--bg-hover)}.dag-cell-step{color:var(--text-muted);font-family:SFMono-Regular,Consolas,monospace;width:40px}.dag-cell-agent{display:flex;align-items:center;gap:6px;font-weight:500;color:var(--text-primary)}.dag-agent-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dag-cell-status{font-weight:500}.dag-status-pending{color:var(--text-muted)}.dag-status-running{color:var(--accent-blue)}.dag-status-completed{color:var(--accent-green)}.dag-status-failed{color:var(--accent-red)}.dag-cell-duration{color:var(--text-secondary);font-family:SFMono-Regular,Consolas,monospace;font-size:11px}.dag-cell-time{color:var(--text-muted);font-family:SFMono-Regular,Consolas,monospace;font-size:11px}.dag-cell-summary{color:var(--text-secondary);font-size:11px;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes typingBlink{0%,60%,to{opacity:.2}30%{opacity:1}}.stat-card,.health-card,.cost-row,.history-item,.benchmark-item,.dag-row,.dag-status-bar{animation:fadeIn .3s ease-out}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (max-width: 768px){.nav{width:60px}.nav-title,.nav-link,.nav-footer{display:none}.nav-header{justify-content:center;padding:16px}.main{margin-left:60px;padding:20px}.stats-grid,.benchmark-stats{grid-template-columns:repeat(2,1fr)}.cost-summary{flex-direction:column;gap:12px}}.dag-timeline-section{margin-bottom:16px}.timeline-subtitle{font-weight:400;font-size:11px;color:var(--text-muted);margin-left:6px}.phase-timeline{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 16px;transition:var(--transition)}.phase-timeline:hover{border-color:var(--border-light)}.phase-timeline-empty{color:var(--text-secondary);font-size:13px}.phase-timeline-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.phase-timeline-runs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.phase-run-chip{display:inline-flex;align-items:center;gap:6px;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);padding:5px 10px;border-radius:16px;font-size:11px;cursor:pointer;transition:var(--transition);max-width:260px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.phase-run-chip:hover{border-color:var(--accent-blue);color:var(--text-primary)}.phase-run-chip.active{border-color:var(--accent-blue);background:#58a6ff1a;color:var(--text-primary)}.phase-run-chip.live{border-color:#3fb95080}.phase-run-chip-time{color:var(--text-muted);font-size:10px}.phase-timeline-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--text-secondary)}.phase-meta-ok{color:var(--accent-green)}.phase-meta-bad{color:var(--accent-red)}.phase-timeline-controls{display:flex;align-items:center;gap:12px;margin-bottom:10px}.phase-play-btn{background:#58a6ff1f;color:var(--accent-blue);border:1px solid rgba(88,166,255,.35);border-radius:6px;padding:4px 12px;font-size:11px;font-weight:600;cursor:pointer;transition:var(--transition)}.phase-play-btn:hover{background:#58a6ff38}.phase-play-btn.paused{background:#f851491f;color:var(--accent-red);border-color:#f8514959}.phase-time-label{font-size:11px;color:var(--text-secondary);font-variant-numeric:tabular-nums;min-width:96px}.phase-range{flex:1;accent-color:var(--accent-blue);cursor:pointer}.phase-track-wrap{padding:8px 0 2px}.phase-track{position:relative;height:46px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:8px;overflow:visible;-webkit-user-select:none;user-select:none;touch-action:none}.phase-block{position:absolute;top:5px;bottom:5px;border:none;border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#fff;cursor:pointer;min-width:10px;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;font-size:10px}.phase-block:hover{filter:brightness(1.15);transform:translateY(-1px)}.phase-block-pending{opacity:.55}.phase-block-failed{outline:1px solid rgba(248,81,73,.6)}.phase-block.active{z-index:2}.phase-block-icon{font-size:13px;line-height:1}.phase-block-label{font-size:9px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.6);max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 3px}.phase-caret{position:absolute;top:-3px;bottom:-3px;width:2px;background:#f0f6fc;box-shadow:0 0 8px #f0f6fccc;cursor:ew-resize;z-index:3;transform:translate(-1px);border-radius:2px}.phase-caret:after{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);border:5px solid transparent;border-top:6px solid #f0f6fc}.phase-ticks{display:flex;justify-content:space-between;color:var(--text-muted);font-size:9px;padding:3px 2px 0;font-variant-numeric:tabular-nums}.phase-detail{margin-top:12px;padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:8px;min-height:58px}.phase-detail-title{display:flex;align-items:center;gap:8px;margin-bottom:4px}.phase-detail-icon{font-size:14px}.phase-detail-agent{font-size:13px;font-weight:700}.phase-status-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;margin-left:auto}.phase-status-pending{background:#6e768126;color:var(--text-muted)}.phase-status-running{background:#58a6ff26;color:var(--accent-blue)}.phase-status-completed{background:#3fb95026;color:var(--accent-green)}.phase-status-failed{background:#f8514926;color:var(--accent-red)}.phase-detail-desc{color:var(--text-primary);font-size:12px;margin:0 0 4px}.phase-detail-meta{display:flex;gap:12px;color:var(--text-secondary);font-size:10px;font-variant-numeric:tabular-nums}.phase-detail-summary{color:var(--text-secondary);font-size:11px;margin:6px 0 0;border-top:1px solid var(--border-light);padding-top:6px}.phase-detail-gap{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:12px}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:4px}.admin-refresh-btn{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:8px;padding:8px 16px;font-size:13px;cursor:pointer;transition:var(--transition)}.admin-refresh-btn:hover:not(:disabled){border-color:var(--accent-blue);color:var(--accent-blue);box-shadow:0 0 8px #58a6ff26}.admin-refresh-btn:disabled{opacity:.6;cursor:wait}.admin-subtitle{color:var(--text-secondary);font-size:12px;margin:0 0 16px;max-width:720px}.admin-error{background:#f851491a;border:1px solid rgba(248,81,73,.4);color:var(--accent-red);border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px}.admin-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:24px}.admin-summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px;text-align:center;transition:var(--transition)}.admin-summary-card:hover{border-color:var(--accent-blue)}.admin-summary-pass .admin-summary-value{color:var(--accent-green)}.admin-summary-warn .admin-summary-value{color:var(--accent-yellow)}.admin-summary-fail .admin-summary-value{color:var(--accent-red)}.admin-summary-value{font-size:26px;font-weight:700}.admin-summary-label{color:var(--text-secondary);font-size:12px;margin-top:2px}.admin-check-list{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.admin-check-row{display:flex;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:8px;padding:10px 14px;transition:var(--transition)}.admin-check-row:hover{border-color:var(--accent-blue)}.admin-check-row[data-status=pass]{border-left-color:var(--accent-green)}.admin-check-row[data-status=warn]{border-left-color:var(--accent-yellow)}.admin-check-row[data-status=fail]{border-left-color:var(--accent-red)}.admin-check-badge{flex-shrink:0;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;height:fit-content;margin-top:2px}.admin-check-pass{background:#3fb95026;color:var(--accent-green)}.admin-check-warn{background:#d2992226;color:var(--accent-yellow)}.admin-check-fail{background:#f8514926;color:var(--accent-red)}.admin-check-body{min-width:0}.admin-check-name{font-weight:600;font-size:13px}.admin-check-message{color:var(--text-primary);font-size:12px;margin-top:2px}.admin-check-detail{color:var(--text-secondary);font-size:11px;margin-top:4px;white-space:pre-wrap}.admin-check-fix{color:var(--accent-cyan);font-size:11px;margin-top:4px}.admin-table-wrapper{overflow-x:auto;border:1px solid var(--border);border-radius:8px;margin-bottom:24px}.admin-table{width:100%;border-collapse:collapse;font-size:12px}.admin-table th{text-align:left;padding:10px 14px;background:var(--bg-tertiary);color:var(--text-secondary);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border)}.admin-table td{padding:10px 14px;border-bottom:1px solid var(--border-light)}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--bg-hover)}.admin-provider-type{font-weight:600;color:var(--accent-blue)}.admin-key-masked{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.admin-endpoint{color:var(--text-secondary);font-size:11px}.admin-header-actions{display:flex;gap:8px;align-items:center}.admin-logout-btn{background:transparent;border:1px solid var(--border, #333);color:var(--text-secondary);border-radius:6px;padding:6px 10px;font-size:12px;cursor:pointer;transition:all .15s ease}.admin-logout-btn:hover{border-color:var(--accent-red);color:var(--accent-red)}.admin-gate-form{max-width:380px;display:flex;flex-direction:column;gap:14px;margin-top:18px;padding:20px;background:#ffffff08;border:1px solid var(--border, #333);border-radius:10px}.admin-gate-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-secondary)}.admin-input{background:#00000040;border:1px solid var(--border, #333);color:var(--text-primary);border-radius:6px;padding:6px 8px;font-size:12px;min-width:0;width:100%;transition:border-color .15s ease}.admin-input:focus{outline:none;border-color:var(--accent, #4c9aff)}.admin-key-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.admin-provider-sub{font-size:11px;color:var(--text-secondary);margin-top:2px}.admin-hint{font-size:11px;color:var(--text-secondary);opacity:.8;margin-top:4px}.admin-hint code{background:#ffffff0f;padding:1px 4px;border-radius:4px;font-size:10px}.admin-row-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-mini-btn{background:#ffffff0f;border:1px solid var(--border, #333);color:var(--text-primary);border-radius:6px;padding:4px 8px;font-size:11px;cursor:pointer;transition:all .15s ease}.admin-mini-btn:hover:not(:disabled){border-color:var(--accent, #4c9aff);color:var(--accent, #4c9aff)}.admin-mini-btn:disabled{opacity:.5;cursor:default}.admin-mini-danger:hover:not(:disabled){border-color:var(--accent-red);color:var(--accent-red)}.admin-quota-panel{margin-top:22px}.admin-quota-note{font-size:11px;color:var(--text-secondary);margin:0 0 10px;max-width:760px;line-height:1.5}.admin-quota-table{display:flex;flex-direction:column;gap:4px;max-width:820px}.admin-quota-row{display:grid;grid-template-columns:120px 1fr 1fr 1fr 90px;gap:8px;align-items:center}.admin-quota-row.admin-quota-head{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:0 4px}.admin-quota-row .admin-input{min-width:0}.admin-quota-row .admin-input:disabled{opacity:.55;cursor:default}.admin-quota-cost{margin-top:12px;max-width:820px}.admin-quota-cost-hint{font-size:10px;color:var(--text-secondary);grid-column:2 / span 3}.admin-quota-actions{display:flex;align-items:center;gap:10px;margin-top:12px}.admin-quota-ok{font-size:12px;color:var(--accent-green, #4ade80)}.admin-quota-err{font-size:12px;color:var(--accent-red)}.admin-row-msg{font-size:11px;margin-top:6px;color:var(--text-secondary)}.admin-row-msg-err{color:var(--accent-red)}.admin-empty-cell{text-align:center;color:var(--text-secondary);padding:16px!important}.admin-add-provider{display:flex;gap:8px;align-items:center;margin-top:12px}.admin-add-provider .admin-input{max-width:320px}.admin-role-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:10px;font-size:11px;vertical-align:middle;background:#ffffff0f;border:1px solid var(--border, #333);color:var(--text-secondary)}.admin-role-admin{background:#3fb9501f;border-color:#3fb95059;color:var(--accent-green)}.admin-role-operator{background:#d299221f;border-color:#d2992259;color:var(--accent-yellow)}.admin-role-viewer{background:#7882961f;border-color:#78829659;color:var(--text-secondary)}.admin-readonly-note{margin-top:12px;padding:10px 14px;border:1px solid rgba(210,153,34,.35);background:#d2992214;border-radius:8px;font-size:12px;color:var(--accent-yellow)}.admin-readonly-note code{background:#ffffff0f;padding:1px 4px;border-radius:4px;font-size:11px}.admin-users-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.admin-user-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border, #333);border-radius:8px;background:#ffffff05}.admin-user-name{font-weight:600;font-size:13px}.admin-user-since{font-size:11px;color:var(--text-secondary);flex:1}.admin-user-form{margin-top:0;max-width:420px}.admin-user-form select{background:#00000040;border:1px solid var(--border, #333);color:var(--text-primary);border-radius:6px;padding:6px 8px;font-size:12px}.hub-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0;border-bottom:1px solid var(--border-light);padding-bottom:10px}.hub-tab{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-light);border-radius:8px;padding:8px 14px;font-size:13px;cursor:pointer;transition:var(--transition)}.hub-tab:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.hub-tab.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#0d1117;font-weight:600}.hub-tab-count{margin-left:6px;background:#00000040;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700}.hub-tab.active .hub-tab-count{background:#0000004d}.hub-toolset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:14px}.hub-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:10px;padding:14px;transition:var(--transition)}.hub-card:hover{border-color:var(--border)}.hub-card-disabled{opacity:.72;border-color:var(--accent-red)}.hub-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.hub-card-title{display:flex;flex-direction:column;gap:2px;min-width:0}.hub-card-name{font-weight:600;font-size:14px}.hub-card-id{font-size:11px;color:var(--text-muted);font-family:SF Mono,Menlo,Consolas,monospace}.hub-card-desc{margin:8px 0;color:var(--text-secondary);font-size:12px}.hub-card-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.hub-chip{background:#58a6ff1f;color:var(--accent-blue);border:1px solid rgba(88,166,255,.25);border-radius:6px;padding:2px 8px;font-size:11px;font-family:SF Mono,Menlo,Consolas,monospace}.hub-chip-pending{background:#d9770624;color:var(--accent-warn, #d97706);border:1px dashed rgba(217,119,6,.45)}.chat-resolve-card{margin:10px 0;padding:10px 14px;border-radius:8px;border:1px solid rgba(88,166,255,.45);background:#58a6ff0f;font-size:13px}.chat-resolve-head{margin-bottom:6px;color:var(--text-primary)}.chat-resolve-cmd{margin:6px 0;padding:6px 10px;background:var(--bg-tertiary);border-radius:6px;overflow-x:auto}.chat-resolve-options{display:flex;flex-direction:column;gap:6px;margin:8px 0}.chat-resolve-options .chat-chip{text-align:left}.chat-resolve-foot{display:flex;align-items:center;gap:8px;margin-top:8px}.hub-reveal-row{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:12px}.hub-reveal-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-weight:500}.hub-reveal-toggle input[type=checkbox]{accent-color:var(--accent-blue);cursor:pointer}.hub-unsaved-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:4px 0 12px;padding:8px 12px;border-radius:6px;border:1px solid rgba(217,119,6,.45);background:#d9770614;color:var(--text-primary);font-size:12px}.hub-card-note{margin-top:10px;font-size:11px;color:var(--accent-yellow)}.hub-switch{position:relative;width:40px;height:22px;border-radius:12px;border:1px solid var(--border);background:#00000059;cursor:pointer;transition:var(--transition);flex-shrink:0}.hub-switch:hover:not(:disabled){border-color:var(--accent-blue)}.hub-switch:disabled{opacity:.5;cursor:not-allowed}.hub-switch.on{background:var(--accent-green);border-color:var(--accent-green)}.hub-switch-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#e6edf3;transition:var(--transition)}.hub-switch.on .hub-switch-knob{left:20px}.hub-alias-list,.hub-platform-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.hub-platform{display:flex;align-items:center;gap:8px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:8px;padding:6px 10px;font-size:12px}.hub-platform.configured{border-color:#3fb95066}.hub-platform-label{font-weight:600;color:var(--text-primary)}.hub-platform-env{color:var(--text-muted);font-size:11px;font-family:SF Mono,Menlo,Consolas,monospace}.hub-alias-row{display:flex;align-items:center;gap:8px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:8px;padding:6px 10px}.hub-send-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:8px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}.hub-send-form label{display:flex;flex-direction:column;gap:4px;min-width:0}.hub-send-form .hub-send-target{flex:2;min-width:240px}.hub-send-form .hub-send-message{flex:3;min-width:240px}.hub-send-form input{background:#00000040;border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:8px 10px;font-size:12px;min-width:0;width:100%;transition:border-color .15s ease}.hub-send-form input:focus{outline:none;border-color:var(--accent-blue)}.hub-send-form input:disabled{opacity:.55}.hub-send-form .admin-refresh-btn{flex-shrink:0}.hub-session-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}.hub-artifact-list{list-style:none;display:flex;flex-direction:column;gap:6px;margin-top:8px}.hub-artifact-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}.hub-artifact-title{color:var(--text-primary);font-weight:500}.hub-artifact-preview{flex-basis:100%;color:var(--text-muted);font-size:11px;background:#0003;border-radius:6px;padding:6px 8px;white-space:pre-wrap;word-break:break-word;font-family:SF Mono,Menlo,Consolas,monospace;max-height:60px;overflow:hidden}.task-run-form{display:flex;gap:8px;margin:12px 0 4px;align-items:stretch}.task-cmd-input{flex:1;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px}.task-timeout-select{width:auto;flex:0 0 auto}.task-hint{color:var(--text-muted);font-size:12px;margin:4px 0 12px}.task-console-wrap{margin:12px 0 16px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#0a0e14}.task-console-header{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-tertiary);border-bottom:1px solid var(--border);font-size:12px;flex-wrap:wrap}.task-console-cmd{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);color:var(--text-primary);overflow-wrap:anywhere}.task-meta{color:var(--text-muted);margin-left:auto}.task-cancel-btn{color:var(--accent-red)}.task-console{height:320px;overflow-y:auto;padding:8px 12px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.task-line-stdout{color:var(--text-primary)}.task-line-stderr{color:var(--accent-red)}.task-line-system{color:var(--text-muted);font-style:italic}.task-autoscroll{display:block;padding:6px 12px;border-top:1px solid var(--border-light);color:var(--text-muted);font-size:11px;cursor:pointer}.task-status{font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px;border:1px solid var(--border);background:var(--bg-tertiary);white-space:nowrap}.task-status-running{color:var(--accent-yellow);border-color:var(--accent-yellow)}.task-status-done{color:var(--accent-green);border-color:var(--accent-green)}.task-status-failed{color:var(--accent-red);border-color:var(--accent-red)}.task-status-cancelled{color:var(--text-muted)}.task-status-timeout{color:var(--accent-yellow)}.task-status-error{color:var(--accent-red)}.task-history-title{font-size:14px;margin:8px 0}.task-table tbody tr{cursor:pointer}.task-table tbody tr:hover{background:var(--bg-hover)}.task-table tbody tr.task-row-active{background:#58a6ff14;border-left:3px solid var(--accent-blue)}.task-table code{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;color:var(--text-primary)}.wa-panel{margin-top:8px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}.wa-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}.wa-panel-title{font-weight:600;font-size:13px;color:var(--text-primary)}.wa-badge{font-size:11px;padding:2px 10px;border-radius:999px;border:1px solid var(--border);color:var(--text-secondary);background:#0003}.wa-badge-paired{color:#4ade80;border-color:#4ade8066}.wa-badge-pairing{color:#fbbf24;border-color:#fbbf2466}.wa-actions,.wa-pairing{display:flex;flex-direction:column;gap:10px;margin-top:10px}.wa-action-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.wa-phone-row{gap:8px}.wa-phone-input{background:#00000040;border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:8px 10px;font-size:12px;min-width:240px;transition:border-color .15s ease}.wa-phone-input:focus{outline:none;border-color:var(--accent-blue)}.wa-phone-input:disabled{opacity:.55}.wa-qr-box{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;background:#fff;border-radius:10px;border:1px solid var(--border)}.wa-qr-box .admin-hint{color:#444;max-width:360px;text-align:center}.wa-qr-img{width:240px;height:240px;image-rendering:pixelated;border-radius:6px}.wa-code-box{padding:14px;background:#00000040;border:1px dashed var(--border);border-radius:10px;display:flex;flex-direction:column;gap:8px;align-items:center}.wa-code{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:28px;font-weight:700;letter-spacing:6px;color:var(--accent-blue, #3b82f6)}.wa-unpair-btn{border-color:#ef444480;color:#f87171}.admin-login-hint{margin:16px 0;padding:14px;border:1px dashed var(--border);border-radius:10px;color:var(--text-secondary);background:#00000026}.md-root{display:flex;flex-direction:column;gap:8px;font-size:13px;line-height:1.55}.md-root p.md-para{margin:0}.md-blank{height:6px}.md-heading{margin:4px 0 2px;font-weight:700;color:var(--text-primary)}.md-h1{font-size:17px}.md-h2{font-size:15px}.md-h3{font-size:14px}.md-h4,.md-h5,.md-h6{font-size:13px}.md-list{margin:0;padding-left:20px}.md-list li{margin:2px 0}.md-quote{margin:0;padding:4px 10px;border-left:3px solid var(--accent-blue, #3b82f6);color:var(--text-secondary);background:#3b82f614;border-radius:0 6px 6px 0}.md-hr{border:none;border-top:1px solid var(--border);margin:4px 0}.md-inline-code,.md-root :not(pre)>code{background:#7f7f7f33;border:1px solid rgba(127,127,127,.3);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.md-root ul:has(input[type=checkbox]){list-style:none;padding-left:4px}.md-root input[type=checkbox]{margin-right:6px;accent-color:var(--accent-blue, #3b82f6)}.md-code-pre code .hljs-keyword,.md-code-pre code .hljs-selector-tag,.md-code-pre code .hljs-built_in{color:#c678dd}.md-code-pre code .hljs-string,.md-code-pre code .hljs-attr,.md-code-pre code .hljs-template-tag{color:#98c379}.md-code-pre code .hljs-number,.md-code-pre code .hljs-literal,.md-code-pre code .hljs-symbol{color:#d19a66}.md-code-pre code .hljs-comment,.md-code-pre code .hljs-quote{color:#7f848e;font-style:italic}.md-code-pre code .hljs-function,.md-code-pre code .hljs-title,.md-code-pre code .hljs-title.function_{color:#61afef}.md-code-pre code .hljs-variable,.md-code-pre code .hljs-params,.md-code-pre code .hljs-property{color:#e06c75}.md-code-pre code .hljs-meta{color:#abb2bf}.md-code-pre code .hljs-emphasis{font-style:italic}.md-code-pre code .hljs-strong{font-weight:700}.md-root a{color:var(--accent-blue, #60a5fa);text-decoration:underline}.md-code-block{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#00000059}.md-code-head{display:flex;justify-content:space-between;align-items:center;padding:4px 10px;background:#7f7f7f26;border-bottom:1px solid var(--border)}.md-code-lang{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.md-code-copy{background:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:4px;padding:1px 8px;font-size:11px;cursor:pointer}.md-code-copy:hover{color:var(--text-primary);border-color:var(--accent-blue, #3b82f6)}.md-code-pre{margin:0;padding:10px 12px;overflow-x:auto}.md-code-pre code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;white-space:pre;color:var(--text-primary)}.md-table{border-collapse:collapse;font-size:12px;margin:2px 0;width:100%}.md-table th,.md-table td{border:1px solid var(--border);padding:4px 8px;text-align:left}.md-table th{background:#7f7f7f26;font-weight:600}.empty-state-title{margin:0 0 10px;color:var(--text-secondary)}.empty-state-chips{display:flex;flex-wrap:wrap;gap:8px}.chat-project-bar{border:1px solid var(--border);border-radius:10px;background:var(--bg-card);padding:8px 10px;margin-bottom:10px}.chat-project-attached{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}.chat-project-icon{font-size:14px}.chat-project-name{font-weight:700}.chat-project-meta{color:var(--text-secondary)}.chat-project-path{color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-project-pick{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}.chat-project-hint{color:var(--text-secondary)}.chat-project-chips{display:flex;gap:6px;flex-wrap:wrap}.chat-project-input{flex:1;min-width:180px;background:#00000040;border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:6px 10px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.chat-project-input:focus{outline:none;border-color:var(--accent-blue)}.chat-project-error{color:#f87171}.chat-project-pick{position:relative}.chat-browse-popover{position:absolute;top:100%;left:0;z-index:100;width:380px;max-height:360px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0000004d;display:flex;flex-direction:column;overflow:hidden;margin-top:4px}.chat-browse-head{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:11px}.chat-browse-path{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text-secondary)}.chat-browse-list{flex:1;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:1px}.chat-browse-entry{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;border:none;background:transparent;color:var(--text-primary);font-size:12px;border-radius:6px;cursor:pointer;text-align:left}.chat-browse-entry:hover{background:#ffffff0f}.chat-browse-foot{display:flex;align-items:center;gap:6px;padding:8px 10px;border-top:1px solid var(--border)}.chat-browse-breadcrumbs{flex:1;display:flex;align-items:center;gap:2px;overflow-x:auto;white-space:nowrap;font-size:11px}.chat-breadcrumb{background:none;border:none;color:var(--accent);cursor:pointer;padding:2px 4px;border-radius:4px;font-size:11px}.chat-breadcrumb:hover{background:#ffffff1a}.chat-breadcrumb-sep{color:var(--text-secondary);font-size:10px}.chat-browse-drives{display:flex;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border);flex-wrap:wrap}.chat-browse-drive{padding:4px 10px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);border-radius:6px;cursor:pointer;font-size:11px}.chat-browse-drive:hover{background:#ffffff14;border-color:var(--accent)}.chat-browse-search{padding:6px 10px;border-bottom:1px solid var(--border)}.chat-browse-filter{width:100%;padding:4px 8px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);border-radius:6px;font-size:12px;outline:none}.chat-browse-filter:focus{border-color:var(--accent)}.chat-browse-entry-icon{font-size:14px}.chat-browse-entry-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-browse-entry-date{font-size:10px;color:var(--text-secondary)}.chat-session-project-banner{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;margin:0 14px 8px;font-size:13px;color:var(--text-secondary)}.chat-session-project-banner code{background:var(--bg-primary);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--text-primary);word-break:break-all}.chat-layout{display:flex;gap:12px;min-height:380px}.chat-rail{width:34px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding-top:8px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card)}.chat-rail-btn{background:transparent;border:none;font-size:16px;cursor:pointer;padding:6px;border-radius:6px}.chat-rail-btn:hover{background:#3b82f61f}.chat-sidebar{width:260px;flex-shrink:0;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);display:flex;flex-direction:column;max-height:480px;overflow:hidden}.chat-sidebar-head{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;font-size:12px;font-weight:600;border-bottom:1px solid var(--border);color:var(--text-secondary)}.chat-sidebar-head-actions{display:flex;gap:4px;align-items:center}.chat-mini-action{background:transparent;border:none;cursor:pointer;font-size:11px;padding:2px 5px;border-radius:5px;color:var(--text-secondary)}.chat-mini-action:hover{background:#3b82f626;color:var(--text-primary)}.chat-session-search{width:calc(100% - 20px);margin:8px 10px;padding:6px 8px;font-size:12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-input, #0d1117);color:var(--text-primary)}.chat-session-group{margin-bottom:4px}.chat-session-group-label{padding:6px 10px 2px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);opacity:.8}.chat-session-main{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:transparent;border:none;cursor:pointer;padding:4px 0;color:var(--text-primary);min-width:0}.chat-session-preview{font-size:11px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-session-actions{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:none;gap:2px}.chat-session-rename{display:flex;gap:4px;align-items:center;padding:4px 0}.chat-session-rename input{flex:1;min-width:0;font-size:12px;padding:4px 6px;border:1px solid var(--accent-blue, #3b82f6);border-radius:6px;background:var(--bg-input, #0d1117);color:var(--text-primary)}.chat-sidebar-empty{padding:14px 10px;font-size:12px;color:var(--text-secondary)}.chat-sidebar-list{overflow-y:auto;flex:1}.chat-session-item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:8px 10px;background:transparent;border:none;border-bottom:1px solid rgba(127,127,127,.15);cursor:pointer;color:var(--text-primary)}.chat-session-item{position:relative;padding-right:40px}.chat-session-item:hover{background:#3b82f61a}.chat-session-item:hover .chat-session-actions{display:flex}.chat-session-item.chat-session-active{background:#3b82f62e;border-left:3px solid var(--accent-blue, #3b82f6)}.chat-session-title{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-session-meta{font-size:11px;color:var(--text-secondary)}.chat-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.ops-console{margin:10px 0;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}.ops-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.ops-custom-row{display:flex;gap:8px;align-items:center}.ops-custom-row input{flex:1;background:#00000040;border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:8px 10px;font-size:12px;min-width:0;transition:border-color .15s ease}.ops-custom-row input:focus{outline:none;border-color:var(--accent-blue)}.ops-console-box{margin:12px 0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#0000004d}.ops-console-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px;color:var(--text-secondary)}.ops-console{max-height:320px;overflow-y:auto;margin:0;padding:12px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;line-height:1.5;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.chat-head-actions{display:flex;align-items:center;gap:10px}.chat-thread{display:flex;flex-direction:column;gap:10px;margin:14px 0;padding:14px;max-height:60vh;overflow-y:auto;background:#0000002e;border:1px solid var(--border);border-radius:10px}.chat-bubble{max-width:85%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-card);white-space:pre-wrap;word-break:break-word}.chat-user{align-self:flex-end;background:#3b82f62e;border-color:#3b82f666}.chat-assistant{align-self:flex-start}.chat-error{border-color:#ef444480}.chat-bubble-role{font-size:11px;font-weight:600;color:var(--text-secondary);margin-bottom:4px}.chat-bubble-text{font-size:13px;line-height:1.5;color:var(--text-primary)}.chat-streaming .chat-bubble-text{margin:0 0 6px}.chat-streaming .chat-bubble-text>:last-child:after{content:"▍";color:var(--accent-blue, #4da3ff);animation:chat-stream-cursor .9s step-end infinite}@keyframes chat-stream-cursor{0%,to{opacity:1}50%{opacity:0}}.chat-working{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:13px}.chat-dots:after{content:"…";animation:chat-dots 1.2s infinite}.chat-cancel-btn{align-self:center;white-space:nowrap}.chat-cancel-btn:hover{border-color:var(--danger, #e5534b);color:var(--danger, #e5534b)}.chat-retry-row{display:flex;align-items:center;gap:10px;margin:0 0 10px}@keyframes chat-dots{0%{content:""}33%{content:"."}66%{content:".."}to{content:"..."}}.chat-followups{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}.chat-chip{background:#3b82f61f;border:1px solid rgba(59,130,246,.45);color:var(--text-primary);border-radius:999px;padding:5px 12px;font-size:12px;cursor:pointer;transition:background .15s ease;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-chip:hover{background:#3b82f647}.chat-composer{border:1px solid var(--border);border-radius:10px;padding:6px 8px;background:var(--bg-card);display:flex;flex-direction:column;gap:6px}.chat-composer:focus-within{border-color:var(--accent-blue, #3b82f6)}.chat-composer-drag{border-color:var(--accent-blue, #3b82f6);background:#3b82f60f}.chat-attach-row{display:flex;flex-wrap:wrap;gap:6px}.chat-attach-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:3px 8px;border:1px solid var(--border);border-radius:999px;background:#3b82f614;color:var(--text-primary);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-paste-offer{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 8px;border:1px dashed var(--border);border-radius:8px;background:#facc150d}.chat-attach-btn{background:transparent;border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:14px;padding:6px 8px;line-height:1;color:var(--text-secondary)}.chat-attach-btn:hover:not(:disabled){background:#3b82f61f}.chat-attach-btn:disabled{opacity:.4;cursor:not-allowed}.chat-attach-content{margin-top:6px}.chat-attach-content pre{margin:4px 0 0;padding:8px 10px;font-size:11px;line-height:1.4;max-height:200px;overflow:auto;background:var(--bg-input, #0d1117);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.chat-input-row{display:flex;gap:8px;align-items:center}.chat-input-row textarea.chat-input-box{flex:1;background:#00000040;border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:10px 12px;font-size:13px;min-width:0;resize:vertical;min-height:40px;max-height:160px;font-family:inherit;line-height:1.4;transition:border-color .15s ease}.chat-input-row textarea.chat-input-box:focus{outline:none;border-color:var(--accent-blue)}.chat-input-row textarea.chat-input-box:disabled{opacity:.55}.chat-working-lines{display:flex;flex-direction:column;gap:2px}.chat-step-line{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11.5px;color:var(--text-secondary);line-height:1.5}.chat-steps{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}.chat-steps summary{cursor:pointer;font-size:11px;color:var(--accent-blue, #3b82f6);-webkit-user-select:none;user-select:none}.chat-steps>div{margin-top:6px}.chat-tool-cards{display:flex;flex-direction:column;gap:6px;margin:8px 0 2px}.chat-tool-card{border:1px solid var(--border);border-left:3px solid var(--accent-blue, #3b82f6);border-radius:8px;padding:6px 8px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-tool-card.chat-tool-ok{border-left-color:#22c55e}.chat-tool-card.chat-tool-err{border-left-color:#ef4444}.chat-tool-card.chat-tool-running{border-left-color:var(--accent-blue, #3b82f6);opacity:.92}.chat-tool-head{display:flex;align-items:center;gap:6px;min-width:0}.chat-tool-icon{font-size:12px;flex:none}.chat-tool-name{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;font-weight:600;color:var(--text-primary);flex:none}.chat-tool-args{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.chat-tool-status{font-size:12px;flex:none}.chat-tool-dur{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:10.5px;color:var(--text-secondary);flex:none}.chat-tool-detail{margin-top:5px}.chat-tool-detail summary{cursor:pointer;font-size:10.5px;color:var(--accent-blue, #3b82f6);-webkit-user-select:none;user-select:none}.chat-tool-body{margin:5px 0 0;padding:6px 8px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:180px;overflow:auto;background:color-mix(in srgb,var(--bg, #14171c) 70%,transparent);border-radius:6px;color:var(--text-secondary)}.chat-plan-card{border:1px solid var(--border);border-left:3px solid #a78bfa;border-radius:8px;padding:8px 10px;margin:8px 0 2px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-plan-head{display:flex;align-items:center;gap:6px}.chat-plan-icon{font-size:12px;flex:none}.chat-plan-goal{font-size:12.5px;font-weight:600;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.chat-plan-count{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;color:var(--text-secondary);flex:none}.chat-plan-steps{margin-top:7px;display:flex;flex-direction:column;gap:3px}.chat-plan-step{display:flex;align-items:center;gap:6px;min-width:0}.chat-plan-step-icon{font-size:11px;flex:none}.chat-plan-step-text{font-size:12px;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.chat-plan-step-status{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:10px;color:var(--text-secondary);flex:none;text-transform:uppercase}.chat-plan-step-done .chat-plan-step-text{text-decoration:line-through;opacity:.65}.chat-plan-step-blocked .chat-plan-step-text{color:#ef4444}.chat-diff-card{border:1px solid var(--border);border-left:3px solid #f59e0b;border-radius:8px;padding:8px 10px;margin:8px 0 2px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-diff-head{display:flex;align-items:center;gap:6px}.chat-diff-icon{font-size:12px;flex:none}.chat-diff-title{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;font-weight:600;color:var(--text-primary)}.chat-diff-meta{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;color:var(--text-secondary);margin-left:auto}.chat-diff-files{margin-top:6px;display:flex;flex-direction:column;gap:4px}.chat-diff-file{border:1px solid var(--border);border-radius:6px}.chat-diff-file summary{cursor:pointer;padding:4px 8px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11.5px;color:var(--accent-blue, #3b82f6);-webkit-user-select:none;user-select:none}.chat-diff-body{margin:0;padding:6px 8px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:220px;overflow:auto;background:color-mix(in srgb,var(--bg, #14171c) 70%,transparent);border-top:1px dashed var(--border)}.chat-diff-line{min-height:1.5em}.chat-diff-line.diff-add{color:#4ade80;background:color-mix(in srgb,#22c55e 12%,transparent)}.chat-diff-line.diff-del{color:#f87171;background:color-mix(in srgb,#ef4444 12%,transparent)}.chat-diff-line.diff-hunk{color:var(--text-secondary);background:color-mix(in srgb,#3b82f6 10%,transparent)}.chat-diff-file-path{display:flex;align-items:center;gap:6px}.chat-diff-toggle{flex:none;width:18px;height:18px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:11px;line-height:1;cursor:pointer;padding:0}.chat-diff-toggle-on{background:color-mix(in srgb,#22c55e 22%,transparent);border-color:#22c55e;color:#4ade80}.chat-diff-file-rejected{opacity:.55}.chat-diff-file-rejected .chat-diff-toggle{background:color-mix(in srgb,#ef4444 18%,transparent);border-color:#ef4444;color:#f87171}.chat-diff-actions{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}.chat-diff-locked{font-style:italic}.chat-artifacts{display:flex;flex-direction:column;gap:6px;margin:8px 0 2px}.chat-artifact-item{border-radius:8px}.chat-artifact-item:focus{outline:2px solid var(--accent-blue, #3b82f6);outline-offset:2px}.chat-card-copy{background:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:4px;padding:1px 8px;font-size:11px;cursor:pointer;flex:none;margin-left:6px}.chat-card-copy:hover{color:var(--text-primary);border-color:var(--accent-blue, #3b82f6)}.chat-result-card{border:1px solid var(--border);border-left:3px solid #6e7681;border-radius:8px;padding:8px 10px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-result-pass{border-left-color:#22c55e}.chat-result-fail{border-left-color:#ef4444}.chat-result-head{display:flex;align-items:center;gap:6px}.chat-result-icon{font-size:12px;flex:none}.chat-result-title{font-size:12.5px;font-weight:600;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.chat-result-meta{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:10.5px;color:var(--text-secondary);flex:none;text-transform:uppercase}.chat-result-body{margin:6px 0 0;padding:6px 8px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:220px;overflow:auto;background:color-mix(in srgb,var(--bg, #14171c) 70%,transparent);border-radius:6px;color:var(--text-secondary)}.chat-deploy-card{border:1px solid var(--border);border-left:3px solid #22d3ee;border-radius:8px;padding:8px 10px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-deploy-head{display:flex;align-items:center;gap:6px}.chat-deploy-icon{font-size:12px;flex:none}.chat-deploy-title{font-size:12.5px;font-weight:600;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.chat-deploy-url{display:block;margin-top:6px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11.5px;color:var(--accent-blue, #3b82f6);word-break:break-all}.chat-task-card{border:1px solid var(--border);border-left:3px solid var(--accent-blue, #3b82f6);border-radius:8px;padding:8px 10px;margin:8px 0 2px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-task-running{border-left-color:var(--accent-blue, #3b82f6)}.chat-task-ok{border-left-color:#22c55e}.chat-task-err{border-left-color:#ef4444}.chat-task-head{display:flex;align-items:center;gap:8px;min-width:0}.chat-task-icon{font-size:12px;flex:none}.chat-task-cmd{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.chat-task-status{font-size:11.5px;color:var(--text-secondary);flex:none}.chat-task-exit,.chat-task-dur{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:10.5px;color:var(--text-secondary);flex:none}.chat-task-logs{margin:6px 0 0;padding:6px 8px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:240px;overflow:auto;background:color-mix(in srgb,var(--bg, #14171c) 70%,transparent);border-radius:6px;color:var(--text-secondary)}.chat-task-log{white-space:pre-wrap;word-break:break-word}.chat-task-log-stdout{color:var(--text-secondary)}.chat-task-log-stderr{color:#f87171}.chat-task-log-system{color:var(--text-secondary);font-style:italic;opacity:.85}.chat-task-log-sep{margin:4px 0 2px;padding:1px 6px;border-top:1px dashed var(--border);font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:9.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.chat-task-log-sep-stderr{color:#f87171}.chat-task-log-sep-system{color:var(--text-secondary)}.chat-draft-card{border:1px solid var(--border);border-left:3px solid #bc8cff;border-radius:8px;padding:10px 12px;margin:8px 0 2px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-draft-card.chat-draft-saved{border-left-color:#4ade80}.chat-draft-card.chat-draft-rejected{border-left-color:#6e7681;opacity:.75}.chat-draft-head{display:flex;align-items:center;gap:6px}.chat-draft-icon{font-size:12px;flex:none}.chat-draft-title{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;font-weight:600;color:var(--text-primary)}.chat-draft-meta{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;color:var(--text-secondary);margin-left:auto}.chat-draft-desc{margin:6px 0 0;font-size:12.5px;color:var(--text-secondary)}.chat-draft-body{margin:6px 0 0;padding:6px 8px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow:auto;background:color-mix(in srgb,var(--bg, #14171c) 70%,transparent);border:1px dashed var(--border);border-radius:6px}.chat-draft-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.chat-secret-card{border:1px solid var(--border);border-left:3px solid var(--accent-yellow, #d29922);border-radius:8px;padding:10px 12px;margin:8px 0 2px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-secret-head{display:flex;align-items:center;gap:6px}.chat-secret-icon{font-size:12px;flex:none}.chat-secret-title{font-size:12px;font-weight:600;color:var(--text-primary)}.chat-secret-persisted{font-size:12px;color:var(--accent-green);margin:6px 0 0}.chat-secret-persisted code{background:color-mix(in srgb,var(--accent-green, #3fb950) 15%,transparent);padding:1px 5px;border-radius:3px;font-size:11px;margin:0 2px}.chat-secret-fields{margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.chat-secret-row{display:flex;align-items:center;gap:8px}.chat-secret-label{font-size:12px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);color:var(--text-secondary);min-width:160px}.chat-secret-input{flex:1;background:color-mix(in srgb,var(--bg, #14171c) 70%,transparent);border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-size:12px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);color:var(--text-primary)}.chat-secret-input:focus{outline:none;border-color:var(--accent-blue)}.chat-exec-card{border:1px solid var(--border);border-left:3px solid var(--accent-green, #3fb950);border-radius:8px;padding:10px 12px;margin:8px 0 2px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-exec-card.chat-exec-failure{border-left-color:var(--accent-red, #f85149)}.chat-exec-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chat-exec-icon{font-size:12px;flex:none}.chat-exec-title{font-size:12px;font-weight:600;color:var(--text-primary)}.chat-exec-status{font-size:11px;color:var(--accent-green)}.chat-exec-card.chat-exec-failure .chat-exec-status{color:var(--accent-red)}.chat-exec-meta{font-size:11px;color:var(--text-secondary, #8b949e);margin-left:auto}.chat-exec-expand{font-size:10px;color:var(--text-secondary, #8b949e);flex:none}.chat-exec-body{margin-top:8px;border-top:1px solid var(--border);padding-top:8px}.chat-exec-section{margin-bottom:8px}.chat-exec-section-title{font-size:11px;font-weight:600;color:var(--text-secondary, #8b949e);margin-bottom:4px;text-transform:uppercase}.chat-exec-output{font-family:SF Mono,Fira Code,monospace;font-size:11px;line-height:1.4;background:var(--bg-primary, #0d1117);border:1px solid var(--border);border-radius:4px;padding:8px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto;color:var(--text-primary)}.chat-exec-section.chat-exec-stderr .chat-exec-output{border-color:var(--accent-red, #f85149);color:var(--accent-red, #f85149)}.chat-exec-details{display:flex;gap:12px;font-size:11px;color:var(--text-secondary, #8b949e)}.env-var-editor{padding:12px;background:var(--bg-secondary, #1b1f27);border:1px solid var(--border);border-radius:8px}.env-var-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.env-var-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.env-var-add-form{display:flex;gap:8px;margin-bottom:12px;padding:8px;background:var(--bg-primary, #0d1117);border-radius:6px}.env-var-input{flex:1;padding:6px 8px;font-size:12px;background:var(--bg-secondary, #1b1f27);border:1px solid var(--border);border-radius:4px;color:var(--text-primary)}.env-var-input:focus{outline:none;border-color:var(--accent-blue)}.env-var-list{display:flex;flex-direction:column;gap:8px}.env-var-empty{font-size:12px;color:var(--text-secondary, #8b949e);text-align:center;padding:20px}.env-var-row{padding:8px 10px;background:var(--bg-primary, #0d1117);border:1px solid var(--border);border-radius:6px}.env-var-row.env-var-set{border-left:3px solid var(--accent-green, #3fb950)}.env-var-row.env-var-missing{border-left:3px solid var(--accent-red, #f85149)}.env-var-row.env-var-blocked{border-left:3px solid var(--accent-yellow, #d29922);opacity:.7}.env-var-row-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.env-var-name{font-size:12px;font-weight:600;color:var(--text-primary);font-family:SF Mono,Fira Code,monospace}.env-var-required-badge,.env-var-blocked-badge{font-size:10px;font-weight:400;color:var(--accent-yellow, #d29922);margin-left:6px}.env-var-status{font-size:11px;color:var(--text-secondary, #8b949e)}.env-var-description{font-size:11px;color:var(--text-secondary, #8b949e);margin:4px 0}.env-var-edit,.env-var-actions{display:flex;gap:6px;margin-top:6px}.env-var-test-result{font-size:11px;margin-left:auto}.env-var-test-pass{color:var(--accent-green, #3fb950)}.env-var-test-fail{color:var(--accent-red, #f85149)}.env-var-help{margin-top:12px;padding:8px;background:var(--bg-primary, #0d1117);border-radius:4px;font-size:11px;color:var(--text-secondary, #8b949e)}.env-var-help code{background:var(--bg-secondary, #1b1f27);padding:1px 4px;border-radius:3px;font-family:SF Mono,Fira Code,monospace}.env-var-notice{margin:8px 0;padding:8px 10px;background:var(--bg-secondary, #1b1f27);border-left:3px solid var(--accent, #58a6ff);border-radius:4px;font-size:12px;color:var(--text-secondary, #8b949e)}.env-var-notice-error{border-left-color:var(--danger, #f85149);color:var(--danger, #f85149)}.execution-history{padding:12px;background:var(--bg-secondary, #1b1f27);border:1px solid var(--border);border-radius:8px}.execution-history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.execution-history-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.execution-history-actions{display:flex;gap:6px}.execution-history-stats{display:flex;gap:16px;margin-bottom:12px;padding:8px;background:var(--bg-primary, #0d1117);border-radius:6px}.stat-item{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-value{font-size:16px;font-weight:600;color:var(--text-primary)}.stat-label{font-size:10px;color:var(--text-secondary, #8b949e);text-transform:uppercase}.stat-success .stat-value{color:var(--accent-green, #3fb950)}.stat-failure .stat-value{color:var(--accent-red, #f85149)}.execution-history-filters{display:flex;gap:8px;margin-bottom:12px}.execution-history-filters .env-var-input{flex:1}.execution-history-list{display:flex;flex-direction:column;gap:6px;max-height:400px;overflow-y:auto}.execution-history-empty{text-align:center;padding:20px;color:var(--text-secondary, #8b949e);font-size:12px}.execution-history-entry{padding:8px 10px;background:var(--bg-primary, #0d1117);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:background .15s}.execution-history-entry:hover{background:var(--bg-secondary, #1b1f27)}.execution-history-entry.success{border-left:3px solid var(--accent-green, #3fb950)}.execution-history-entry.failure{border-left:3px solid var(--accent-red, #f85149)}.execution-history-entry.timeout{border-left:3px solid var(--accent-yellow, #d29922)}.entry-header{display:flex;align-items:center;gap:8px}.entry-icon{font-size:12px;flex:none}.entry-skill{font-size:12px;font-weight:600;color:var(--text-primary)}.entry-runtime{font-size:11px;color:var(--text-secondary, #8b949e)}.entry-duration{font-size:11px;color:var(--text-secondary, #8b949e);margin-left:auto}.entry-time{font-size:10px;color:var(--text-secondary, #8b949e)}.entry-expand{font-size:10px;color:var(--text-secondary, #8b949e);flex:none}.entry-details{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.entry-detail-row{display:flex;gap:8px;font-size:11px}.detail-label{color:var(--text-secondary, #8b949e);min-width:80px}.detail-value{color:var(--text-primary)}.detail-value.entry-error{color:var(--accent-red, #f85149)}.detail-value code{background:var(--bg-secondary, #1b1f27);padding:1px 4px;border-radius:3px;font-family:SF Mono,Fira Code,monospace}.platform-config{margin-top:10px}.platform-config .hub-platform{flex-direction:column;align-items:stretch;width:100%;gap:6px;padding:8px 10px}.platform-config .hub-platform-head{display:flex;align-items:center;gap:8px}.platform-config .hub-platform-head .admin-refresh-btn{margin-left:auto}.platform-config .hub-platform-env{display:flex;flex-wrap:wrap;gap:4px 12px}.platform-config-form{display:flex;flex-direction:column;gap:8px;padding-top:4px;border-top:1px dashed var(--border-light)}.platform-config-form .hub-send-target{width:100%}.platform-config-form input{width:100%;box-sizing:border-box}.platform-config-actions{display:flex;gap:8px}.hub-remove-btn{background:transparent;border:1px solid rgba(224,49,49,.5);color:#e03131;border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer}.hub-remove-btn:hover{background:#e031311a}.platform-docs-link{text-decoration:none;font-size:11px;padding:2px 6px;border-radius:4px;color:var(--accent-blue, #58a6ff);border:1px solid rgba(88,166,255,.3)}.platform-docs-link:hover{background:#58a6ff1a}.platform-setup-hint{font-size:12px;color:var(--text-secondary, #8b949e);padding:4px 8px;background:#58a6ff0f;border-radius:4px;border-left:2px solid rgba(88,166,255,.3);line-height:1.4}.wizard-start-btn{background:#38bd9426;border:1px solid rgba(56,189,148,.4);color:#38bd94;border-radius:6px;padding:2px 8px;font-size:11px;cursor:pointer;white-space:nowrap}.wizard-start-btn:hover{background:#38bd9440}.wizard-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.wizard-modal{background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:12px;width:520px;max-width:90vw;max-height:80vh;overflow-y:auto;box-shadow:0 16px 48px #00000080}.wizard-header{display:flex;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid var(--border-light, #30363d)}.wizard-icon{font-size:20px}.wizard-title{font-size:16px;font-weight:600;color:var(--text-primary, #e6edf3);flex:1}.wizard-body{padding:20px}.wizard-section-title{font-size:14px;font-weight:600;color:var(--text-primary, #e6edf3);margin:0 0 12px}.wizard-steps{margin:0 0 16px;padding-left:20px;color:var(--text-secondary, #8b949e);font-size:13px;line-height:1.8}.wizard-steps li{margin-bottom:4px}.wizard-nav{display:flex;gap:8px;margin-top:16px}.wizard-steps-indicator{display:flex;gap:4px;margin-left:auto;margin-right:8px}.wizard-step-dot{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;background:var(--bg-tertiary, #1c2333);color:var(--text-secondary, #8b949e);border:1px solid var(--border-light, #30363d)}.wizard-step-dot.active{background:#58a6ff33;color:var(--accent-blue, #58a6ff);border-color:#58a6ff80}.wizard-verify-status{padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:12px;background:var(--bg-tertiary, #1c2333);color:var(--text-secondary, #8b949e)}.wizard-verify-status.ok{background:#38bd941a;color:#38bd94;border:1px solid rgba(56,189,148,.3)}.wizard-verify-status.err{background:#e031311a;color:#e03131;border:1px solid rgba(224,49,49,.3)}.wizard-test-section{margin-top:12px;padding:12px;background:var(--bg-tertiary, #1c2333);border-radius:8px;border:1px solid var(--border-light, #30363d)}.wizard-test-row{display:flex;gap:8px;margin-bottom:8px}.wizard-test-input{flex:1;background:var(--bg-primary, #0d1117);border:1px solid var(--border-light, #30363d);border-radius:6px;padding:6px 10px;font-size:13px;color:var(--text-primary, #e6edf3)}.wizard-hint{margin-top:12px;font-size:12px;color:var(--text-secondary, #8b949e);line-height:1.4}.platforms-summary{display:flex;align-items:center;gap:20px;padding:12px 16px;background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:8px;margin-bottom:16px}.platforms-summary-stat{display:flex;flex-direction:column;align-items:center;min-width:60px}.platforms-summary-number{font-size:24px;font-weight:700;color:var(--text-primary, #e6edf3)}.platforms-summary-label{font-size:11px;color:var(--text-secondary, #8b949e);text-transform:uppercase}.platforms-summary-filters{display:flex;gap:6px;margin-left:auto}.platforms-filter-btn{background:transparent;border:1px solid var(--border-light, #30363d);color:var(--text-secondary, #8b949e);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer}.platforms-filter-btn:hover{background:var(--bg-hover, #1c2538)}.platforms-filter-btn.active{background:#58a6ff26;border-color:#58a6ff66;color:var(--accent-blue, #58a6ff)}.platforms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.platform-card{background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:8px;padding:14px;transition:border-color .2s}.platform-card:hover{border-color:var(--border-hover, #484f58)}.platform-card.configured{border-color:#38bd944d;background:#38bd940a}.platform-card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.platform-card-icon{font-size:24px;width:32px;text-align:center}.platform-card-info{flex:1;display:flex;flex-direction:column}.platform-card-name{font-size:14px;font-weight:600;color:var(--text-primary, #e6edf3)}.platform-card-category{font-size:11px;color:var(--text-secondary, #8b949e)}.platform-card-vars{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.platform-var-chip{font-size:11px;padding:2px 6px;border-radius:4px;background:var(--bg-tertiary, #1c2333);color:var(--text-secondary, #8b949e);font-family:monospace}.platform-var-chip.set{background:#38bd941f;color:#38bd94}.platform-card-actions{display:flex;gap:6px;align-items:center}.platform-card-badge{font-size:12px;color:#38bd94;font-weight:500}.platform-card-hint{margin-top:8px;font-size:11px;color:var(--text-secondary, #8b949e);line-height:1.4;padding:6px 8px;background:#58a6ff0f;border-radius:4px;border-left:2px solid rgba(88,166,255,.3)}.platforms-cli-hint{margin-top:16px;padding:10px 14px;background:var(--bg-secondary, #161b22);border:1px dashed var(--border-light, #30363d);border-radius:8px;font-size:13px}.platforms-cli-hint code{background:var(--bg-tertiary, #1c2333);padding:2px 6px;border-radius:4px;font-size:12px}.hub-chip-bundled{background:#bc8cff2e!important;color:var(--accent-purple, #bc8cff)!important;border:1px solid rgba(188,140,255,.4)}.hub-market-search{display:flex;gap:8px;margin:0 0 10px}.hub-market-search input{flex:1;min-width:0}.hub-card-actions{display:flex;align-items:center;gap:8px}.hub-mini-btn{background:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:6px;padding:3px 10px;font-size:12px;cursor:pointer;transition:var(--transition)}.hub-mini-btn:hover{border-color:#e0313180;color:#e03131;background:#e0313114}.hub-mini-btn:disabled{opacity:.5;cursor:not-allowed}.chat-chip-selected{background:#3b82f673!important;border-color:#3b82f6e6!important;box-shadow:0 0 0 1px #3b82f680}.chat-question-card{border-color:#eab30880}.chat-question-card .chat-chip{max-width:none;white-space:normal;text-align:left}.timeline-bar-container{display:flex;flex-direction:column;gap:2px;min-width:120px;max-width:200px}.timeline-bar{height:6px;background:#21262d;border-radius:3px;overflow:hidden;width:100%}.timeline-bar.small{height:3px}.timeline-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.timeline-bar-fill.probe{background:#58a6ff}.timeline-bar-fill.verify{background:#3fb950}.timeline-bar-fill.use{background:#d29922}.bedrock-onboarding{max-width:900px}.bedrock-status-bar{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:8px;margin-bottom:20px;flex-wrap:wrap}.bedrock-status-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary, #8b949e)}.bedrock-status-label{color:var(--text-secondary, #8b949e);font-size:12px}.bedrock-status-actions{margin-left:auto;display:flex;gap:8px}.bedrock-setup-wizard{background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:8px;padding:20px;margin-top:16px}.bedrock-wizard-step{margin-bottom:24px}.bedrock-wizard-step h4{font-size:15px;font-weight:600;color:var(--text-primary, #e6edf3);margin-bottom:10px}.bedrock-auth-options{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.bedrock-auth-option{display:flex;align-items:flex-start;gap:10px;padding:12px;background:var(--bg-tertiary, #1c2333);border:1px solid var(--border-light, #30363d);border-radius:8px;cursor:pointer;transition:border-color .15s}.bedrock-auth-option:hover{border-color:var(--accent-blue, #58a6ff)}.bedrock-auth-option.selected{border-color:var(--accent-blue, #58a6ff);background:#58a6ff14}.bedrock-auth-option strong{display:block;color:var(--text-primary, #e6edf3);font-size:14px}.bedrock-auth-option span{display:block;color:var(--text-secondary, #8b949e);font-size:12px;margin-top:2px}.bedrock-auth-option input[type=radio]{margin-top:2px;accent-color:var(--accent-blue, #58a6ff)}.bedrock-wizard-fields{display:flex;flex-direction:column;gap:10px}.bedrock-setup-hint{padding:10px 12px;background:var(--bg-tertiary, #1c2333);border:1px solid var(--border-light, #30363d);border-radius:6px;font-size:13px;color:var(--text-secondary, #8b949e);margin-bottom:10px}.bedrock-setup-hint strong{color:var(--text-primary, #e6edf3);display:block;margin-bottom:4px}.bedrock-setup-hint ol{margin:4px 0 0 18px;padding:0}.bedrock-setup-hint li{margin-bottom:2px}.bedrock-region-select{width:100%;max-width:400px;padding:8px 12px;background:var(--bg-tertiary, #1c2333);color:var(--text-primary, #e6edf3);border:1px solid var(--border-light, #30363d);border-radius:6px;font-size:14px}.bedrock-model-access-hint{margin-bottom:12px}.bedrock-family-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.bedrock-family-card{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-tertiary, #1c2333);border:1px solid var(--border-light, #30363d);border-radius:6px;cursor:pointer;transition:border-color .15s}.bedrock-family-card:hover{border-color:var(--accent-blue, #58a6ff)}.bedrock-family-card.selected{border-color:var(--accent-blue, #58a6ff);background:#58a6ff14}.bedrock-family-card input[type=checkbox]{accent-color:var(--accent-blue, #58a6ff)}.bedrock-family-card strong{display:block;font-size:13px;color:var(--text-primary, #e6edf3)}.bedrock-family-card span{display:block;font-size:11px;color:var(--text-secondary, #8b949e)}.bedrock-wizard-actions{display:flex;gap:10px;margin-top:16px}.bedrock-getting-started{margin-top:20px}.bedrock-steps{display:flex;flex-direction:column;gap:12px;margin-top:12px}.bedrock-step{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:8px}.bedrock-step-num{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--accent-blue, #58a6ff);color:#fff;border-radius:50%;font-weight:700;font-size:14px;flex-shrink:0}.bedrock-step strong{display:block;color:var(--text-primary, #e6edf3);font-size:14px}.bedrock-step span{display:block;color:var(--text-secondary, #8b949e);font-size:12px;margin-top:2px}.bedrock-quick-status,.bedrock-probe-results{margin-top:16px}.bedrock-probe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;margin-top:12px}.bedrock-probe-card{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:6px;font-size:12px}.bedrock-probe-card.bedrock-probe-accessible{border-color:#38bd944d}.bedrock-probe-card.bedrock-probe-permission-denied{border-color:#d299224d}.bedrock-probe-id{flex:1;color:var(--text-primary, #e6edf3);font-family:monospace;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bedrock-probe-status{color:var(--text-secondary, #8b949e);font-size:11px;white-space:nowrap}.bedrock-probe-action{margin-top:16px;padding:12px;background:#d2992214;border:1px solid rgba(210,153,34,.3);border-radius:6px;display:flex;align-items:center;gap:12px}.bedrock-probe-action p{margin:0;color:var(--text-primary, #e6edf3);font-size:13px}.contacts-page{max-width:1200px}.contacts-filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.contacts-filters .admin-refresh-btn{margin-left:auto}.contacts-table-wrapper{overflow-x:auto}.contacts-table{width:100%;border-collapse:collapse;font-size:13px}.contacts-table th{text-align:left;padding:8px 10px;background:var(--bg-secondary, #161b22);border-bottom:1px solid var(--border-light, #30363d);color:var(--text-secondary, #8b949e);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.contacts-table td{padding:8px 10px;border-bottom:1px solid var(--border-light, #30363d);color:var(--text-primary, #e6edf3)}.contact-row:hover{background:#58a6ff0a}.contact-row.status-pending{background:#d299220a}.contact-row.status-rejected{background:#da36330a}.contact-name{font-weight:600}.contact-id code{background:var(--bg-tertiary, #1c2333);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--text-secondary, #8b949e)}.contact-phone{color:var(--text-secondary, #8b949e)}.contact-date{color:var(--text-secondary, #8b949e);font-size:12px}.contact-actions{display:flex;gap:4px;flex-wrap:nowrap}.contact-status-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500}.contact-status-badge.approved{background:#38bd9426;color:#38bd94}.contact-status-badge.pending{background:#d2992226;color:#d29922}.contact-status-badge.rejected{background:#da363326;color:#da3633}.contact-approve-btn{color:#38bd94}.contact-reject-btn{color:#d29922}.contact-delete-btn{color:#da3633}.platform-config-table-wrapper{overflow-x:auto}.platform-config-table{width:100%;border-collapse:collapse;font-size:13px}.platform-config-table th{text-align:left;padding:8px 10px;background:var(--bg-secondary, #161b22);border-bottom:1px solid var(--border-light, #30363d);color:var(--text-secondary, #8b949e);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.platform-config-table td{padding:8px 10px;border-bottom:1px solid var(--border-light, #30363d);color:var(--text-primary, #e6edf3);vertical-align:middle}.platform-config-row:hover{background:#58a6ff0a}.platform-config-row.configured{background:#38bd9408}.platform-config-name{display:flex;flex-direction:column;gap:2px}.platform-config-name .hub-card-id{font-size:11px;color:var(--text-secondary, #8b949e)}.platform-config-status-text{margin-left:6px;font-size:12px}.platform-config-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.platform-config-cli{font-size:12px}.platform-config-cli code{background:var(--bg-tertiary, #1c2333);padding:2px 6px;border-radius:4px;font-size:11px;color:var(--text-secondary, #8b949e)}.platform-config-expanded td{background:var(--bg-secondary, #161b22);padding:16px}.platform-config-form{display:flex;flex-direction:column;gap:10px;max-width:500px}.platform-config-readonly{background:var(--bg-tertiary, #1c2333);border:1px solid var(--border-light, #30363d);border-radius:6px;padding:8px 12px;color:var(--text-secondary, #8b949e);font-size:13px;width:100%}.onboarding-summary{background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:8px;padding:16px}.onboarding-stats{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.onboarding-stat{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500}.onboarding-stat.pending{background:#d2992226;color:#d29922}.onboarding-stat.approved{background:#38bd9426;color:#38bd94}.onboarding-stat.rejected{background:#da363326;color:#da3633}.onboarding-steps{display:flex;flex-direction:column;gap:10px}.onboarding-step{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-primary, #e6edf3)}.onboarding-step-num{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--accent-blue, #58a6ff);color:#fff;border-radius:50%;font-weight:700;font-size:12px;flex-shrink:0}.onboarding-step code{background:var(--bg-tertiary, #1c2333);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--accent-blue, #58a6ff)}
1
+ :root{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #1c2333;--bg-card: #1a1f2e;--bg-hover: #1c2538;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #6e7681;--accent-blue: #58a6ff;--accent-green: #3fb950;--accent-yellow: #d29922;--accent-red: #f85149;--accent-purple: #bc8cff;--accent-cyan: #39d2c0;--border: #30363d;--border-light: #21262d;--shadow: rgba(0, 0, 0, .3);--nav-width: 220px;--transition: all .2s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;font-size:14px;min-height:100vh}#root{min-height:100vh}.layout{display:flex;min-height:100vh}.nav{width:var(--nav-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;overflow-y:auto;z-index:100}.nav-header{display:flex;align-items:center;gap:10px;padding:20px 16px;border-bottom:1px solid var(--border)}.nav-logo{font-size:24px}.nav-title{font-size:15px;font-weight:600;color:var(--text-primary)}.nav-links{flex:1;padding:8px 0}.nav-link{display:block;padding:10px 16px;color:var(--text-secondary);text-decoration:none;font-size:13px;transition:var(--transition);border-left:3px solid transparent}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-link.active{color:var(--accent-blue);background:#58a6ff14;border-left-color:var(--accent-blue);font-weight:500}.nav-footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.connected{background:var(--accent-green);box-shadow:0 0 6px #3fb95066}.status-dot.reconnecting{background:var(--accent-yellow);animation:pulse 1s infinite}.status-text{font-size:11px;color:var(--text-secondary);flex:1}.last-updated{font-size:10px;color:var(--text-muted)}.main{margin-left:var(--nav-width);flex:1;padding:32px 40px;max-width:1200px}.section-title{font-size:22px;font-weight:600;margin-bottom:24px;color:var(--text-primary)}.section-subtitle{font-size:15px;font-weight:500;color:var(--text-secondary);margin:28px 0 14px}.section-description{color:var(--text-secondary);font-size:13px;margin-bottom:24px;line-height:1.6}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:10px}.stats-grid.mini{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:18px 16px;display:flex;align-items:center;gap:14px;transition:var(--transition)}.stat-card:hover{border-color:var(--accent-blue);box-shadow:0 4px 12px var(--shadow)}.stat-icon{font-size:24px}.stat-body{min-width:0}.stat-value{font-size:20px;font-weight:700;color:var(--text-primary);line-height:1.2}.stat-label{font-size:11px;color:var(--text-secondary);margin-top:2px;text-transform:uppercase;letter-spacing:.5px}.chart-container{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:10px}.cost-summary{display:flex;gap:24px;margin-bottom:20px}.cost-summary-sub{margin-bottom:20px}.cost-summary-sub .cost-total{padding:10px 16px;background:transparent;border-style:dashed}.cost-summary-sub .cost-amount{font-size:20px}.cost-total{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px 24px;text-align:center;flex:1}.cost-label{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.cost-amount{font-size:28px;font-weight:700;color:var(--accent-green);display:block;margin-top:4px}.cost-list{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px}.cost-row{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border-light);transition:var(--transition)}.cost-row:last-child{border-bottom:none}.cost-row:hover{background:var(--bg-hover)}.cost-row-name{flex:1;font-size:13px;font-weight:500}.cost-row-bar{width:200px;height:6px;background:var(--bg-tertiary);border-radius:3px;margin:0 16px;overflow:hidden}.cost-row-fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),var(--accent-cyan));border-radius:3px;transition:width .5s ease}.cost-row-value{font-size:13px;font-weight:600;color:var(--accent-green);min-width:70px;text-align:right}.request-list{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.request-row{display:flex;align-items:center;padding:8px 14px;border-bottom:1px solid var(--border-light);font-size:12px;transition:var(--transition)}.request-row:last-child{border-bottom:none}.request-row:hover{background:var(--bg-hover)}.request-time{color:var(--text-muted);min-width:70px}.request-provider{min-width:80px;font-weight:500}.request-model{flex:1;color:var(--text-secondary)}.request-cost{min-width:60px;text-align:right;color:var(--accent-green);font-weight:500}.request-tokens{min-width:60px;text-align:right;color:var(--text-secondary)}.history-stats{margin-bottom:14px;font-size:13px;color:var(--text-secondary)}.history-list{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.history-item{padding:12px 16px;border-bottom:1px solid var(--border-light);transition:var(--transition)}.history-item:last-child{border-bottom:none}.history-item:hover{background:var(--bg-hover)}.history-summary{font-size:13px;color:var(--text-primary);margin-bottom:4px;line-height:1.5}.history-meta{font-size:11px;color:var(--text-secondary);display:flex;gap:12px;flex-wrap:wrap;align-items:center}.history-meta span{display:inline-flex;align-items:center;gap:4px}.history-tag{background:#58a6ff26;color:var(--accent-blue);padding:1px 6px;border-radius:3px;font-size:10px;margin-left:2px}.benchmark-latest{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.benchmark-header{margin-bottom:8px;font-size:13px;color:var(--text-primary)}.benchmark-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:12px}.benchmark-stat{text-align:center;padding:12px;background:var(--bg-tertiary);border-radius:8px}.benchmark-stat-value{font-size:18px;font-weight:700}.benchmark-stat-label{font-size:10px;color:var(--text-secondary);margin-top:2px;text-transform:uppercase;letter-spacing:.5px}.benchmark-stat.pass .benchmark-stat-value{color:var(--accent-green)}.benchmark-stat.fail .benchmark-stat-value{color:var(--accent-red)}.benchmark-stat.quality .benchmark-stat-value{color:var(--accent-purple)}.benchmark-stat.latency .benchmark-stat-value{color:var(--accent-yellow)}.benchmark-stat.deps .benchmark-stat-value{color:var(--accent-blue)}.benchmark-list{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.benchmark-item{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border-light);font-size:12px;transition:var(--transition)}.benchmark-item:last-child{border-bottom:none}.benchmark-item:hover{background:var(--bg-hover)}.benchmark-date{min-width:100px;color:var(--text-muted)}.benchmark-model{flex:1;font-weight:500}.benchmark-score{min-width:50px;text-align:right}.benchmark-score.high{color:var(--accent-green)}.benchmark-score.medium{color:var(--accent-yellow)}.benchmark-score.low{color:var(--accent-red)}.dag-container{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:24px;margin-bottom:16px;overflow-x:auto}.dag-container svg{display:block;margin:0 auto}.dag-legend{display:flex;flex-wrap:wrap;gap:12px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-icon{font-size:12px}.legend-label{font-size:11px}.memory-list{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.memory-item{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border-light);font-size:13px;transition:var(--transition)}.memory-item:last-child{border-bottom:none}.memory-item:hover{background:var(--bg-hover)}.memory-project{flex:1;font-weight:500}.memory-count{min-width:50px;text-align:right;color:var(--text-secondary)}.health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-bottom:20px}.health-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px;display:flex;align-items:center;gap:14px;transition:var(--transition)}.health-card:hover{border-color:var(--accent-blue)}.health-icon{font-size:22px}.health-body{min-width:0}.health-title{font-size:12px;color:var(--text-secondary);margin-bottom:2px}.health-path{font-size:11px;color:var(--text-muted);font-family:SFMono-Regular,Consolas,monospace}.health-value{font-size:16px;font-weight:600;color:var(--text-primary)}.server-info{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.info-row{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border-light);font-size:13px}.info-row:last-child{border-bottom:none}.info-label{min-width:140px;color:var(--text-secondary)}.info-value{color:var(--text-primary);font-weight:500}.loading-state{text-align:center;padding:80px 20px;color:var(--text-muted)}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{padding:32px;text-align:center;color:var(--text-muted);font-size:13px}.empty-state code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--accent-blue)}.dag-engine-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;cursor:default}.dag-engine-loop{color:var(--accent-cyan, #39d2c0);background:#39d2c01f;border:1px solid rgba(57,210,192,.4)}.dag-engine-pipeline{color:var(--accent-purple, #bc8cff);background:#bc8cff1f;border:1px solid rgba(188,140,255,.4)}.dag-loop-turn-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 18px;margin-bottom:14px}.dag-loop-turn-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.dag-loop-turn-icon{font-size:15px}.dag-loop-turn-title{font-size:13px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.dag-loop-turn-live{font-size:10px;font-weight:700;color:var(--accent-green, #3fb950);letter-spacing:.4px;text-transform:uppercase;animation:dag-loop-pulse 1.6s ease-in-out infinite}@keyframes dag-loop-pulse{0%,to{opacity:1}50%{opacity:.35}}.dag-loop-turn-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.dag-loop-turn-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;color:var(--text-primary);background:var(--bg-tertiary, #1c2333);border:1px solid var(--border)}.dag-loop-turn-chip-error{color:var(--accent-red, #f85149);border-color:#f8514966}.dag-loop-turn-chip-dim{color:var(--text-secondary, #8b949e)}.dag-loop-turn-tools{display:flex;flex-wrap:wrap;gap:5px}.dag-loop-tool{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;color:var(--accent-green, #3fb950);background:#3fb95014;border:1px solid rgba(63,185,80,.25);border-radius:4px;padding:1px 6px}.dag-loop-tool-error{color:var(--accent-red, #f85149);background:#f8514914;border-color:#f851494d}.phase-run-chip-engine{font-size:10px;line-height:1;opacity:.9}.phase-run-chip-engine-loop{filter:drop-shadow(0 0 3px rgba(57,210,192,.6))}.dag-status-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 18px;margin-bottom:14px;transition:var(--transition)}.dag-status-bar.active{border-color:var(--accent-blue);box-shadow:0 0 12px #58a6ff1a}.dag-pipeline-name{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text-primary)}.dag-live-dot{width:10px;height:10px;border-radius:50%;background:var(--accent-green);box-shadow:0 0 8px #3fb95099;animation:pulse 1.5s infinite}.dag-live-badge{background:#3fb95026;color:var(--accent-green);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.5px;animation:pulse 2s infinite}.dag-pipeline-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dag-step-count{font-size:11px;color:var(--text-secondary)}.dag-running-badge{background:#58a6ff26;color:var(--accent-blue);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600}.dag-completed-badge{background:#3fb9501f;color:var(--accent-green);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600}.dag-pending-badge{background:#6e768126;color:var(--text-secondary);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600}.dag-failed-badge{background:#f8514926;color:var(--accent-red);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600}.dag-empty{text-align:center;padding:60px 20px;background:var(--bg-card);border:1px dashed var(--border);border-radius:12px}.dag-empty-icon{font-size:48px;margin-bottom:16px}.dag-empty h3{font-size:18px;color:var(--text-primary);margin-bottom:8px}.dag-empty p{color:var(--text-secondary);font-size:13px;max-width:400px;margin:0 auto}.dag-empty-hint{margin-top:12px!important;font-size:12px!important;color:var(--text-muted)!important}.dag-empty-hint code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--accent-blue)}.dag-node-group{transition:opacity .3s ease}.dag-node-group:hover rect:first-of-type{filter:brightness(1.2)}.dag-node-running{animation:dag-node-pulse 2s ease-in-out infinite}.dag-edge{transition:stroke .5s ease,stroke-width .5s ease,stroke-opacity .5s ease}@keyframes dag-node-pulse{0%,to{stroke-opacity:.9}50%{stroke-opacity:.5}}.dag-node-summary{pointer-events:none;animation:fadeIn .2s ease-out}.dag-table-wrapper{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px}.dag-table{width:100%;border-collapse:collapse;font-size:12px}.dag-table th{background:var(--bg-tertiary);padding:10px 14px;text-align:left;font-weight:600;color:var(--text-secondary);font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}.dag-table td{padding:8px 14px;border-bottom:1px solid var(--border-light)}.dag-row:last-child td{border-bottom:none}.dag-row:hover td{background:var(--bg-hover)}.dag-cell-step{color:var(--text-muted);font-family:SFMono-Regular,Consolas,monospace;width:40px}.dag-cell-agent{display:flex;align-items:center;gap:6px;font-weight:500;color:var(--text-primary)}.dag-agent-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dag-cell-status{font-weight:500}.dag-status-pending{color:var(--text-muted)}.dag-status-running{color:var(--accent-blue)}.dag-status-completed{color:var(--accent-green)}.dag-status-failed{color:var(--accent-red)}.dag-cell-duration{color:var(--text-secondary);font-family:SFMono-Regular,Consolas,monospace;font-size:11px}.dag-cell-time{color:var(--text-muted);font-family:SFMono-Regular,Consolas,monospace;font-size:11px}.dag-cell-summary{color:var(--text-secondary);font-size:11px;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes typingBlink{0%,60%,to{opacity:.2}30%{opacity:1}}.stat-card,.health-card,.cost-row,.history-item,.benchmark-item,.dag-row,.dag-status-bar{animation:fadeIn .3s ease-out}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (max-width: 768px){.nav{width:60px}.nav-title,.nav-link,.nav-footer{display:none}.nav-header{justify-content:center;padding:16px}.main{margin-left:60px;padding:20px}.stats-grid,.benchmark-stats{grid-template-columns:repeat(2,1fr)}.cost-summary{flex-direction:column;gap:12px}}.dag-timeline-section{margin-bottom:16px}.timeline-subtitle{font-weight:400;font-size:11px;color:var(--text-muted);margin-left:6px}.phase-timeline{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 16px;transition:var(--transition)}.phase-timeline:hover{border-color:var(--border-light)}.phase-timeline-empty{color:var(--text-secondary);font-size:13px}.phase-timeline-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.phase-timeline-runs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.phase-run-chip{display:inline-flex;align-items:center;gap:6px;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);padding:5px 10px;border-radius:16px;font-size:11px;cursor:pointer;transition:var(--transition);max-width:260px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.phase-run-chip:hover{border-color:var(--accent-blue);color:var(--text-primary)}.phase-run-chip.active{border-color:var(--accent-blue);background:#58a6ff1a;color:var(--text-primary)}.phase-run-chip.live{border-color:#3fb95080}.phase-run-chip-time{color:var(--text-muted);font-size:10px}.phase-timeline-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--text-secondary)}.phase-meta-ok{color:var(--accent-green)}.phase-meta-bad{color:var(--accent-red)}.phase-timeline-controls{display:flex;align-items:center;gap:12px;margin-bottom:10px}.phase-play-btn{background:#58a6ff1f;color:var(--accent-blue);border:1px solid rgba(88,166,255,.35);border-radius:6px;padding:4px 12px;font-size:11px;font-weight:600;cursor:pointer;transition:var(--transition)}.phase-play-btn:hover{background:#58a6ff38}.phase-play-btn.paused{background:#f851491f;color:var(--accent-red);border-color:#f8514959}.phase-time-label{font-size:11px;color:var(--text-secondary);font-variant-numeric:tabular-nums;min-width:96px}.phase-range{flex:1;accent-color:var(--accent-blue);cursor:pointer}.phase-track-wrap{padding:8px 0 2px}.phase-track{position:relative;height:46px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:8px;overflow:visible;-webkit-user-select:none;user-select:none;touch-action:none}.phase-block{position:absolute;top:5px;bottom:5px;border:none;border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#fff;cursor:pointer;min-width:10px;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;font-size:10px}.phase-block:hover{filter:brightness(1.15);transform:translateY(-1px)}.phase-block-pending{opacity:.55}.phase-block-failed{outline:1px solid rgba(248,81,73,.6)}.phase-block.active{z-index:2}.phase-block-icon{font-size:13px;line-height:1}.phase-block-label{font-size:9px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.6);max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 3px}.phase-caret{position:absolute;top:-3px;bottom:-3px;width:2px;background:#f0f6fc;box-shadow:0 0 8px #f0f6fccc;cursor:ew-resize;z-index:3;transform:translate(-1px);border-radius:2px}.phase-caret:after{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);border:5px solid transparent;border-top:6px solid #f0f6fc}.phase-ticks{display:flex;justify-content:space-between;color:var(--text-muted);font-size:9px;padding:3px 2px 0;font-variant-numeric:tabular-nums}.phase-detail{margin-top:12px;padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:8px;min-height:58px}.phase-detail-title{display:flex;align-items:center;gap:8px;margin-bottom:4px}.phase-detail-icon{font-size:14px}.phase-detail-agent{font-size:13px;font-weight:700}.phase-status-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px;margin-left:auto}.phase-status-pending{background:#6e768126;color:var(--text-muted)}.phase-status-running{background:#58a6ff26;color:var(--accent-blue)}.phase-status-completed{background:#3fb95026;color:var(--accent-green)}.phase-status-failed{background:#f8514926;color:var(--accent-red)}.phase-detail-desc{color:var(--text-primary);font-size:12px;margin:0 0 4px}.phase-detail-meta{display:flex;gap:12px;color:var(--text-secondary);font-size:10px;font-variant-numeric:tabular-nums}.phase-detail-summary{color:var(--text-secondary);font-size:11px;margin:6px 0 0;border-top:1px solid var(--border-light);padding-top:6px}.phase-detail-gap{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:12px}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:4px}.admin-refresh-btn{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:8px;padding:8px 16px;font-size:13px;cursor:pointer;transition:var(--transition)}.admin-refresh-btn:hover:not(:disabled){border-color:var(--accent-blue);color:var(--accent-blue);box-shadow:0 0 8px #58a6ff26}.admin-refresh-btn:disabled{opacity:.6;cursor:wait}.admin-subtitle{color:var(--text-secondary);font-size:12px;margin:0 0 16px;max-width:720px}.admin-error{background:#f851491a;border:1px solid rgba(248,81,73,.4);color:var(--accent-red);border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px}.admin-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:24px}.admin-summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px;text-align:center;transition:var(--transition)}.admin-summary-card:hover{border-color:var(--accent-blue)}.admin-summary-pass .admin-summary-value{color:var(--accent-green)}.admin-summary-warn .admin-summary-value{color:var(--accent-yellow)}.admin-summary-fail .admin-summary-value{color:var(--accent-red)}.admin-summary-value{font-size:26px;font-weight:700}.admin-summary-label{color:var(--text-secondary);font-size:12px;margin-top:2px}.admin-check-list{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.admin-check-row{display:flex;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:8px;padding:10px 14px;transition:var(--transition)}.admin-check-row:hover{border-color:var(--accent-blue)}.admin-check-row[data-status=pass]{border-left-color:var(--accent-green)}.admin-check-row[data-status=warn]{border-left-color:var(--accent-yellow)}.admin-check-row[data-status=fail]{border-left-color:var(--accent-red)}.admin-check-badge{flex-shrink:0;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;height:fit-content;margin-top:2px}.admin-check-pass{background:#3fb95026;color:var(--accent-green)}.admin-check-warn{background:#d2992226;color:var(--accent-yellow)}.admin-check-fail{background:#f8514926;color:var(--accent-red)}.admin-check-body{min-width:0}.admin-check-name{font-weight:600;font-size:13px}.admin-check-message{color:var(--text-primary);font-size:12px;margin-top:2px}.admin-check-detail{color:var(--text-secondary);font-size:11px;margin-top:4px;white-space:pre-wrap}.admin-check-fix{color:var(--accent-cyan);font-size:11px;margin-top:4px}.admin-table-wrapper{overflow-x:auto;border:1px solid var(--border);border-radius:8px;margin-bottom:24px}.admin-table{width:100%;border-collapse:collapse;font-size:12px}.admin-table th{text-align:left;padding:10px 14px;background:var(--bg-tertiary);color:var(--text-secondary);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border)}.admin-table td{padding:10px 14px;border-bottom:1px solid var(--border-light)}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--bg-hover)}.admin-provider-type{font-weight:600;color:var(--accent-blue)}.admin-key-masked{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.admin-endpoint{color:var(--text-secondary);font-size:11px}.admin-header-actions{display:flex;gap:8px;align-items:center}.admin-logout-btn{background:transparent;border:1px solid var(--border, #333);color:var(--text-secondary);border-radius:6px;padding:6px 10px;font-size:12px;cursor:pointer;transition:all .15s ease}.admin-logout-btn:hover{border-color:var(--accent-red);color:var(--accent-red)}.admin-gate-form{max-width:380px;display:flex;flex-direction:column;gap:14px;margin-top:18px;padding:20px;background:#ffffff08;border:1px solid var(--border, #333);border-radius:10px}.admin-gate-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-secondary)}.admin-input{background:#00000040;border:1px solid var(--border, #333);color:var(--text-primary);border-radius:6px;padding:6px 8px;font-size:12px;min-width:0;width:100%;transition:border-color .15s ease}.admin-input:focus{outline:none;border-color:var(--accent, #4c9aff)}.admin-key-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.admin-provider-sub{font-size:11px;color:var(--text-secondary);margin-top:2px}.admin-hint{font-size:11px;color:var(--text-secondary);opacity:.8;margin-top:4px}.admin-hint code{background:#ffffff0f;padding:1px 4px;border-radius:4px;font-size:10px}.admin-row-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-mini-btn{background:#ffffff0f;border:1px solid var(--border, #333);color:var(--text-primary);border-radius:6px;padding:4px 8px;font-size:11px;cursor:pointer;transition:all .15s ease}.admin-mini-btn:hover:not(:disabled){border-color:var(--accent, #4c9aff);color:var(--accent, #4c9aff)}.admin-mini-btn:disabled{opacity:.5;cursor:default}.admin-mini-danger:hover:not(:disabled){border-color:var(--accent-red);color:var(--accent-red)}.admin-quota-panel{margin-top:22px}.admin-quota-note{font-size:11px;color:var(--text-secondary);margin:0 0 10px;max-width:760px;line-height:1.5}.admin-quota-table{display:flex;flex-direction:column;gap:4px;max-width:820px}.admin-quota-row{display:grid;grid-template-columns:120px 1fr 1fr 1fr 90px;gap:8px;align-items:center}.admin-quota-row.admin-quota-head{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:0 4px}.admin-quota-row .admin-input{min-width:0}.admin-quota-row .admin-input:disabled{opacity:.55;cursor:default}.admin-quota-cost{margin-top:12px;max-width:820px}.admin-quota-cost-hint{font-size:10px;color:var(--text-secondary);grid-column:2 / span 3}.admin-quota-actions{display:flex;align-items:center;gap:10px;margin-top:12px}.admin-quota-ok{font-size:12px;color:var(--accent-green, #4ade80)}.admin-quota-err{font-size:12px;color:var(--accent-red)}.admin-row-msg{font-size:11px;margin-top:6px;color:var(--text-secondary)}.admin-row-msg-err{color:var(--accent-red)}.admin-empty-cell{text-align:center;color:var(--text-secondary);padding:16px!important}.admin-add-provider{display:flex;gap:8px;align-items:center;margin-top:12px}.admin-add-provider .admin-input{max-width:320px}.admin-role-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:10px;font-size:11px;vertical-align:middle;background:#ffffff0f;border:1px solid var(--border, #333);color:var(--text-secondary)}.admin-role-admin{background:#3fb9501f;border-color:#3fb95059;color:var(--accent-green)}.admin-role-operator{background:#d299221f;border-color:#d2992259;color:var(--accent-yellow)}.admin-role-viewer{background:#7882961f;border-color:#78829659;color:var(--text-secondary)}.admin-readonly-note{margin-top:12px;padding:10px 14px;border:1px solid rgba(210,153,34,.35);background:#d2992214;border-radius:8px;font-size:12px;color:var(--accent-yellow)}.admin-readonly-note code{background:#ffffff0f;padding:1px 4px;border-radius:4px;font-size:11px}.admin-users-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.admin-user-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border, #333);border-radius:8px;background:#ffffff05}.admin-user-name{font-weight:600;font-size:13px}.admin-user-since{font-size:11px;color:var(--text-secondary);flex:1}.admin-user-form{margin-top:0;max-width:420px}.admin-user-form select{background:#00000040;border:1px solid var(--border, #333);color:var(--text-primary);border-radius:6px;padding:6px 8px;font-size:12px}.hub-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0;border-bottom:1px solid var(--border-light);padding-bottom:10px}.hub-tab{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-light);border-radius:8px;padding:8px 14px;font-size:13px;cursor:pointer;transition:var(--transition)}.hub-tab:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.hub-tab.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#0d1117;font-weight:600}.hub-tab-count{margin-left:6px;background:#00000040;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700}.hub-tab.active .hub-tab-count{background:#0000004d}.hub-toolset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:14px}.hub-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:10px;padding:14px;transition:var(--transition)}.hub-card:hover{border-color:var(--border)}.hub-card-disabled{opacity:.72;border-color:var(--accent-red)}.hub-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.hub-card-title{display:flex;flex-direction:column;gap:2px;min-width:0}.hub-card-name{font-weight:600;font-size:14px}.hub-card-id{font-size:11px;color:var(--text-muted);font-family:SF Mono,Menlo,Consolas,monospace}.hub-card-desc{margin:8px 0;color:var(--text-secondary);font-size:12px}.hub-card-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.hub-chip{background:#58a6ff1f;color:var(--accent-blue);border:1px solid rgba(88,166,255,.25);border-radius:6px;padding:2px 8px;font-size:11px;font-family:SF Mono,Menlo,Consolas,monospace}.hub-chip-pending{background:#d9770624;color:var(--accent-warn, #d97706);border:1px dashed rgba(217,119,6,.45)}.chat-resolve-card{margin:10px 0;padding:10px 14px;border-radius:8px;border:1px solid rgba(88,166,255,.45);background:#58a6ff0f;font-size:13px}.chat-resolve-head{margin-bottom:6px;color:var(--text-primary)}.chat-resolve-cmd{margin:6px 0;padding:6px 10px;background:var(--bg-tertiary);border-radius:6px;overflow-x:auto}.chat-resolve-options{display:flex;flex-direction:column;gap:6px;margin:8px 0}.chat-resolve-options .chat-chip{text-align:left}.chat-resolve-foot{display:flex;align-items:center;gap:8px;margin-top:8px}.hub-reveal-row{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:12px}.hub-reveal-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-weight:500}.hub-reveal-toggle input[type=checkbox]{accent-color:var(--accent-blue);cursor:pointer}.hub-unsaved-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:4px 0 12px;padding:8px 12px;border-radius:6px;border:1px solid rgba(217,119,6,.45);background:#d9770614;color:var(--text-primary);font-size:12px}.hub-card-note{margin-top:10px;font-size:11px;color:var(--accent-yellow)}.hub-switch{position:relative;width:40px;height:22px;border-radius:12px;border:1px solid var(--border);background:#00000059;cursor:pointer;transition:var(--transition);flex-shrink:0}.hub-switch:hover:not(:disabled){border-color:var(--accent-blue)}.hub-switch:disabled{opacity:.5;cursor:not-allowed}.hub-switch.on{background:var(--accent-green);border-color:var(--accent-green)}.hub-switch-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#e6edf3;transition:var(--transition)}.hub-switch.on .hub-switch-knob{left:20px}.hub-alias-list,.hub-platform-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.hub-platform{display:flex;align-items:center;gap:8px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:8px;padding:6px 10px;font-size:12px}.hub-platform.configured{border-color:#3fb95066}.hub-platform-label{font-weight:600;color:var(--text-primary)}.hub-platform-env{color:var(--text-muted);font-size:11px;font-family:SF Mono,Menlo,Consolas,monospace}.hub-alias-row{display:flex;align-items:center;gap:8px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:8px;padding:6px 10px}.hub-send-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:8px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}.hub-send-form label{display:flex;flex-direction:column;gap:4px;min-width:0}.hub-send-form .hub-send-target{flex:2;min-width:240px}.hub-send-form .hub-send-message{flex:3;min-width:240px}.hub-send-form input{background:#00000040;border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:8px 10px;font-size:12px;min-width:0;width:100%;transition:border-color .15s ease}.hub-send-form input:focus{outline:none;border-color:var(--accent-blue)}.hub-send-form input:disabled{opacity:.55}.hub-send-form .admin-refresh-btn{flex-shrink:0}.hub-session-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}.hub-artifact-list{list-style:none;display:flex;flex-direction:column;gap:6px;margin-top:8px}.hub-artifact-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}.hub-artifact-title{color:var(--text-primary);font-weight:500}.hub-artifact-preview{flex-basis:100%;color:var(--text-muted);font-size:11px;background:#0003;border-radius:6px;padding:6px 8px;white-space:pre-wrap;word-break:break-word;font-family:SF Mono,Menlo,Consolas,monospace;max-height:60px;overflow:hidden}.task-run-form{display:flex;gap:8px;margin:12px 0 4px;align-items:stretch}.task-cmd-input{flex:1;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px}.task-timeout-select{width:auto;flex:0 0 auto}.task-hint{color:var(--text-muted);font-size:12px;margin:4px 0 12px}.task-console-wrap{margin:12px 0 16px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#0a0e14}.task-console-header{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-tertiary);border-bottom:1px solid var(--border);font-size:12px;flex-wrap:wrap}.task-console-cmd{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);color:var(--text-primary);overflow-wrap:anywhere}.task-meta{color:var(--text-muted);margin-left:auto}.task-cancel-btn{color:var(--accent-red)}.task-console{height:320px;overflow-y:auto;padding:8px 12px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.task-line-stdout{color:var(--text-primary)}.task-line-stderr{color:var(--accent-red)}.task-line-system{color:var(--text-muted);font-style:italic}.task-autoscroll{display:block;padding:6px 12px;border-top:1px solid var(--border-light);color:var(--text-muted);font-size:11px;cursor:pointer}.task-status{font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px;border:1px solid var(--border);background:var(--bg-tertiary);white-space:nowrap}.task-status-running{color:var(--accent-yellow);border-color:var(--accent-yellow)}.task-status-done{color:var(--accent-green);border-color:var(--accent-green)}.task-status-failed{color:var(--accent-red);border-color:var(--accent-red)}.task-status-cancelled{color:var(--text-muted)}.task-status-timeout{color:var(--accent-yellow)}.task-status-error{color:var(--accent-red)}.task-history-title{font-size:14px;margin:8px 0}.task-table tbody tr{cursor:pointer}.task-table tbody tr:hover{background:var(--bg-hover)}.task-table tbody tr.task-row-active{background:#58a6ff14;border-left:3px solid var(--accent-blue)}.task-table code{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;color:var(--text-primary)}.wa-panel{margin-top:8px;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}.wa-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}.wa-panel-title{font-weight:600;font-size:13px;color:var(--text-primary)}.wa-badge{font-size:11px;padding:2px 10px;border-radius:999px;border:1px solid var(--border);color:var(--text-secondary);background:#0003}.wa-badge-paired{color:#4ade80;border-color:#4ade8066}.wa-badge-pairing{color:#fbbf24;border-color:#fbbf2466}.wa-actions,.wa-pairing{display:flex;flex-direction:column;gap:10px;margin-top:10px}.wa-action-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.wa-phone-row{gap:8px}.wa-phone-input{background:#00000040;border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:8px 10px;font-size:12px;min-width:240px;transition:border-color .15s ease}.wa-phone-input:focus{outline:none;border-color:var(--accent-blue)}.wa-phone-input:disabled{opacity:.55}.wa-qr-box{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;background:#fff;border-radius:10px;border:1px solid var(--border)}.wa-qr-box .admin-hint{color:#444;max-width:360px;text-align:center}.wa-qr-img{width:240px;height:240px;image-rendering:pixelated;border-radius:6px}.wa-code-box{padding:14px;background:#00000040;border:1px dashed var(--border);border-radius:10px;display:flex;flex-direction:column;gap:8px;align-items:center}.wa-code{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:28px;font-weight:700;letter-spacing:6px;color:var(--accent-blue, #3b82f6)}.wa-unpair-btn{border-color:#ef444480;color:#f87171}.admin-login-hint{margin:16px 0;padding:14px;border:1px dashed var(--border);border-radius:10px;color:var(--text-secondary);background:#00000026}.md-root{display:flex;flex-direction:column;gap:8px;font-size:13px;line-height:1.55}.md-root p.md-para{margin:0}.md-blank{height:6px}.md-heading{margin:4px 0 2px;font-weight:700;color:var(--text-primary)}.md-h1{font-size:17px}.md-h2{font-size:15px}.md-h3{font-size:14px}.md-h4,.md-h5,.md-h6{font-size:13px}.md-list{margin:0;padding-left:20px}.md-list li{margin:2px 0}.md-quote{margin:0;padding:4px 10px;border-left:3px solid var(--accent-blue, #3b82f6);color:var(--text-secondary);background:#3b82f614;border-radius:0 6px 6px 0}.md-hr{border:none;border-top:1px solid var(--border);margin:4px 0}.md-inline-code,.md-root :not(pre)>code{background:#7f7f7f33;border:1px solid rgba(127,127,127,.3);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.md-root ul:has(input[type=checkbox]){list-style:none;padding-left:4px}.md-root input[type=checkbox]{margin-right:6px;accent-color:var(--accent-blue, #3b82f6)}.md-code-pre code .hljs-keyword,.md-code-pre code .hljs-selector-tag,.md-code-pre code .hljs-built_in{color:#c678dd}.md-code-pre code .hljs-string,.md-code-pre code .hljs-attr,.md-code-pre code .hljs-template-tag{color:#98c379}.md-code-pre code .hljs-number,.md-code-pre code .hljs-literal,.md-code-pre code .hljs-symbol{color:#d19a66}.md-code-pre code .hljs-comment,.md-code-pre code .hljs-quote{color:#7f848e;font-style:italic}.md-code-pre code .hljs-function,.md-code-pre code .hljs-title,.md-code-pre code .hljs-title.function_{color:#61afef}.md-code-pre code .hljs-variable,.md-code-pre code .hljs-params,.md-code-pre code .hljs-property{color:#e06c75}.md-code-pre code .hljs-meta{color:#abb2bf}.md-code-pre code .hljs-emphasis{font-style:italic}.md-code-pre code .hljs-strong{font-weight:700}.md-root a{color:var(--accent-blue, #60a5fa);text-decoration:underline}.md-code-block{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#00000059}.md-code-head{display:flex;justify-content:space-between;align-items:center;padding:4px 10px;background:#7f7f7f26;border-bottom:1px solid var(--border)}.md-code-lang{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.md-code-copy{background:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:4px;padding:1px 8px;font-size:11px;cursor:pointer}.md-code-copy:hover{color:var(--text-primary);border-color:var(--accent-blue, #3b82f6)}.md-code-pre{margin:0;padding:10px 12px;overflow-x:auto}.md-code-pre code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;white-space:pre;color:var(--text-primary)}.md-table{border-collapse:collapse;font-size:12px;margin:2px 0;width:100%}.md-table th,.md-table td{border:1px solid var(--border);padding:4px 8px;text-align:left}.md-table th{background:#7f7f7f26;font-weight:600}.empty-state-title{margin:0 0 10px;color:var(--text-secondary)}.empty-state-chips{display:flex;flex-wrap:wrap;gap:8px}.chat-project-bar{border:1px solid var(--border);border-radius:10px;background:var(--bg-card);padding:8px 10px;margin-bottom:10px}.chat-project-attached{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}.chat-project-icon{font-size:14px}.chat-project-name{font-weight:700}.chat-project-meta{color:var(--text-secondary)}.chat-project-path{color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-project-pick{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}.chat-project-hint{color:var(--text-secondary)}.chat-project-chips{display:flex;gap:6px;flex-wrap:wrap}.chat-project-input{flex:1;min-width:180px;background:#00000040;border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:6px 10px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.chat-project-input:focus{outline:none;border-color:var(--accent-blue)}.chat-project-error{color:#f87171}.chat-project-pick{position:relative}.chat-browse-popover{position:absolute;top:100%;left:0;z-index:100;width:380px;max-height:360px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0000004d;display:flex;flex-direction:column;overflow:hidden;margin-top:4px}.chat-browse-head{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:11px}.chat-browse-path{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text-secondary)}.chat-browse-list{flex:1;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:1px}.chat-browse-entry{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;border:none;background:transparent;color:var(--text-primary);font-size:12px;border-radius:6px;cursor:pointer;text-align:left}.chat-browse-entry:hover{background:#ffffff0f}.chat-browse-foot{display:flex;align-items:center;gap:6px;padding:8px 10px;border-top:1px solid var(--border)}.chat-browse-breadcrumbs{flex:1;display:flex;align-items:center;gap:2px;overflow-x:auto;white-space:nowrap;font-size:11px}.chat-breadcrumb{background:none;border:none;color:var(--accent);cursor:pointer;padding:2px 4px;border-radius:4px;font-size:11px}.chat-breadcrumb:hover{background:#ffffff1a}.chat-breadcrumb-sep{color:var(--text-secondary);font-size:10px}.chat-browse-drives{display:flex;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border);flex-wrap:wrap}.chat-browse-drive{padding:4px 10px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);border-radius:6px;cursor:pointer;font-size:11px}.chat-browse-drive:hover{background:#ffffff14;border-color:var(--accent)}.chat-browse-search{padding:6px 10px;border-bottom:1px solid var(--border)}.chat-browse-filter{width:100%;padding:4px 8px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);border-radius:6px;font-size:12px;outline:none}.chat-browse-filter:focus{border-color:var(--accent)}.chat-browse-entry-icon{font-size:14px}.chat-browse-entry-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-browse-entry-date{font-size:10px;color:var(--text-secondary)}.chat-session-project-banner{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;margin:0 14px 8px;font-size:13px;color:var(--text-secondary)}.chat-session-project-banner code{background:var(--bg-primary);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--text-primary);word-break:break-all}.chat-layout{display:flex;gap:12px;min-height:380px}.chat-rail{width:34px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding-top:8px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card)}.chat-rail-btn{background:transparent;border:none;font-size:16px;cursor:pointer;padding:6px;border-radius:6px}.chat-rail-btn:hover{background:#3b82f61f}.chat-sidebar{width:260px;flex-shrink:0;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);display:flex;flex-direction:column;max-height:480px;overflow:hidden}.chat-sidebar-head{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;font-size:12px;font-weight:600;border-bottom:1px solid var(--border);color:var(--text-secondary)}.chat-sidebar-head-actions{display:flex;gap:4px;align-items:center}.chat-mini-action{background:transparent;border:none;cursor:pointer;font-size:11px;padding:2px 5px;border-radius:5px;color:var(--text-secondary)}.chat-mini-action:hover{background:#3b82f626;color:var(--text-primary)}.chat-session-search{width:calc(100% - 20px);margin:8px 10px;padding:6px 8px;font-size:12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-input, #0d1117);color:var(--text-primary)}.chat-session-group{margin-bottom:4px}.chat-session-group-label{padding:6px 10px 2px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);opacity:.8}.chat-session-main{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:transparent;border:none;cursor:pointer;padding:4px 0;color:var(--text-primary);min-width:0}.chat-session-preview{font-size:11px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-session-actions{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:none;gap:2px}.chat-session-rename{display:flex;gap:4px;align-items:center;padding:4px 0}.chat-session-rename input{flex:1;min-width:0;font-size:12px;padding:4px 6px;border:1px solid var(--accent-blue, #3b82f6);border-radius:6px;background:var(--bg-input, #0d1117);color:var(--text-primary)}.chat-sidebar-empty{padding:14px 10px;font-size:12px;color:var(--text-secondary)}.chat-sidebar-list{overflow-y:auto;flex:1}.chat-session-item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:8px 10px;background:transparent;border:none;border-bottom:1px solid rgba(127,127,127,.15);cursor:pointer;color:var(--text-primary)}.chat-session-item{position:relative;padding-right:40px}.chat-session-item:hover{background:#3b82f61a}.chat-session-item:hover .chat-session-actions{display:flex}.chat-session-item.chat-session-active{background:#3b82f62e;border-left:3px solid var(--accent-blue, #3b82f6)}.chat-session-title{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-session-meta{font-size:11px;color:var(--text-secondary)}.chat-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.ops-console{margin:10px 0;padding:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}.ops-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.ops-custom-row{display:flex;gap:8px;align-items:center}.ops-custom-row input{flex:1;background:#00000040;border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:8px 10px;font-size:12px;min-width:0;transition:border-color .15s ease}.ops-custom-row input:focus{outline:none;border-color:var(--accent-blue)}.ops-console-box{margin:12px 0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#0000004d}.ops-console-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px;color:var(--text-secondary)}.ops-console{max-height:320px;overflow-y:auto;margin:0;padding:12px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;line-height:1.5;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.chat-head-actions{display:flex;align-items:center;gap:10px}.chat-thread{display:flex;flex-direction:column;gap:10px;margin:14px 0;padding:14px;max-height:60vh;overflow-y:auto;background:#0000002e;border:1px solid var(--border);border-radius:10px}.chat-bubble{max-width:85%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-card);white-space:pre-wrap;word-break:break-word}.chat-user{align-self:flex-end;background:#3b82f62e;border-color:#3b82f666}.chat-assistant{align-self:flex-start}.chat-error{border-color:#ef444480}.chat-bubble-role{font-size:11px;font-weight:600;color:var(--text-secondary);margin-bottom:4px}.chat-bubble-text{font-size:13px;line-height:1.5;color:var(--text-primary)}.chat-streaming .chat-bubble-text{margin:0 0 6px}.chat-streaming .chat-bubble-text>:last-child:after{content:"▍";color:var(--accent-blue, #4da3ff);animation:chat-stream-cursor .9s step-end infinite}@keyframes chat-stream-cursor{0%,to{opacity:1}50%{opacity:0}}.chat-working{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:13px}.chat-dots:after{content:"…";animation:chat-dots 1.2s infinite}.chat-cancel-btn{align-self:center;white-space:nowrap}.chat-cancel-btn:hover{border-color:var(--danger, #e5534b);color:var(--danger, #e5534b)}.chat-retry-row{display:flex;align-items:center;gap:10px;margin:0 0 10px}@keyframes chat-dots{0%{content:""}33%{content:"."}66%{content:".."}to{content:"..."}}.chat-followups{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}.chat-chip{background:#3b82f61f;border:1px solid rgba(59,130,246,.45);color:var(--text-primary);border-radius:999px;padding:5px 12px;font-size:12px;cursor:pointer;transition:background .15s ease;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-chip:hover{background:#3b82f647}.chat-composer{border:1px solid var(--border);border-radius:10px;padding:6px 8px;background:var(--bg-card);display:flex;flex-direction:column;gap:6px}.chat-composer:focus-within{border-color:var(--accent-blue, #3b82f6)}.chat-composer-drag{border-color:var(--accent-blue, #3b82f6);background:#3b82f60f}.chat-attach-row{display:flex;flex-wrap:wrap;gap:6px}.chat-attach-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:3px 8px;border:1px solid var(--border);border-radius:999px;background:#3b82f614;color:var(--text-primary);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-paste-offer{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 8px;border:1px dashed var(--border);border-radius:8px;background:#facc150d}.chat-attach-btn{background:transparent;border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:14px;padding:6px 8px;line-height:1;color:var(--text-secondary)}.chat-attach-btn:hover:not(:disabled){background:#3b82f61f}.chat-attach-btn:disabled{opacity:.4;cursor:not-allowed}.chat-attach-content{margin-top:6px}.chat-attach-content pre{margin:4px 0 0;padding:8px 10px;font-size:11px;line-height:1.4;max-height:200px;overflow:auto;background:var(--bg-input, #0d1117);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.chat-input-row{display:flex;gap:8px;align-items:center}.chat-input-row textarea.chat-input-box{flex:1;background:#00000040;border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:10px 12px;font-size:13px;min-width:0;resize:vertical;min-height:40px;max-height:160px;font-family:inherit;line-height:1.4;transition:border-color .15s ease}.chat-input-row textarea.chat-input-box:focus{outline:none;border-color:var(--accent-blue)}.chat-input-row textarea.chat-input-box:disabled{opacity:.55}.chat-working-lines{display:flex;flex-direction:column;gap:2px}.chat-step-line{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11.5px;color:var(--text-secondary);line-height:1.5}.chat-steps{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}.chat-steps summary{cursor:pointer;font-size:11px;color:var(--accent-blue, #3b82f6);-webkit-user-select:none;user-select:none}.chat-steps>div{margin-top:6px}.chat-tool-cards{display:flex;flex-direction:column;gap:6px;margin:8px 0 2px}.chat-tool-card{border:1px solid var(--border);border-left:3px solid var(--accent-blue, #3b82f6);border-radius:8px;padding:6px 8px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-tool-card.chat-tool-ok{border-left-color:#22c55e}.chat-tool-card.chat-tool-err{border-left-color:#ef4444}.chat-tool-card.chat-tool-running{border-left-color:var(--accent-blue, #3b82f6);opacity:.92}.chat-tool-head{display:flex;align-items:center;gap:6px;min-width:0}.chat-tool-icon{font-size:12px;flex:none}.chat-tool-name{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;font-weight:600;color:var(--text-primary);flex:none}.chat-tool-args{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.chat-tool-status{font-size:12px;flex:none}.chat-tool-dur{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:10.5px;color:var(--text-secondary);flex:none}.chat-tool-detail{margin-top:5px}.chat-tool-detail summary{cursor:pointer;font-size:10.5px;color:var(--accent-blue, #3b82f6);-webkit-user-select:none;user-select:none}.chat-tool-body{margin:5px 0 0;padding:6px 8px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:180px;overflow:auto;background:color-mix(in srgb,var(--bg, #14171c) 70%,transparent);border-radius:6px;color:var(--text-secondary)}.chat-finding-cards{display:flex;flex-direction:column;gap:6px;margin:8px 0 2px}.chat-finding-card{border:1px solid var(--border);border-left:3px solid #a78bfa;border-radius:8px;padding:7px 9px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-finding-card.chat-finding-confirmed{border-left-color:#22c55e}.chat-finding-card.chat-finding-plausible{border-left-color:#d29922}.chat-finding-head{display:flex;align-items:center;gap:6px;min-width:0}.chat-finding-icon{font-size:12px;flex:none}.chat-finding-claim{font-size:12.5px;font-weight:600;color:var(--text-primary);min-width:0;flex:1}.chat-finding-verdict{flex:none;font-size:9.5px;font-weight:700;letter-spacing:.04em;padding:1px 7px;border-radius:10px;border:1px solid}.chat-finding-verdict-ok{color:#3fb950;background:#0d2818;border-color:#238636}.chat-finding-verdict-guess{color:#d29922;background:#3d2c00;border-color:#d29922}.chat-finding-outcome{margin-top:3px;font-size:11.5px;color:var(--text-secondary)}.chat-finding-evidence{list-style:none;margin:5px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}.chat-finding-evidence li{display:flex;align-items:baseline;gap:5px;min-width:0;font-size:11px;color:var(--text-secondary)}.chat-finding-kind{flex:none;font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:#58a6ff}.chat-finding-ref{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;color:var(--text-primary);word-break:break-word;min-width:0}.chat-finding-detail{color:var(--text-secondary);word-break:break-word}.chat-finding-noevidence{margin-top:5px;font-size:11px;color:#d29922}.chat-finding-source{margin-top:4px;font-size:10px;color:var(--text-secondary);opacity:.8}.chat-attach-btn-on{border-color:#22c55e;color:#22c55e;background:#22c55e1f}.chat-attach-btn-on:hover:not(:disabled){background:#22c55e33}.chat-worktree-card{margin-top:8px;border:1px solid var(--border);border-left:3px solid #22c55e;border-radius:8px;padding:8px 10px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-worktree-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chat-worktree-icon{font-size:12px;flex:none}.chat-worktree-title{font-size:12.5px;font-weight:600}.chat-worktree-state{margin-left:auto;font-size:10px;text-transform:uppercase;letter-spacing:.04em;border:1px solid currentColor;border-radius:999px;padding:0 6px}.chat-worktree-state.chat-worktree-kept{color:#22c55e}.chat-worktree-state.chat-worktree-gone{color:var(--text-secondary);opacity:.85}.chat-worktree-meta{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:4px}.chat-worktree-dir{font-size:11px;word-break:break-all}.chat-worktree-note{margin-top:3px}.chat-refused-line{margin-top:8px;border:1px solid var(--border);border-left:3px solid #f85149;border-radius:8px;padding:7px 9px;font-size:11.5px;color:var(--text-secondary)}.chat-resume-line{margin-top:6px;font-size:11px;color:var(--text-secondary);white-space:pre-line}.chat-resume-card{margin-top:8px;border:1px solid var(--border);border-left:3px solid #a78bfa;border-radius:8px;padding:8px 10px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-resume-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chat-resume-icon{font-size:12px;flex:none}.chat-resume-title{font-size:12.5px;font-weight:600}.chat-resume-state{margin-left:auto;font-size:10px;text-transform:uppercase;letter-spacing:.04em;border:1px solid currentColor;border-radius:999px;padding:0 6px}.chat-resume-state.chat-resume-saved{color:#a78bfa}.chat-resume-state.chat-resume-unsaved{color:#f59e0b}.chat-resume-meta{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:4px;font-size:11px;color:var(--text-secondary)}.chat-resume-id{font-size:11px;word-break:break-all;opacity:.85}.chat-resume-note{margin-top:3px;font-size:11px;color:var(--text-secondary);white-space:pre-line}.chat-resume-input{max-width:220px;font-size:11px;padding:4px 6px}.chat-plan-card{border:1px solid var(--border);border-left:3px solid #a78bfa;border-radius:8px;padding:8px 10px;margin:8px 0 2px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-plan-head{display:flex;align-items:center;gap:6px}.chat-plan-icon{font-size:12px;flex:none}.chat-plan-goal{font-size:12.5px;font-weight:600;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.chat-plan-count{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;color:var(--text-secondary);flex:none}.chat-plan-steps{margin-top:7px;display:flex;flex-direction:column;gap:3px}.chat-plan-step{display:flex;align-items:center;gap:6px;min-width:0}.chat-plan-step-icon{font-size:11px;flex:none}.chat-plan-step-text{font-size:12px;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.chat-plan-step-status{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:10px;color:var(--text-secondary);flex:none;text-transform:uppercase}.chat-plan-step-done .chat-plan-step-text{text-decoration:line-through;opacity:.65}.chat-plan-step-blocked .chat-plan-step-text{color:#ef4444}.chat-diff-card{border:1px solid var(--border);border-left:3px solid #f59e0b;border-radius:8px;padding:8px 10px;margin:8px 0 2px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-diff-head{display:flex;align-items:center;gap:6px}.chat-diff-icon{font-size:12px;flex:none}.chat-diff-title{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;font-weight:600;color:var(--text-primary)}.chat-diff-meta{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;color:var(--text-secondary);margin-left:auto}.chat-diff-files{margin-top:6px;display:flex;flex-direction:column;gap:4px}.chat-diff-file{border:1px solid var(--border);border-radius:6px}.chat-diff-file summary{cursor:pointer;padding:4px 8px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11.5px;color:var(--accent-blue, #3b82f6);-webkit-user-select:none;user-select:none}.chat-diff-body{margin:0;padding:6px 8px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:220px;overflow:auto;background:color-mix(in srgb,var(--bg, #14171c) 70%,transparent);border-top:1px dashed var(--border)}.chat-diff-line{min-height:1.5em}.chat-diff-line.diff-add{color:#4ade80;background:color-mix(in srgb,#22c55e 12%,transparent)}.chat-diff-line.diff-del{color:#f87171;background:color-mix(in srgb,#ef4444 12%,transparent)}.chat-diff-line.diff-hunk{color:var(--text-secondary);background:color-mix(in srgb,#3b82f6 10%,transparent)}.chat-diff-file-path{display:flex;align-items:center;gap:6px}.chat-diff-toggle{flex:none;width:18px;height:18px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:11px;line-height:1;cursor:pointer;padding:0}.chat-diff-toggle-on{background:color-mix(in srgb,#22c55e 22%,transparent);border-color:#22c55e;color:#4ade80}.chat-diff-file-rejected{opacity:.55}.chat-diff-file-rejected .chat-diff-toggle{background:color-mix(in srgb,#ef4444 18%,transparent);border-color:#ef4444;color:#f87171}.chat-diff-actions{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}.chat-diff-locked{font-style:italic}.chat-artifacts{display:flex;flex-direction:column;gap:6px;margin:8px 0 2px}.chat-artifact-item{border-radius:8px}.chat-artifact-item:focus{outline:2px solid var(--accent-blue, #3b82f6);outline-offset:2px}.chat-card-copy{background:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:4px;padding:1px 8px;font-size:11px;cursor:pointer;flex:none;margin-left:6px}.chat-card-copy:hover{color:var(--text-primary);border-color:var(--accent-blue, #3b82f6)}.chat-result-card{border:1px solid var(--border);border-left:3px solid #6e7681;border-radius:8px;padding:8px 10px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-result-pass{border-left-color:#22c55e}.chat-result-fail{border-left-color:#ef4444}.chat-result-head{display:flex;align-items:center;gap:6px}.chat-result-icon{font-size:12px;flex:none}.chat-result-title{font-size:12.5px;font-weight:600;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.chat-result-meta{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:10.5px;color:var(--text-secondary);flex:none;text-transform:uppercase}.chat-result-body{margin:6px 0 0;padding:6px 8px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:220px;overflow:auto;background:color-mix(in srgb,var(--bg, #14171c) 70%,transparent);border-radius:6px;color:var(--text-secondary)}.chat-deploy-card{border:1px solid var(--border);border-left:3px solid #22d3ee;border-radius:8px;padding:8px 10px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-deploy-head{display:flex;align-items:center;gap:6px}.chat-deploy-icon{font-size:12px;flex:none}.chat-deploy-title{font-size:12.5px;font-weight:600;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.chat-deploy-url{display:block;margin-top:6px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11.5px;color:var(--accent-blue, #3b82f6);word-break:break-all}.chat-task-card{border:1px solid var(--border);border-left:3px solid var(--accent-blue, #3b82f6);border-radius:8px;padding:8px 10px;margin:8px 0 2px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-task-running{border-left-color:var(--accent-blue, #3b82f6)}.chat-task-ok{border-left-color:#22c55e}.chat-task-err{border-left-color:#ef4444}.chat-task-head{display:flex;align-items:center;gap:8px;min-width:0}.chat-task-icon{font-size:12px;flex:none}.chat-task-cmd{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.chat-task-status{font-size:11.5px;color:var(--text-secondary);flex:none}.chat-task-exit,.chat-task-dur{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:10.5px;color:var(--text-secondary);flex:none}.chat-task-logs{margin:6px 0 0;padding:6px 8px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:240px;overflow:auto;background:color-mix(in srgb,var(--bg, #14171c) 70%,transparent);border-radius:6px;color:var(--text-secondary)}.chat-task-log{white-space:pre-wrap;word-break:break-word}.chat-task-log-stdout{color:var(--text-secondary)}.chat-task-log-stderr{color:#f87171}.chat-task-log-system{color:var(--text-secondary);font-style:italic;opacity:.85}.chat-task-log-sep{margin:4px 0 2px;padding:1px 6px;border-top:1px dashed var(--border);font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:9.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.chat-task-log-sep-stderr{color:#f87171}.chat-task-log-sep-system{color:var(--text-secondary)}.chat-draft-card{border:1px solid var(--border);border-left:3px solid #bc8cff;border-radius:8px;padding:10px 12px;margin:8px 0 2px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-draft-card.chat-draft-saved{border-left-color:#4ade80}.chat-draft-card.chat-draft-rejected{border-left-color:#6e7681;opacity:.75}.chat-draft-head{display:flex;align-items:center;gap:6px}.chat-draft-icon{font-size:12px;flex:none}.chat-draft-title{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12px;font-weight:600;color:var(--text-primary)}.chat-draft-meta{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;color:var(--text-secondary);margin-left:auto}.chat-draft-desc{margin:6px 0 0;font-size:12.5px;color:var(--text-secondary)}.chat-draft-body{margin:6px 0 0;padding:6px 8px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow:auto;background:color-mix(in srgb,var(--bg, #14171c) 70%,transparent);border:1px dashed var(--border);border-radius:6px}.chat-draft-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.chat-secret-card{border:1px solid var(--border);border-left:3px solid var(--accent-yellow, #d29922);border-radius:8px;padding:10px 12px;margin:8px 0 2px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-secret-head{display:flex;align-items:center;gap:6px}.chat-secret-icon{font-size:12px;flex:none}.chat-secret-title{font-size:12px;font-weight:600;color:var(--text-primary)}.chat-secret-persisted{font-size:12px;color:var(--accent-green);margin:6px 0 0}.chat-secret-persisted code{background:color-mix(in srgb,var(--accent-green, #3fb950) 15%,transparent);padding:1px 5px;border-radius:3px;font-size:11px;margin:0 2px}.chat-secret-fields{margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.chat-secret-row{display:flex;align-items:center;gap:8px}.chat-secret-label{font-size:12px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);color:var(--text-secondary);min-width:160px}.chat-secret-input{flex:1;background:color-mix(in srgb,var(--bg, #14171c) 70%,transparent);border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-size:12px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);color:var(--text-primary)}.chat-secret-input:focus{outline:none;border-color:var(--accent-blue)}.chat-exec-card{border:1px solid var(--border);border-left:3px solid var(--accent-green, #3fb950);border-radius:8px;padding:10px 12px;margin:8px 0 2px;background:color-mix(in srgb,var(--bg-secondary, #1b1f27) 55%,transparent)}.chat-exec-card.chat-exec-failure{border-left-color:var(--accent-red, #f85149)}.chat-exec-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chat-exec-icon{font-size:12px;flex:none}.chat-exec-title{font-size:12px;font-weight:600;color:var(--text-primary)}.chat-exec-status{font-size:11px;color:var(--accent-green)}.chat-exec-card.chat-exec-failure .chat-exec-status{color:var(--accent-red)}.chat-exec-meta{font-size:11px;color:var(--text-secondary, #8b949e);margin-left:auto}.chat-exec-expand{font-size:10px;color:var(--text-secondary, #8b949e);flex:none}.chat-exec-body{margin-top:8px;border-top:1px solid var(--border);padding-top:8px}.chat-exec-section{margin-bottom:8px}.chat-exec-section-title{font-size:11px;font-weight:600;color:var(--text-secondary, #8b949e);margin-bottom:4px;text-transform:uppercase}.chat-exec-output{font-family:SF Mono,Fira Code,monospace;font-size:11px;line-height:1.4;background:var(--bg-primary, #0d1117);border:1px solid var(--border);border-radius:4px;padding:8px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto;color:var(--text-primary)}.chat-exec-section.chat-exec-stderr .chat-exec-output{border-color:var(--accent-red, #f85149);color:var(--accent-red, #f85149)}.chat-exec-details{display:flex;gap:12px;font-size:11px;color:var(--text-secondary, #8b949e)}.env-var-editor{padding:12px;background:var(--bg-secondary, #1b1f27);border:1px solid var(--border);border-radius:8px}.env-var-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.env-var-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.env-var-add-form{display:flex;gap:8px;margin-bottom:12px;padding:8px;background:var(--bg-primary, #0d1117);border-radius:6px}.env-var-input{flex:1;padding:6px 8px;font-size:12px;background:var(--bg-secondary, #1b1f27);border:1px solid var(--border);border-radius:4px;color:var(--text-primary)}.env-var-input:focus{outline:none;border-color:var(--accent-blue)}.env-var-list{display:flex;flex-direction:column;gap:8px}.env-var-empty{font-size:12px;color:var(--text-secondary, #8b949e);text-align:center;padding:20px}.env-var-row{padding:8px 10px;background:var(--bg-primary, #0d1117);border:1px solid var(--border);border-radius:6px}.env-var-row.env-var-set{border-left:3px solid var(--accent-green, #3fb950)}.env-var-row.env-var-missing{border-left:3px solid var(--accent-red, #f85149)}.env-var-row.env-var-blocked{border-left:3px solid var(--accent-yellow, #d29922);opacity:.7}.env-var-row-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.env-var-name{font-size:12px;font-weight:600;color:var(--text-primary);font-family:SF Mono,Fira Code,monospace}.env-var-required-badge,.env-var-blocked-badge{font-size:10px;font-weight:400;color:var(--accent-yellow, #d29922);margin-left:6px}.env-var-status{font-size:11px;color:var(--text-secondary, #8b949e)}.env-var-description{font-size:11px;color:var(--text-secondary, #8b949e);margin:4px 0}.env-var-edit,.env-var-actions{display:flex;gap:6px;margin-top:6px}.env-var-test-result{font-size:11px;margin-left:auto}.env-var-test-pass{color:var(--accent-green, #3fb950)}.env-var-test-fail{color:var(--accent-red, #f85149)}.env-var-help{margin-top:12px;padding:8px;background:var(--bg-primary, #0d1117);border-radius:4px;font-size:11px;color:var(--text-secondary, #8b949e)}.env-var-help code{background:var(--bg-secondary, #1b1f27);padding:1px 4px;border-radius:3px;font-family:SF Mono,Fira Code,monospace}.env-var-notice{margin:8px 0;padding:8px 10px;background:var(--bg-secondary, #1b1f27);border-left:3px solid var(--accent, #58a6ff);border-radius:4px;font-size:12px;color:var(--text-secondary, #8b949e)}.env-var-notice-error{border-left-color:var(--danger, #f85149);color:var(--danger, #f85149)}.execution-history{padding:12px;background:var(--bg-secondary, #1b1f27);border:1px solid var(--border);border-radius:8px}.execution-history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.execution-history-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.execution-history-actions{display:flex;gap:6px}.execution-history-stats{display:flex;gap:16px;margin-bottom:12px;padding:8px;background:var(--bg-primary, #0d1117);border-radius:6px}.stat-item{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-value{font-size:16px;font-weight:600;color:var(--text-primary)}.stat-label{font-size:10px;color:var(--text-secondary, #8b949e);text-transform:uppercase}.stat-success .stat-value{color:var(--accent-green, #3fb950)}.stat-failure .stat-value{color:var(--accent-red, #f85149)}.execution-history-filters{display:flex;gap:8px;margin-bottom:12px}.execution-history-filters .env-var-input{flex:1}.execution-history-list{display:flex;flex-direction:column;gap:6px;max-height:400px;overflow-y:auto}.execution-history-empty{text-align:center;padding:20px;color:var(--text-secondary, #8b949e);font-size:12px}.execution-history-entry{padding:8px 10px;background:var(--bg-primary, #0d1117);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:background .15s}.execution-history-entry:hover{background:var(--bg-secondary, #1b1f27)}.execution-history-entry.success{border-left:3px solid var(--accent-green, #3fb950)}.execution-history-entry.failure{border-left:3px solid var(--accent-red, #f85149)}.execution-history-entry.timeout{border-left:3px solid var(--accent-yellow, #d29922)}.entry-header{display:flex;align-items:center;gap:8px}.entry-icon{font-size:12px;flex:none}.entry-skill{font-size:12px;font-weight:600;color:var(--text-primary)}.entry-runtime{font-size:11px;color:var(--text-secondary, #8b949e)}.entry-duration{font-size:11px;color:var(--text-secondary, #8b949e);margin-left:auto}.entry-time{font-size:10px;color:var(--text-secondary, #8b949e)}.entry-expand{font-size:10px;color:var(--text-secondary, #8b949e);flex:none}.entry-details{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.entry-detail-row{display:flex;gap:8px;font-size:11px}.detail-label{color:var(--text-secondary, #8b949e);min-width:80px}.detail-value{color:var(--text-primary)}.detail-value.entry-error{color:var(--accent-red, #f85149)}.detail-value code{background:var(--bg-secondary, #1b1f27);padding:1px 4px;border-radius:3px;font-family:SF Mono,Fira Code,monospace}.platform-config{margin-top:10px}.platform-config .hub-platform{flex-direction:column;align-items:stretch;width:100%;gap:6px;padding:8px 10px}.platform-config .hub-platform-head{display:flex;align-items:center;gap:8px}.platform-config .hub-platform-head .admin-refresh-btn{margin-left:auto}.platform-config .hub-platform-env{display:flex;flex-wrap:wrap;gap:4px 12px}.platform-config-form{display:flex;flex-direction:column;gap:8px;padding-top:4px;border-top:1px dashed var(--border-light)}.platform-config-form .hub-send-target{width:100%}.platform-config-form input{width:100%;box-sizing:border-box}.platform-config-actions{display:flex;gap:8px}.hub-remove-btn{background:transparent;border:1px solid rgba(224,49,49,.5);color:#e03131;border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer}.hub-remove-btn:hover{background:#e031311a}.platform-docs-link{text-decoration:none;font-size:11px;padding:2px 6px;border-radius:4px;color:var(--accent-blue, #58a6ff);border:1px solid rgba(88,166,255,.3)}.platform-docs-link:hover{background:#58a6ff1a}.platform-setup-hint{font-size:12px;color:var(--text-secondary, #8b949e);padding:4px 8px;background:#58a6ff0f;border-radius:4px;border-left:2px solid rgba(88,166,255,.3);line-height:1.4}.wizard-start-btn{background:#38bd9426;border:1px solid rgba(56,189,148,.4);color:#38bd94;border-radius:6px;padding:2px 8px;font-size:11px;cursor:pointer;white-space:nowrap}.wizard-start-btn:hover{background:#38bd9440}.wizard-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.wizard-modal{background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:12px;width:520px;max-width:90vw;max-height:80vh;overflow-y:auto;box-shadow:0 16px 48px #00000080}.wizard-header{display:flex;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid var(--border-light, #30363d)}.wizard-icon{font-size:20px}.wizard-title{font-size:16px;font-weight:600;color:var(--text-primary, #e6edf3);flex:1}.wizard-body{padding:20px}.wizard-section-title{font-size:14px;font-weight:600;color:var(--text-primary, #e6edf3);margin:0 0 12px}.wizard-steps{margin:0 0 16px;padding-left:20px;color:var(--text-secondary, #8b949e);font-size:13px;line-height:1.8}.wizard-steps li{margin-bottom:4px}.wizard-nav{display:flex;gap:8px;margin-top:16px}.wizard-steps-indicator{display:flex;gap:4px;margin-left:auto;margin-right:8px}.wizard-step-dot{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;background:var(--bg-tertiary, #1c2333);color:var(--text-secondary, #8b949e);border:1px solid var(--border-light, #30363d)}.wizard-step-dot.active{background:#58a6ff33;color:var(--accent-blue, #58a6ff);border-color:#58a6ff80}.wizard-verify-status{padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:12px;background:var(--bg-tertiary, #1c2333);color:var(--text-secondary, #8b949e)}.wizard-verify-status.ok{background:#38bd941a;color:#38bd94;border:1px solid rgba(56,189,148,.3)}.wizard-verify-status.err{background:#e031311a;color:#e03131;border:1px solid rgba(224,49,49,.3)}.wizard-test-section{margin-top:12px;padding:12px;background:var(--bg-tertiary, #1c2333);border-radius:8px;border:1px solid var(--border-light, #30363d)}.wizard-test-row{display:flex;gap:8px;margin-bottom:8px}.wizard-test-input{flex:1;background:var(--bg-primary, #0d1117);border:1px solid var(--border-light, #30363d);border-radius:6px;padding:6px 10px;font-size:13px;color:var(--text-primary, #e6edf3)}.wizard-hint{margin-top:12px;font-size:12px;color:var(--text-secondary, #8b949e);line-height:1.4}.platforms-summary{display:flex;align-items:center;gap:20px;padding:12px 16px;background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:8px;margin-bottom:16px}.platforms-summary-stat{display:flex;flex-direction:column;align-items:center;min-width:60px}.platforms-summary-number{font-size:24px;font-weight:700;color:var(--text-primary, #e6edf3)}.platforms-summary-label{font-size:11px;color:var(--text-secondary, #8b949e);text-transform:uppercase}.platforms-summary-filters{display:flex;gap:6px;margin-left:auto}.platforms-filter-btn{background:transparent;border:1px solid var(--border-light, #30363d);color:var(--text-secondary, #8b949e);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer}.platforms-filter-btn:hover{background:var(--bg-hover, #1c2538)}.platforms-filter-btn.active{background:#58a6ff26;border-color:#58a6ff66;color:var(--accent-blue, #58a6ff)}.platforms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.platform-card{background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:8px;padding:14px;transition:border-color .2s}.platform-card:hover{border-color:var(--border-hover, #484f58)}.platform-card.configured{border-color:#38bd944d;background:#38bd940a}.platform-card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.platform-card-icon{font-size:24px;width:32px;text-align:center}.platform-card-info{flex:1;display:flex;flex-direction:column}.platform-card-name{font-size:14px;font-weight:600;color:var(--text-primary, #e6edf3)}.platform-card-category{font-size:11px;color:var(--text-secondary, #8b949e)}.platform-card-vars{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.platform-var-chip{font-size:11px;padding:2px 6px;border-radius:4px;background:var(--bg-tertiary, #1c2333);color:var(--text-secondary, #8b949e);font-family:monospace}.platform-var-chip.set{background:#38bd941f;color:#38bd94}.platform-card-actions{display:flex;gap:6px;align-items:center}.platform-card-badge{font-size:12px;color:#38bd94;font-weight:500}.platform-card-hint{margin-top:8px;font-size:11px;color:var(--text-secondary, #8b949e);line-height:1.4;padding:6px 8px;background:#58a6ff0f;border-radius:4px;border-left:2px solid rgba(88,166,255,.3)}.platforms-cli-hint{margin-top:16px;padding:10px 14px;background:var(--bg-secondary, #161b22);border:1px dashed var(--border-light, #30363d);border-radius:8px;font-size:13px}.platforms-cli-hint code{background:var(--bg-tertiary, #1c2333);padding:2px 6px;border-radius:4px;font-size:12px}.hub-chip-bundled{background:#bc8cff2e!important;color:var(--accent-purple, #bc8cff)!important;border:1px solid rgba(188,140,255,.4)}.hub-market-search{display:flex;gap:8px;margin:0 0 10px}.hub-market-search input{flex:1;min-width:0}.hub-card-actions{display:flex;align-items:center;gap:8px}.hub-mini-btn{background:transparent;border:1px solid var(--border);color:var(--text-secondary);border-radius:6px;padding:3px 10px;font-size:12px;cursor:pointer;transition:var(--transition)}.hub-mini-btn:hover{border-color:#e0313180;color:#e03131;background:#e0313114}.hub-mini-btn:disabled{opacity:.5;cursor:not-allowed}.chat-chip-selected{background:#3b82f673!important;border-color:#3b82f6e6!important;box-shadow:0 0 0 1px #3b82f680}.chat-question-card{border-color:#eab30880}.chat-question-card .chat-chip{max-width:none;white-space:normal;text-align:left}.timeline-bar-container{display:flex;flex-direction:column;gap:2px;min-width:120px;max-width:200px}.timeline-bar{height:6px;background:#21262d;border-radius:3px;overflow:hidden;width:100%}.timeline-bar.small{height:3px}.timeline-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.timeline-bar-fill.probe{background:#58a6ff}.timeline-bar-fill.verify{background:#3fb950}.timeline-bar-fill.use{background:#d29922}.bedrock-onboarding{max-width:900px}.bedrock-status-bar{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:8px;margin-bottom:20px;flex-wrap:wrap}.bedrock-status-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary, #8b949e)}.bedrock-status-label{color:var(--text-secondary, #8b949e);font-size:12px}.bedrock-status-actions{margin-left:auto;display:flex;gap:8px}.bedrock-setup-wizard{background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:8px;padding:20px;margin-top:16px}.bedrock-wizard-step{margin-bottom:24px}.bedrock-wizard-step h4{font-size:15px;font-weight:600;color:var(--text-primary, #e6edf3);margin-bottom:10px}.bedrock-auth-options{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.bedrock-auth-option{display:flex;align-items:flex-start;gap:10px;padding:12px;background:var(--bg-tertiary, #1c2333);border:1px solid var(--border-light, #30363d);border-radius:8px;cursor:pointer;transition:border-color .15s}.bedrock-auth-option:hover{border-color:var(--accent-blue, #58a6ff)}.bedrock-auth-option.selected{border-color:var(--accent-blue, #58a6ff);background:#58a6ff14}.bedrock-auth-option strong{display:block;color:var(--text-primary, #e6edf3);font-size:14px}.bedrock-auth-option span{display:block;color:var(--text-secondary, #8b949e);font-size:12px;margin-top:2px}.bedrock-auth-option input[type=radio]{margin-top:2px;accent-color:var(--accent-blue, #58a6ff)}.bedrock-wizard-fields{display:flex;flex-direction:column;gap:10px}.bedrock-setup-hint{padding:10px 12px;background:var(--bg-tertiary, #1c2333);border:1px solid var(--border-light, #30363d);border-radius:6px;font-size:13px;color:var(--text-secondary, #8b949e);margin-bottom:10px}.bedrock-setup-hint strong{color:var(--text-primary, #e6edf3);display:block;margin-bottom:4px}.bedrock-setup-hint ol{margin:4px 0 0 18px;padding:0}.bedrock-setup-hint li{margin-bottom:2px}.bedrock-region-select{width:100%;max-width:400px;padding:8px 12px;background:var(--bg-tertiary, #1c2333);color:var(--text-primary, #e6edf3);border:1px solid var(--border-light, #30363d);border-radius:6px;font-size:14px}.bedrock-model-access-hint{margin-bottom:12px}.bedrock-family-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.bedrock-family-card{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-tertiary, #1c2333);border:1px solid var(--border-light, #30363d);border-radius:6px;cursor:pointer;transition:border-color .15s}.bedrock-family-card:hover{border-color:var(--accent-blue, #58a6ff)}.bedrock-family-card.selected{border-color:var(--accent-blue, #58a6ff);background:#58a6ff14}.bedrock-family-card input[type=checkbox]{accent-color:var(--accent-blue, #58a6ff)}.bedrock-family-card strong{display:block;font-size:13px;color:var(--text-primary, #e6edf3)}.bedrock-family-card span{display:block;font-size:11px;color:var(--text-secondary, #8b949e)}.bedrock-wizard-actions{display:flex;gap:10px;margin-top:16px}.bedrock-getting-started{margin-top:20px}.bedrock-steps{display:flex;flex-direction:column;gap:12px;margin-top:12px}.bedrock-step{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:8px}.bedrock-step-num{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--accent-blue, #58a6ff);color:#fff;border-radius:50%;font-weight:700;font-size:14px;flex-shrink:0}.bedrock-step strong{display:block;color:var(--text-primary, #e6edf3);font-size:14px}.bedrock-step span{display:block;color:var(--text-secondary, #8b949e);font-size:12px;margin-top:2px}.bedrock-quick-status,.bedrock-probe-results{margin-top:16px}.bedrock-probe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;margin-top:12px}.bedrock-probe-card{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:6px;font-size:12px}.bedrock-probe-card.bedrock-probe-accessible{border-color:#38bd944d}.bedrock-probe-card.bedrock-probe-permission-denied{border-color:#d299224d}.bedrock-probe-id{flex:1;color:var(--text-primary, #e6edf3);font-family:monospace;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bedrock-probe-status{color:var(--text-secondary, #8b949e);font-size:11px;white-space:nowrap}.bedrock-probe-action{margin-top:16px;padding:12px;background:#d2992214;border:1px solid rgba(210,153,34,.3);border-radius:6px;display:flex;align-items:center;gap:12px}.bedrock-probe-action p{margin:0;color:var(--text-primary, #e6edf3);font-size:13px}.contacts-page{max-width:1200px}.contacts-filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.contacts-filters .admin-refresh-btn{margin-left:auto}.contacts-table-wrapper{overflow-x:auto}.contacts-table{width:100%;border-collapse:collapse;font-size:13px}.contacts-table th{text-align:left;padding:8px 10px;background:var(--bg-secondary, #161b22);border-bottom:1px solid var(--border-light, #30363d);color:var(--text-secondary, #8b949e);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.contacts-table td{padding:8px 10px;border-bottom:1px solid var(--border-light, #30363d);color:var(--text-primary, #e6edf3)}.contact-row:hover{background:#58a6ff0a}.contact-row.status-pending{background:#d299220a}.contact-row.status-rejected{background:#da36330a}.contact-name{font-weight:600}.contact-id code{background:var(--bg-tertiary, #1c2333);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--text-secondary, #8b949e)}.contact-phone{color:var(--text-secondary, #8b949e)}.contact-date{color:var(--text-secondary, #8b949e);font-size:12px}.contact-actions{display:flex;gap:4px;flex-wrap:nowrap}.contact-status-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500}.contact-status-badge.approved{background:#38bd9426;color:#38bd94}.contact-status-badge.pending{background:#d2992226;color:#d29922}.contact-status-badge.rejected{background:#da363326;color:#da3633}.contact-approve-btn{color:#38bd94}.contact-reject-btn{color:#d29922}.contact-delete-btn{color:#da3633}.platform-config-table-wrapper{overflow-x:auto}.platform-config-table{width:100%;border-collapse:collapse;font-size:13px}.platform-config-table th{text-align:left;padding:8px 10px;background:var(--bg-secondary, #161b22);border-bottom:1px solid var(--border-light, #30363d);color:var(--text-secondary, #8b949e);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.platform-config-table td{padding:8px 10px;border-bottom:1px solid var(--border-light, #30363d);color:var(--text-primary, #e6edf3);vertical-align:middle}.platform-config-row:hover{background:#58a6ff0a}.platform-config-row.configured{background:#38bd9408}.platform-config-name{display:flex;flex-direction:column;gap:2px}.platform-config-name .hub-card-id{font-size:11px;color:var(--text-secondary, #8b949e)}.platform-config-status-text{margin-left:6px;font-size:12px}.platform-config-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.platform-config-cli{font-size:12px}.platform-config-cli code{background:var(--bg-tertiary, #1c2333);padding:2px 6px;border-radius:4px;font-size:11px;color:var(--text-secondary, #8b949e)}.platform-config-expanded td{background:var(--bg-secondary, #161b22);padding:16px}.platform-config-form{display:flex;flex-direction:column;gap:10px;max-width:500px}.platform-config-readonly{background:var(--bg-tertiary, #1c2333);border:1px solid var(--border-light, #30363d);border-radius:6px;padding:8px 12px;color:var(--text-secondary, #8b949e);font-size:13px;width:100%}.onboarding-summary{background:var(--bg-secondary, #161b22);border:1px solid var(--border-light, #30363d);border-radius:8px;padding:16px}.onboarding-stats{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.onboarding-stat{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500}.onboarding-stat.pending{background:#d2992226;color:#d29922}.onboarding-stat.approved{background:#38bd9426;color:#38bd94}.onboarding-stat.rejected{background:#da363326;color:#da3633}.onboarding-steps{display:flex;flex-direction:column;gap:10px}.onboarding-step{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-primary, #e6edf3)}.onboarding-step-num{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--accent-blue, #58a6ff);color:#fff;border-radius:50%;font-weight:700;font-size:12px;flex-shrink:0}.onboarding-step code{background:var(--bg-tertiary, #1c2333);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--accent-blue, #58a6ff)}