aimeat 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/dist/.env.example +4 -1
  2. package/dist/locales/en.json +573 -10
  3. package/dist/locales/fi.json +572 -9
  4. package/dist/public/css/views/admin-agent-integration.css +304 -0
  5. package/dist/public/css/views/agents-detail.css +1697 -120
  6. package/dist/public/css/views/profile.css +22 -2
  7. package/dist/public/css/views/public-knowledge-viewer.css +479 -0
  8. package/dist/public/js/i18n.js +9 -3
  9. package/dist/public/js/services/admin-agent-integration.js +52 -0
  10. package/dist/public/js/services/agent-integration.js +80 -0
  11. package/dist/public/js/services/agent-messages.js +3 -1
  12. package/dist/public/js/services/generator-spec-validate.js +23 -0
  13. package/dist/public/js/services/memory.js +39 -0
  14. package/dist/public/lib/live-updates.js +9 -4
  15. package/dist/public/llms-template.txt +106 -0
  16. package/dist/public/spa.html +7 -2
  17. package/dist/public/views/admin/agent-integration-tab.js +390 -0
  18. package/dist/public/views/admin/federation-tab.js +5 -5
  19. package/dist/public/views/admin/prompts-tab.js +9 -10
  20. package/dist/public/views/admin.js +2 -0
  21. package/dist/public/views/profile/access-tab.js +18 -0
  22. package/dist/public/views/profile/agents/agent-card.js +396 -0
  23. package/dist/public/views/profile/agents/shared-board.js +97 -0
  24. package/dist/public/views/profile/agents/state-detector.js +62 -0
  25. package/dist/public/views/profile/agents/tab-activity.js +232 -0
  26. package/dist/public/views/profile/agents/tab-agent-config.js +199 -0
  27. package/dist/public/views/profile/agents/tab-data-access.js +304 -0
  28. package/dist/public/views/profile/agents/tab-directives.js +178 -0
  29. package/dist/public/views/profile/agents/tab-integration.js +505 -0
  30. package/dist/public/views/profile/agents/tab-messages.js +278 -0
  31. package/dist/public/views/profile/agents/tab-services.js +17 -0
  32. package/dist/public/views/profile/agents/tab-tasks.js +17 -0
  33. package/dist/public/views/profile/agents-messages-subtab.js +12 -10
  34. package/dist/public/views/profile/agents-services-subtab.js +17 -11
  35. package/dist/public/views/profile/agents-tab.js +159 -255
  36. package/dist/public/views/profile/agents-task-builder.js +403 -0
  37. package/dist/public/views/profile/agents-tasks-subtab.js +186 -140
  38. package/dist/public/views/profile/generator-detail.js +8 -1
  39. package/dist/public/views/profile/memory-tab.js +371 -7
  40. package/dist/public/views/profile/wallet-tab.js +14 -0
  41. package/dist/public/views/public-knowledge-viewer.js +650 -0
  42. package/dist/src/auth/middleware.d.ts.map +1 -1
  43. package/dist/src/auth/middleware.js +17 -0
  44. package/dist/src/auth/middleware.js.map +1 -1
  45. package/dist/src/config.d.ts +1 -0
  46. package/dist/src/config.d.ts.map +1 -1
  47. package/dist/src/config.js +1 -0
  48. package/dist/src/config.js.map +1 -1
  49. package/dist/src/middleware/readiness-gate.d.ts +18 -0
  50. package/dist/src/middleware/readiness-gate.d.ts.map +1 -0
  51. package/dist/src/middleware/readiness-gate.js +50 -0
  52. package/dist/src/middleware/readiness-gate.js.map +1 -0
  53. package/dist/src/models/agent-capabilities-schemas.d.ts +3 -0
  54. package/dist/src/models/agent-capabilities-schemas.d.ts.map +1 -1
  55. package/dist/src/models/agent-capabilities-schemas.js +3 -0
  56. package/dist/src/models/agent-capabilities-schemas.js.map +1 -1
  57. package/dist/src/models/agent-directives-schemas.d.ts +12 -0
  58. package/dist/src/models/agent-directives-schemas.d.ts.map +1 -1
  59. package/dist/src/models/agent-directives-schemas.js +7 -0
  60. package/dist/src/models/agent-directives-schemas.js.map +1 -1
  61. package/dist/src/models/agent-onboarding-schemas.d.ts +45 -0
  62. package/dist/src/models/agent-onboarding-schemas.d.ts.map +1 -0
  63. package/dist/src/models/agent-onboarding-schemas.js +91 -0
  64. package/dist/src/models/agent-onboarding-schemas.js.map +1 -0
  65. package/dist/src/models/webhook-schemas.d.ts +266 -0
  66. package/dist/src/models/webhook-schemas.d.ts.map +1 -0
  67. package/dist/src/models/webhook-schemas.js +137 -0
  68. package/dist/src/models/webhook-schemas.js.map +1 -0
  69. package/dist/src/routes/admin-agent-integration.d.ts +24 -0
  70. package/dist/src/routes/admin-agent-integration.d.ts.map +1 -0
  71. package/dist/src/routes/admin-agent-integration.js +186 -0
  72. package/dist/src/routes/admin-agent-integration.js.map +1 -0
  73. package/dist/src/routes/admin-monitoring.js +12 -7
  74. package/dist/src/routes/admin-monitoring.js.map +1 -1
  75. package/dist/src/routes/agent-activity.d.ts.map +1 -1
  76. package/dist/src/routes/agent-activity.js +17 -0
  77. package/dist/src/routes/agent-activity.js.map +1 -1
  78. package/dist/src/routes/agent-capabilities.d.ts +1 -0
  79. package/dist/src/routes/agent-capabilities.d.ts.map +1 -1
  80. package/dist/src/routes/agent-capabilities.js +9 -0
  81. package/dist/src/routes/agent-capabilities.js.map +1 -1
  82. package/dist/src/routes/agent-directives.d.ts +5 -1
  83. package/dist/src/routes/agent-directives.d.ts.map +1 -1
  84. package/dist/src/routes/agent-directives.js +74 -20
  85. package/dist/src/routes/agent-directives.js.map +1 -1
  86. package/dist/src/routes/agent-integration.d.ts +1 -0
  87. package/dist/src/routes/agent-integration.d.ts.map +1 -1
  88. package/dist/src/routes/agent-integration.js +128 -11
  89. package/dist/src/routes/agent-integration.js.map +1 -1
  90. package/dist/src/routes/agent-messages.d.ts +5 -1
  91. package/dist/src/routes/agent-messages.d.ts.map +1 -1
  92. package/dist/src/routes/agent-messages.js +20 -1
  93. package/dist/src/routes/agent-messages.js.map +1 -1
  94. package/dist/src/routes/agent-onboarding.d.ts +23 -0
  95. package/dist/src/routes/agent-onboarding.d.ts.map +1 -0
  96. package/dist/src/routes/agent-onboarding.js +374 -0
  97. package/dist/src/routes/agent-onboarding.js.map +1 -0
  98. package/dist/src/routes/agent-skill-bundle.d.ts +16 -0
  99. package/dist/src/routes/agent-skill-bundle.d.ts.map +1 -0
  100. package/dist/src/routes/agent-skill-bundle.js +133 -0
  101. package/dist/src/routes/agent-skill-bundle.js.map +1 -0
  102. package/dist/src/routes/agent-tasks.d.ts +8 -1
  103. package/dist/src/routes/agent-tasks.d.ts.map +1 -1
  104. package/dist/src/routes/agent-tasks.js +192 -14
  105. package/dist/src/routes/agent-tasks.js.map +1 -1
  106. package/dist/src/routes/agent-telemetry.d.ts +15 -0
  107. package/dist/src/routes/agent-telemetry.d.ts.map +1 -0
  108. package/dist/src/routes/agent-telemetry.js +99 -0
  109. package/dist/src/routes/agent-telemetry.js.map +1 -0
  110. package/dist/src/routes/agent-webhook.d.ts +18 -0
  111. package/dist/src/routes/agent-webhook.d.ts.map +1 -0
  112. package/dist/src/routes/agent-webhook.js +243 -0
  113. package/dist/src/routes/agent-webhook.js.map +1 -0
  114. package/dist/src/routes/agents.d.ts.map +1 -1
  115. package/dist/src/routes/agents.js +203 -4
  116. package/dist/src/routes/agents.js.map +1 -1
  117. package/dist/src/routes/auth.d.ts.map +1 -1
  118. package/dist/src/routes/auth.js +45 -2
  119. package/dist/src/routes/auth.js.map +1 -1
  120. package/dist/src/routes/federation-auth.d.ts.map +1 -1
  121. package/dist/src/routes/federation-auth.js +3 -1
  122. package/dist/src/routes/federation-auth.js.map +1 -1
  123. package/dist/src/routes/federation-peer.d.ts.map +1 -1
  124. package/dist/src/routes/federation-peer.js +11 -2
  125. package/dist/src/routes/federation-peer.js.map +1 -1
  126. package/dist/src/routes/federation-sync.d.ts +1 -0
  127. package/dist/src/routes/federation-sync.d.ts.map +1 -1
  128. package/dist/src/routes/federation-sync.js +29 -0
  129. package/dist/src/routes/federation-sync.js.map +1 -1
  130. package/dist/src/routes/ghii.d.ts.map +1 -1
  131. package/dist/src/routes/ghii.js +42 -5
  132. package/dist/src/routes/ghii.js.map +1 -1
  133. package/dist/src/routes/knowledge.d.ts.map +1 -1
  134. package/dist/src/routes/knowledge.js +19 -7
  135. package/dist/src/routes/knowledge.js.map +1 -1
  136. package/dist/src/routes/memory.d.ts +9 -0
  137. package/dist/src/routes/memory.d.ts.map +1 -1
  138. package/dist/src/routes/memory.js +307 -12
  139. package/dist/src/routes/memory.js.map +1 -1
  140. package/dist/src/routes/portal.d.ts.map +1 -1
  141. package/dist/src/routes/portal.js +1 -0
  142. package/dist/src/routes/portal.js.map +1 -1
  143. package/dist/src/routes/prompts.d.ts +1 -0
  144. package/dist/src/routes/prompts.d.ts.map +1 -1
  145. package/dist/src/routes/prompts.js +40 -1
  146. package/dist/src/routes/prompts.js.map +1 -1
  147. package/dist/src/routes/sharing-groups.d.ts.map +1 -1
  148. package/dist/src/routes/sharing-groups.js +8 -2
  149. package/dist/src/routes/sharing-groups.js.map +1 -1
  150. package/dist/src/routes/wallet.d.ts.map +1 -1
  151. package/dist/src/routes/wallet.js +2 -0
  152. package/dist/src/routes/wallet.js.map +1 -1
  153. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  154. package/dist/src/server-bootstrap/routes-loader.js +47 -3
  155. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  156. package/dist/src/services/config-schema.d.ts.map +1 -1
  157. package/dist/src/services/config-schema.js +2 -1
  158. package/dist/src/services/config-schema.js.map +1 -1
  159. package/dist/src/services/core-jobs.d.ts.map +1 -1
  160. package/dist/src/services/core-jobs.js +3 -2
  161. package/dist/src/services/core-jobs.js.map +1 -1
  162. package/dist/src/services/federation-helpers.d.ts +1 -0
  163. package/dist/src/services/federation-helpers.d.ts.map +1 -1
  164. package/dist/src/services/federation-helpers.js +1 -1
  165. package/dist/src/services/federation-helpers.js.map +1 -1
  166. package/dist/src/services/generator-autopilot.d.ts.map +1 -1
  167. package/dist/src/services/generator-autopilot.js +125 -26
  168. package/dist/src/services/generator-autopilot.js.map +1 -1
  169. package/dist/src/services/generator-prompts/index.d.ts +1 -1
  170. package/dist/src/services/generator-prompts/index.d.ts.map +1 -1
  171. package/dist/src/services/generator-prompts/index.js +1 -1
  172. package/dist/src/services/generator-prompts/index.js.map +1 -1
  173. package/dist/src/services/generator-prompts/spec-validate.d.ts +1 -0
  174. package/dist/src/services/generator-prompts/spec-validate.d.ts.map +1 -1
  175. package/dist/src/services/generator-prompts/spec-validate.js +20 -0
  176. package/dist/src/services/generator-prompts/spec-validate.js.map +1 -1
  177. package/dist/src/services/generator-prompts/validate.d.ts +7 -1
  178. package/dist/src/services/generator-prompts/validate.d.ts.map +1 -1
  179. package/dist/src/services/generator-prompts/validate.js +70 -0
  180. package/dist/src/services/generator-prompts/validate.js.map +1 -1
  181. package/dist/src/services/onboarding-validator.d.ts +22 -0
  182. package/dist/src/services/onboarding-validator.d.ts.map +1 -0
  183. package/dist/src/services/onboarding-validator.js +202 -0
  184. package/dist/src/services/onboarding-validator.js.map +1 -0
  185. package/dist/src/services/platform-detector.d.ts +27 -0
  186. package/dist/src/services/platform-detector.d.ts.map +1 -0
  187. package/dist/src/services/platform-detector.js +73 -0
  188. package/dist/src/services/platform-detector.js.map +1 -0
  189. package/dist/src/services/prompt-defaults.d.ts +1 -0
  190. package/dist/src/services/prompt-defaults.d.ts.map +1 -1
  191. package/dist/src/services/prompt-defaults.js +875 -47
  192. package/dist/src/services/prompt-defaults.js.map +1 -1
  193. package/dist/src/services/prompt-seeder.js +1 -1
  194. package/dist/src/services/prompt-seeder.js.map +1 -1
  195. package/dist/src/services/readiness-scorer.d.ts +34 -0
  196. package/dist/src/services/readiness-scorer.d.ts.map +1 -0
  197. package/dist/src/services/readiness-scorer.js +87 -0
  198. package/dist/src/services/readiness-scorer.js.map +1 -0
  199. package/dist/src/services/skill-bundle/generator.d.ts +17 -0
  200. package/dist/src/services/skill-bundle/generator.d.ts.map +1 -0
  201. package/dist/src/services/skill-bundle/generator.js +387 -0
  202. package/dist/src/services/skill-bundle/generator.js.map +1 -0
  203. package/dist/src/services/skill-bundle/generic-adapter.d.ts +16 -0
  204. package/dist/src/services/skill-bundle/generic-adapter.d.ts.map +1 -0
  205. package/dist/src/services/skill-bundle/generic-adapter.js +96 -0
  206. package/dist/src/services/skill-bundle/generic-adapter.js.map +1 -0
  207. package/dist/src/services/skill-bundle/hermes-adapter.d.ts +25 -0
  208. package/dist/src/services/skill-bundle/hermes-adapter.d.ts.map +1 -0
  209. package/dist/src/services/skill-bundle/hermes-adapter.js +302 -0
  210. package/dist/src/services/skill-bundle/hermes-adapter.js.map +1 -0
  211. package/dist/src/services/skill-bundle/types.d.ts +54 -0
  212. package/dist/src/services/skill-bundle/types.d.ts.map +1 -0
  213. package/dist/src/services/skill-bundle/types.js +8 -0
  214. package/dist/src/services/skill-bundle/types.js.map +1 -0
  215. package/dist/src/services/task-stall-detector.d.ts +10 -2
  216. package/dist/src/services/task-stall-detector.d.ts.map +1 -1
  217. package/dist/src/services/task-stall-detector.js +34 -5
  218. package/dist/src/services/task-stall-detector.js.map +1 -1
  219. package/dist/src/services/webhook-dispatcher.d.ts +71 -0
  220. package/dist/src/services/webhook-dispatcher.d.ts.map +1 -0
  221. package/dist/src/services/webhook-dispatcher.js +259 -0
  222. package/dist/src/services/webhook-dispatcher.js.map +1 -0
  223. package/dist/src/storage/interface.d.ts +82 -2
  224. package/dist/src/storage/interface.d.ts.map +1 -1
  225. package/dist/src/storage/providers/mongodb/index.d.ts +20 -1
  226. package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
  227. package/dist/src/storage/providers/mongodb/index.js +254 -3
  228. package/dist/src/storage/providers/mongodb/index.js.map +1 -1
  229. package/dist/src/storage/providers/sqlite/index.d.ts +18 -1
  230. package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
  231. package/dist/src/storage/providers/sqlite/index.js +173 -4
  232. package/dist/src/storage/providers/sqlite/index.js.map +1 -1
  233. package/dist/src/storage/providers/sqlite/repos/agent-directives.d.ts.map +1 -1
  234. package/dist/src/storage/providers/sqlite/repos/agent-directives.js +8 -4
  235. package/dist/src/storage/providers/sqlite/repos/agent-directives.js.map +1 -1
  236. package/dist/src/storage/providers/sqlite/repos/agent.d.ts.map +1 -1
  237. package/dist/src/storage/providers/sqlite/repos/agent.js +25 -4
  238. package/dist/src/storage/providers/sqlite/repos/agent.js.map +1 -1
  239. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  240. package/dist/src/storage/providers/sqlite/schema.js +73 -1
  241. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  242. package/dist/src/storage/repositories/agent-onboarding.repository.d.ts +16 -0
  243. package/dist/src/storage/repositories/agent-onboarding.repository.d.ts.map +1 -0
  244. package/dist/src/storage/repositories/agent-onboarding.repository.js +8 -0
  245. package/dist/src/storage/repositories/agent-onboarding.repository.js.map +1 -0
  246. package/dist/src/storage/repositories/agent-webhook.repository.d.ts +21 -0
  247. package/dist/src/storage/repositories/agent-webhook.repository.d.ts.map +1 -0
  248. package/dist/src/storage/repositories/agent-webhook.repository.js +2 -0
  249. package/dist/src/storage/repositories/agent-webhook.repository.js.map +1 -0
  250. package/dist/src/storage/repositories/agent.repository.d.ts +1 -0
  251. package/dist/src/storage/repositories/agent.repository.d.ts.map +1 -1
  252. package/dist/src/storage/repositories/index.d.ts +2 -0
  253. package/dist/src/storage/repositories/index.d.ts.map +1 -1
  254. package/dist/src/utils/env-config.d.ts.map +1 -1
  255. package/dist/src/utils/env-config.js +7 -1
  256. package/dist/src/utils/env-config.js.map +1 -1
  257. package/dist/src/utils/url-validator.d.ts.map +1 -1
  258. package/dist/src/utils/url-validator.js +3 -0
  259. package/dist/src/utils/url-validator.js.map +1 -1
  260. package/package.json +1 -1
  261. package/prisma/schema.prisma +67 -7
@@ -8,17 +8,36 @@
8
8
  * v1.1.0 -- 2026-05-22 -- Add capability badge styles for Capabilities sub-tab
9
9
  * v1.2.0 -- 2026-05-22 -- Add Activity sub-tab styles (stats cards, chart, jobs, event log)
10
10
  * v1.3.0 -- 2026-05-22 -- Add Services and Messages sub-tab styles
11
+ * v1.6.0 -- 2026-05-22 -- Add Task Creation Builder split-panel styles
12
+ * v1.5.0 -- 2026-05-22 -- Add task timestamp and todo completion time styles
13
+ * v2.0.0 -- 2026-05-24 -- Add styles for audit fix components (status dots, config actions, URL forms, help text)
14
+ * v2.1.0 -- 2026-05-24 -- Add scope footer and config upload styles for F8-F16 audit fixes
15
+ * v2.1.0 -- 2026-05-24 -- Add webhook edit form, role badge, strengths/gaps styles for Integration tab
16
+ * v1.4.0 -- 2026-05-22 -- Add Task TODO list, progress, environment badges, Start button styles
17
+ * v2.2.0 -- 2026-05-24 -- Fix C6: remove GAII CSS, M2: compact connect content
18
+ * v2.3.0 -- 2026-05-24 -- Add F18 violation badge, C5 directives textarea styles
19
+ * v2.4.0 -- 2026-05-24 -- Add header-row flex layout for title + connect button alignment
11
20
  */
12
21
 
22
+ /* Header row: title left, connect button right */
23
+ .pf-agd-header-row {
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: space-between;
27
+ gap: 1rem;
28
+ }
29
+
13
30
  /* Sub-tab bar */
14
- .pf .agd-subtab-bar {
31
+ .pf .agd-subtab-bar ,
32
+ .pf .pf-agd-subtab-bar {
15
33
  display: flex;
16
34
  gap: 0.25rem;
17
35
  border-bottom: 1px solid var(--border, #E5E7EB);
18
36
  margin-top: 1rem;
19
37
  padding-bottom: 0;
20
38
  }
21
- .pf .agd-subtab {
39
+ .pf .agd-subtab ,
40
+ .pf .pf-agd-subtab {
22
41
  padding: 0.35rem 1rem;
23
42
  background: none;
24
43
  border: none;
@@ -28,27 +47,32 @@
28
47
  font-size: 0.875rem;
29
48
  transition: color 0.15s, border-color 0.15s;
30
49
  }
31
- .pf .agd-subtab:hover { color: var(--text, #1A1A2E); }
32
- .pf .agd-subtab-active {
50
+ .pf .agd-subtab:hover ,
51
+ .pf .pf-agd-subtab:hover { color: var(--text, #1A1A2E); }
52
+ .pf .agd-subtab-active ,
53
+ .pf .pf-agd-subtab-active {
33
54
  color: var(--accent, #E8564A);
34
55
  border-bottom-color: var(--accent, #E8564A);
35
56
  font-weight: 600;
36
57
  }
37
58
 
38
59
  /* Sub-tab content area */
39
- .pf .agd-subtab-content {
60
+ .pf .agd-subtab-content ,
61
+ .pf .pf-agd-subtab-content {
40
62
  padding: 1rem 0 0.5rem;
41
63
  min-height: 120px;
42
64
  }
43
65
 
44
66
  /* Section headers inside sub-tabs */
45
- .pf .agd-section-header {
67
+ .pf .agd-section-header ,
68
+ .pf .pf-agd-section-header {
46
69
  display: flex;
47
70
  align-items: center;
48
71
  justify-content: space-between;
49
72
  margin-bottom: 0.5rem;
50
73
  }
51
- .pf .agd-section-title {
74
+ .pf .agd-section-title ,
75
+ .pf .pf-agd-section-title {
52
76
  font-size: 0.8rem;
53
77
  font-weight: 600;
54
78
  color: var(--text-dim, #6B7280);
@@ -57,7 +81,8 @@
57
81
  }
58
82
 
59
83
  /* Task list items */
60
- .pf .agd-task-item {
84
+ .pf .agd-task-item ,
85
+ .pf .pf-agd-task-item {
61
86
  display: flex;
62
87
  align-items: center;
63
88
  justify-content: space-between;
@@ -69,36 +94,50 @@
69
94
  cursor: pointer;
70
95
  transition: background 0.15s;
71
96
  }
72
- .pf .agd-task-item:hover { background: var(--card-bg-alt, #F3F4F6); }
73
- .pf .agd-task-title { font-weight: 500; flex: 1; font-size: 0.85rem; }
74
- .pf .agd-task-meta { display: flex; gap: 0.5rem; align-items: center; flex-shrink: 0; }
75
- .pf .agd-task-time { font-size: 0.75rem; color: var(--text-dim, #6B7280); }
97
+ .pf .agd-task-item:hover ,
98
+ .pf .pf-agd-task-item:hover { background: var(--card-bg-alt, #F3F4F6); }
99
+ .pf .agd-task-title ,
100
+ .pf .pf-agd-task-title { font-weight: 500; flex: 1; font-size: 0.85rem; }
101
+ .pf .agd-task-meta ,
102
+ .pf .pf-agd-task-meta { display: flex; gap: 0.5rem; align-items: center; flex-shrink: 0; }
103
+ .pf .agd-task-time ,
104
+ .pf .pf-agd-task-time { font-size: 0.75rem; color: var(--text-dim, #6B7280); }
76
105
 
77
106
  /* Status badges */
78
- .pf .agd-status {
107
+ .pf .agd-status ,
108
+ .pf .pf-agd-status {
79
109
  font-size: 0.7rem;
80
110
  padding: 2px 8px;
81
111
  border-radius: 12px;
82
112
  font-weight: 500;
83
113
  white-space: nowrap;
84
114
  }
85
- .pf .agd-status-draft { background: var(--card-bg-alt, #F3F4F6); color: var(--text-dim, #6B7280); }
86
- .pf .agd-status-queued { background: rgba(217, 119, 6, 0.1); color: #d97706; }
87
- .pf .agd-status-active { background: rgba(37, 99, 235, 0.1); color: #2563eb; }
88
- .pf .agd-status-done { background: rgba(16, 185, 129, 0.1); color: var(--success, #10b981); }
89
- .pf .agd-status-failed { background: rgba(239, 68, 68, 0.1); color: var(--danger, #ef4444); }
90
- .pf .agd-status-stalled { background: rgba(239, 68, 68, 0.1); color: #d97706; }
115
+ .pf .agd-status-draft ,
116
+ .pf .pf-agd-status-draft { background: var(--card-bg-alt, #F3F4F6); color: var(--text-dim, #6B7280); }
117
+ .pf .agd-status-queued ,
118
+ .pf .pf-agd-status-queued { background: rgba(217, 119, 6, 0.1); color: var(--warn, #F59E0B); }
119
+ .pf .agd-status-active ,
120
+ .pf .pf-agd-status-active { background: rgba(37, 99, 235, 0.1); color: var(--blue, #3B82F6); }
121
+ .pf .agd-status-done ,
122
+ .pf .pf-agd-status-done { background: rgba(16, 185, 129, 0.1); color: var(--success, #10b981); }
123
+ .pf .agd-status-failed ,
124
+ .pf .pf-agd-status-failed { background: rgba(239, 68, 68, 0.1); color: var(--danger, #ef4444); }
125
+ .pf .agd-status-stalled ,
126
+ .pf .pf-agd-status-stalled { background: rgba(239, 68, 68, 0.1); color: var(--warn, #F59E0B); }
91
127
 
92
128
  /* Task creation form */
93
- .pf .agd-create-form {
129
+ .pf .agd-create-form ,
130
+ .pf .pf-agd-create-form {
94
131
  padding: 0.75rem;
95
132
  border: 1px solid var(--border, #E5E7EB);
96
133
  border-radius: var(--radius-xs, 6px);
97
134
  margin-top: 0.5rem;
98
135
  background: var(--card-bg, #FFFFFF);
99
136
  }
100
- .pf .agd-form-field { margin-bottom: 0.65rem; }
101
- .pf .agd-form-field label {
137
+ .pf .agd-form-field ,
138
+ .pf .pf-agd-form-field { margin-bottom: 0.65rem; }
139
+ .pf .agd-form-field label ,
140
+ .pf .pf-agd-form-field label {
102
141
  display: block;
103
142
  font-size: 0.8rem;
104
143
  font-weight: 600;
@@ -107,7 +146,10 @@
107
146
  }
108
147
  .pf .agd-form-field input,
109
148
  .pf .agd-form-field textarea,
110
- .pf .agd-form-field select {
149
+ .pf .agd-form-field select ,
150
+ .pf .pf-agd-form-field input,
151
+ .pf .pf-agd-form-field textarea,
152
+ .pf .pf-agd-form-field select {
111
153
  width: 100%;
112
154
  padding: 0.35rem 0.5rem;
113
155
  border: 1px solid var(--border, #E5E7EB);
@@ -120,15 +162,21 @@
120
162
  }
121
163
  .pf .agd-form-field input:focus,
122
164
  .pf .agd-form-field textarea:focus,
123
- .pf .agd-form-field select:focus {
165
+ .pf .agd-form-field select:focus ,
166
+ .pf .pf-agd-form-field input:focus,
167
+ .pf .pf-agd-form-field textarea:focus,
168
+ .pf .pf-agd-form-field select:focus {
124
169
  outline: none;
125
170
  border-color: var(--accent, #E8564A);
126
171
  }
127
- .pf .agd-form-field textarea { min-height: 70px; resize: vertical; }
128
- .pf .agd-form-actions { display: flex; gap: 0.5rem; margin-top: 0.75rem; }
172
+ .pf .agd-form-field textarea ,
173
+ .pf .pf-agd-form-field textarea { min-height: 70px; resize: vertical; }
174
+ .pf .agd-form-actions ,
175
+ .pf .pf-agd-form-actions { display: flex; gap: 0.5rem; margin-top: 0.75rem; }
129
176
 
130
177
  /* Task expanded detail / event log */
131
- .pf .agd-task-expanded {
178
+ .pf .agd-task-expanded ,
179
+ .pf .pf-agd-task-expanded {
132
180
  padding: 0.5rem 0.75rem;
133
181
  border: 1px solid var(--border, #E5E7EB);
134
182
  border-top: none;
@@ -138,11 +186,32 @@
138
186
  background: var(--card-bg-alt, #F3F4F6);
139
187
  font-size: 0.85rem;
140
188
  }
141
- .pf .agd-task-desc { color: var(--text-dim, #6B7280); margin-bottom: 0.5rem; line-height: 1.4; }
142
- .pf .agd-task-actions { display: flex; gap: 0.5rem; margin-top: 0.5rem; }
189
+ .pf .agd-task-desc ,
190
+ .pf .pf-agd-task-desc { color: var(--text-dim, #6B7280); margin-bottom: 0.5rem; line-height: 1.4; }
191
+ .pf .agd-task-timestamps ,
192
+ .pf .pf-agd-task-timestamps {
193
+ display: flex;
194
+ flex-wrap: wrap;
195
+ gap: 0.75rem;
196
+ font-size: 0.7rem;
197
+ color: var(--text-muted, #9CA3AF);
198
+ margin-bottom: 0.5rem;
199
+ padding-bottom: 0.4rem;
200
+ border-bottom: 1px solid var(--border, #E5E7EB);
201
+ }
202
+ .pf .agd-todo-completed-at ,
203
+ .pf .pf-agd-todo-completed-at {
204
+ font-size: 0.7rem;
205
+ color: var(--text-muted, #9CA3AF);
206
+ margin-top: 0.15rem;
207
+ }
208
+ .pf .agd-task-actions ,
209
+ .pf .pf-agd-task-actions { display: flex; gap: 0.5rem; margin-top: 0.5rem; }
143
210
 
144
- .pf .agd-event-log { max-height: 200px; overflow-y: auto; margin-top: 0.5rem; }
145
- .pf .agd-event-item {
211
+ .pf .agd-event-log ,
212
+ .pf .pf-agd-event-log { max-height: 200px; overflow-y: auto; margin-top: 0.5rem; }
213
+ .pf .agd-event-item ,
214
+ .pf .pf-agd-event-item {
146
215
  padding: 0.25rem 0;
147
216
  border-bottom: 1px solid var(--border, #E5E7EB);
148
217
  font-size: 0.8rem;
@@ -150,21 +219,32 @@
150
219
  gap: 0.5rem;
151
220
  align-items: baseline;
152
221
  }
153
- .pf .agd-event-item:last-child { border-bottom: none; }
154
- .pf .agd-event-time { color: var(--text-dim, #6B7280); font-size: 0.7rem; flex-shrink: 0; }
155
- .pf .agd-event-type { font-weight: 500; flex-shrink: 0; }
222
+ .pf .agd-event-item:last-child ,
223
+ .pf .pf-agd-event-item:last-child { border-bottom: none; }
224
+ .pf .agd-event-time ,
225
+ .pf .pf-agd-event-time { color: var(--text-dim, #6B7280); font-size: 0.7rem; flex-shrink: 0; }
226
+ .pf .agd-event-type ,
227
+ .pf .pf-agd-event-type { font-weight: 500; flex-shrink: 0; }
156
228
 
157
229
  /* Empty state */
158
- .pf .agd-empty {
230
+ .pf .agd-empty ,
231
+ .pf .pf-agd-empty {
159
232
  text-align: center;
160
233
  padding: 1.5rem;
161
234
  color: var(--text-dim, #6B7280);
162
235
  font-size: 0.85rem;
163
236
  }
237
+ .pf .pf-agd-empty-hint {
238
+ color: var(--text-dim);
239
+ font-size: 0.8rem;
240
+ margin-top: 0.25rem;
241
+ }
164
242
 
165
243
  /* Directives display */
166
- .pf .agd-directive-section { margin-bottom: 1rem; }
167
- .pf .agd-directive-section h4 {
244
+ .pf .agd-directive-section ,
245
+ .pf .pf-agd-directive-section { margin-bottom: 1rem; }
246
+ .pf .agd-directive-section h4 ,
247
+ .pf .pf-agd-directive-section h4 {
168
248
  font-size: 0.8rem;
169
249
  font-weight: 600;
170
250
  margin-bottom: 0.35rem;
@@ -172,13 +252,15 @@
172
252
  text-transform: uppercase;
173
253
  letter-spacing: 0.5px;
174
254
  }
175
- .pf .agd-purpose-text {
255
+ .pf .agd-purpose-text ,
256
+ .pf .pf-agd-purpose-text {
176
257
  font-size: 0.85rem;
177
258
  color: var(--text, #1A1A2E);
178
259
  line-height: 1.5;
179
260
  padding: 0.35rem 0;
180
261
  }
181
- .pf .agd-rule-item {
262
+ .pf .agd-rule-item ,
263
+ .pf .pf-agd-rule-item {
182
264
  display: flex;
183
265
  align-items: flex-start;
184
266
  gap: 0.5rem;
@@ -186,8 +268,10 @@
186
268
  font-size: 0.85rem;
187
269
  line-height: 1.4;
188
270
  }
189
- .pf .agd-rule-text { flex: 1; }
190
- .pf .agd-rule-source {
271
+ .pf .agd-rule-text ,
272
+ .pf .pf-agd-rule-text { flex: 1; }
273
+ .pf .agd-rule-source ,
274
+ .pf .pf-agd-rule-source {
191
275
  font-size: 0.65rem;
192
276
  padding: 1px 6px;
193
277
  border-radius: 8px;
@@ -196,34 +280,42 @@
196
280
  font-weight: 500;
197
281
  margin-top: 2px;
198
282
  }
199
- .pf .agd-source-system { background: var(--card-bg-alt, #F3F4F6); color: var(--text-dim, #6B7280); }
200
- .pf .agd-source-owner { background: rgba(37, 99, 235, 0.1); color: #2563eb; }
201
- .pf .agd-source-agent { background: rgba(16, 185, 129, 0.1); color: var(--success, #10b981); }
283
+ .pf .agd-source-system ,
284
+ .pf .pf-agd-source-system { background: var(--card-bg-alt, #F3F4F6); color: var(--text-dim, #6B7280); }
285
+ .pf .agd-source-owner ,
286
+ .pf .pf-agd-source-owner { background: rgba(37, 99, 235, 0.1); color: var(--blue, #3B82F6); }
287
+ .pf .agd-source-agent ,
288
+ .pf .pf-agd-source-agent { background: rgba(16, 185, 129, 0.1); color: var(--success, #10b981); }
202
289
 
203
290
  /* Resource / memory area lists */
204
- .pf .agd-list-item {
291
+ .pf .agd-list-item ,
292
+ .pf .pf-agd-list-item {
205
293
  padding: 0.25rem 0;
206
294
  font-size: 0.85rem;
207
295
  color: var(--text, #1A1A2E);
208
- border-bottom: 1px solid rgba(0, 0, 0, 0.04);
296
+ border-bottom: 1px solid var(--border-subtle, #F3F4F6);
209
297
  }
210
- .pf .agd-list-item:last-child { border-bottom: none; }
211
- .pf .agd-list-item code {
298
+ .pf .agd-list-item:last-child ,
299
+ .pf .pf-agd-list-item:last-child { border-bottom: none; }
300
+ .pf .agd-list-item code ,
301
+ .pf .pf-agd-list-item code {
212
302
  font-family: 'JetBrains Mono', monospace;
213
303
  font-size: 0.78rem;
214
- background: rgba(0, 0, 0, 0.04);
304
+ background: var(--code-bg, #F3F4F6);
215
305
  padding: 1px 5px;
216
306
  border-radius: 3px;
217
307
  }
218
308
 
219
309
  /* Editable rule input row */
220
- .pf .agd-rule-edit-row {
310
+ .pf .agd-rule-edit-row ,
311
+ .pf .pf-agd-rule-edit-row {
221
312
  display: flex;
222
313
  gap: 0.5rem;
223
314
  align-items: center;
224
315
  margin-bottom: 0.35rem;
225
316
  }
226
- .pf .agd-rule-edit-row input {
317
+ .pf .agd-rule-edit-row input ,
318
+ .pf .pf-agd-rule-edit-row input {
227
319
  flex: 1;
228
320
  padding: 0.3rem 0.5rem;
229
321
  border: 1px solid var(--border, #E5E7EB);
@@ -233,11 +325,13 @@
233
325
  color: var(--text, #1A1A2E);
234
326
  font-family: inherit;
235
327
  }
236
- .pf .agd-rule-edit-row input:focus {
328
+ .pf .agd-rule-edit-row input:focus ,
329
+ .pf .pf-agd-rule-edit-row input:focus {
237
330
  outline: none;
238
331
  border-color: var(--accent, #E8564A);
239
332
  }
240
- .pf .agd-remove-btn {
333
+ .pf .agd-remove-btn ,
334
+ .pf .pf-agd-remove-btn {
241
335
  background: none;
242
336
  border: none;
243
337
  color: var(--danger, #ef4444);
@@ -247,8 +341,10 @@
247
341
  opacity: 0.6;
248
342
  transition: opacity 0.15s;
249
343
  }
250
- .pf .agd-remove-btn:hover { opacity: 1; }
251
- .pf .agd-add-btn {
344
+ .pf .agd-remove-btn:hover ,
345
+ .pf .pf-agd-remove-btn:hover { opacity: 1; }
346
+ .pf .agd-add-btn ,
347
+ .pf .pf-agd-add-btn {
252
348
  background: none;
253
349
  border: 1px dashed var(--border, #E5E7EB);
254
350
  color: var(--text-dim, #6B7280);
@@ -259,23 +355,26 @@
259
355
  transition: border-color 0.15s, color 0.15s;
260
356
  margin-top: 0.25rem;
261
357
  }
262
- .pf .agd-add-btn:hover {
358
+ .pf .agd-add-btn:hover ,
359
+ .pf .pf-agd-add-btn:hover {
263
360
  border-color: var(--accent, #E8564A);
264
361
  color: var(--accent, #E8564A);
265
362
  }
266
363
 
267
364
  /* Group picker popup (memory tab visibility cycling) */
268
- .agd-group-picker {
365
+ .pf .agd-group-picker,
366
+ .pf .pf-agd-group-picker {
269
367
  position: absolute;
270
368
  z-index: 10;
271
369
  background: var(--card, #FFFFFF);
272
370
  border: 1px solid var(--border, #E5E7EB);
273
371
  border-radius: var(--radius, 6px);
274
372
  padding: var(--space-sm, 0.5rem);
275
- box-shadow: 0 4px 12px rgba(0,0,0,0.15);
373
+ box-shadow: var(--shadow-lg, 0 8px 24px rgba(0,0,0,0.08));
276
374
  min-width: 200px;
277
375
  }
278
- .agd-group-option {
376
+ .pf .agd-group-option,
377
+ .pf .pf-agd-group-option {
279
378
  display: block;
280
379
  width: 100%;
281
380
  text-align: left;
@@ -285,7 +384,8 @@
285
384
  /* ── Capabilities sub-tab ── */
286
385
 
287
386
  /* Badge list container */
288
- .pf .agd-cap-list {
387
+ .pf .agd-cap-list ,
388
+ .pf .pf-agd-cap-list {
289
389
  display: flex;
290
390
  flex-wrap: wrap;
291
391
  gap: 0.35rem;
@@ -293,7 +393,8 @@
293
393
  }
294
394
 
295
395
  /* Individual capability badge */
296
- .pf .agd-cap-badge {
396
+ .pf .agd-cap-badge ,
397
+ .pf .pf-agd-cap-badge {
297
398
  display: inline-flex;
298
399
  align-items: center;
299
400
  gap: 0.35rem;
@@ -304,12 +405,14 @@
304
405
  background: var(--card-bg, #FFFFFF);
305
406
  color: var(--text, #1A1A2E);
306
407
  }
307
- .pf .agd-cap-name {
408
+ .pf .agd-cap-name ,
409
+ .pf .pf-agd-cap-name {
308
410
  font-weight: 500;
309
411
  }
310
412
 
311
413
  /* Type badges (MCP / skill / tool) */
312
- .pf .agd-cap-type {
414
+ .pf .agd-cap-type ,
415
+ .pf .pf-agd-cap-type {
313
416
  font-size: 0.65rem;
314
417
  padding: 1px 6px;
315
418
  border-radius: 8px;
@@ -319,21 +422,25 @@
319
422
  background: var(--card-bg-alt, #F3F4F6);
320
423
  color: var(--text-dim, #6B7280);
321
424
  }
322
- .pf .agd-cap-type-mcp {
425
+ .pf .agd-cap-type-mcp ,
426
+ .pf .pf-agd-cap-type-mcp {
323
427
  background: rgba(37, 99, 235, 0.1);
324
- color: #2563eb;
428
+ color: var(--blue, #3B82F6);
325
429
  }
326
- .pf .agd-cap-type-skill {
430
+ .pf .agd-cap-type-skill ,
431
+ .pf .pf-agd-cap-type-skill {
327
432
  background: rgba(16, 185, 129, 0.1);
328
433
  color: var(--success, #10b981);
329
434
  }
330
- .pf .agd-cap-type-tool {
435
+ .pf .agd-cap-type-tool ,
436
+ .pf .pf-agd-cap-type-tool {
331
437
  background: rgba(217, 119, 6, 0.1);
332
- color: #d97706;
438
+ color: var(--warn, #F59E0B);
333
439
  }
334
440
 
335
441
  /* Verified / self-reported badges */
336
- .pf .agd-cap-verified {
442
+ .pf .agd-cap-verified ,
443
+ .pf .pf-agd-cap-verified {
337
444
  font-size: 0.65rem;
338
445
  padding: 1px 6px;
339
446
  border-radius: 8px;
@@ -341,7 +448,8 @@
341
448
  background: rgba(16, 185, 129, 0.1);
342
449
  color: var(--success, #10b981);
343
450
  }
344
- .pf .agd-cap-unverified {
451
+ .pf .agd-cap-unverified ,
452
+ .pf .pf-agd-cap-unverified {
345
453
  font-size: 0.65rem;
346
454
  padding: 1px 6px;
347
455
  border-radius: 8px;
@@ -351,43 +459,50 @@
351
459
  }
352
460
 
353
461
  /* Domain badge variant */
354
- .pf .agd-cap-domain {
462
+ .pf .agd-cap-domain ,
463
+ .pf .pf-agd-cap-domain {
355
464
  background: var(--card-bg-alt, #F3F4F6);
356
465
  }
357
466
 
358
467
  /* Language tags row */
359
- .pf .agd-cap-langs {
468
+ .pf .agd-cap-langs ,
469
+ .pf .pf-agd-cap-langs {
360
470
  display: flex;
361
471
  flex-wrap: wrap;
362
472
  align-items: center;
363
473
  gap: 0.35rem;
364
474
  margin-top: 0.5rem;
365
475
  }
366
- .pf .agd-cap-lang-label {
476
+ .pf .agd-cap-lang-label ,
477
+ .pf .pf-agd-cap-lang-label {
367
478
  font-size: 0.8rem;
368
479
  color: var(--text-dim, #6B7280);
369
480
  font-weight: 500;
370
481
  }
371
- .pf .agd-cap-lang {
482
+ .pf .agd-cap-lang ,
483
+ .pf .pf-agd-cap-lang {
372
484
  background: rgba(37, 99, 235, 0.08);
373
- color: #2563eb;
485
+ color: var(--blue, #3B82F6);
374
486
  font-weight: 500;
375
487
  }
376
488
 
377
489
  /* Action queue support list */
378
- .pf .agd-cap-queue-list {
490
+ .pf .agd-cap-queue-list ,
491
+ .pf .pf-agd-cap-queue-list {
379
492
  display: flex;
380
493
  flex-direction: column;
381
494
  gap: 0.25rem;
382
495
  }
383
- .pf .agd-cap-queue-item {
496
+ .pf .agd-cap-queue-item ,
497
+ .pf .pf-agd-cap-queue-item {
384
498
  display: flex;
385
499
  align-items: center;
386
500
  gap: 0.5rem;
387
501
  font-size: 0.85rem;
388
502
  color: var(--text, #1A1A2E);
389
503
  }
390
- .pf .agd-cap-check {
504
+ .pf .agd-cap-check ,
505
+ .pf .pf-agd-cap-check {
391
506
  color: var(--success, #10b981);
392
507
  font-weight: 700;
393
508
  }
@@ -395,39 +510,64 @@
395
510
  /* ── Activity sub-tab ── */
396
511
 
397
512
  /* Activity stats cards */
398
- .pf .agd-stats-grid { display: flex; gap: 8px; margin-bottom: 16px; }
399
- .pf .agd-stat-card { flex: 1; background: var(--card-bg, #FFFFFF); border: 1px solid var(--border, #E5E7EB); border-radius: 8px; padding: 12px; text-align: center; }
400
- .pf .agd-stat-value { font-size: 1.5rem; font-weight: 600; color: var(--text, #1A1A2E); }
401
- .pf .agd-stat-label { font-size: 0.75rem; color: var(--text-muted, #9CA3AF); }
513
+ .pf .agd-stats-grid ,
514
+ .pf .pf-agd-stats-grid { display: flex; gap: 8px; margin-bottom: 16px; }
515
+ .pf .agd-stat-card ,
516
+ .pf .pf-agd-stat-card { flex: 1; background: var(--card-bg, #FFFFFF); border: 1px solid var(--border, #E5E7EB); border-radius: 8px; padding: 12px; text-align: center; }
517
+ .pf .agd-stat-value ,
518
+ .pf .pf-agd-stat-value { font-size: 1.5rem; font-weight: 600; color: var(--text, #1A1A2E); }
519
+ .pf .agd-stat-label ,
520
+ .pf .pf-agd-stat-label { font-size: 0.75rem; color: var(--text-muted, #9CA3AF); }
402
521
 
403
522
  /* Activity chart area */
404
- .pf .agd-chart-container { background: var(--card-bg, #FFFFFF); border: 1px solid var(--border, #E5E7EB); border-radius: 8px; padding: 12px; margin-bottom: 16px; }
405
- .pf .agd-chart-rows { display: flex; flex-direction: column; gap: 4px; }
406
- .pf .agd-chart-row { display: flex; align-items: center; gap: 8px; font-size: 0.75rem; }
407
- .pf .agd-chart-date { min-width: 52px; color: var(--text-muted, #9CA3AF); text-align: right; }
408
- .pf .agd-chart-bar-track { flex: 1; height: 14px; background: var(--card-bg-alt, #F3F4F6); border-radius: 3px; overflow: hidden; }
409
- .pf .agd-chart-bar-fill { height: 100%; background: var(--accent, #E8564A); border-radius: 3px; transition: width 0.2s; }
410
- .pf .agd-chart-count { min-width: 24px; text-align: right; font-weight: 600; color: var(--text-dim, #6B7280); }
523
+ .pf .agd-chart-container ,
524
+ .pf .pf-agd-chart-container { background: var(--card-bg, #FFFFFF); border: 1px solid var(--border, #E5E7EB); border-radius: 8px; padding: 12px; margin-bottom: 16px; }
525
+ .pf .agd-chart-rows ,
526
+ .pf .pf-agd-chart-rows { display: flex; flex-direction: column; gap: 4px; }
527
+ .pf .agd-chart-row ,
528
+ .pf .pf-agd-chart-row { display: flex; align-items: center; gap: 8px; font-size: 0.75rem; }
529
+ .pf .agd-chart-date ,
530
+ .pf .pf-agd-chart-date { min-width: 52px; color: var(--text-muted, #9CA3AF); text-align: right; }
531
+ .pf .agd-chart-bar-track ,
532
+ .pf .pf-agd-chart-bar-track { flex: 1; height: 14px; background: var(--card-bg-alt, #F3F4F6); border-radius: 3px; overflow: hidden; }
533
+ .pf .agd-chart-bar-fill ,
534
+ .pf .pf-agd-chart-bar-fill { height: 100%; background: var(--accent, #E8564A); border-radius: 3px; transition: width 0.2s; }
535
+ .pf .agd-chart-count ,
536
+ .pf .pf-agd-chart-count { min-width: 24px; text-align: right; font-weight: 600; color: var(--text-dim, #6B7280); }
411
537
 
412
538
  /* Event log entries */
413
- .pf .agd-log-entry { display: flex; gap: 8px; padding: 6px 10px; background: var(--card-bg, #FFFFFF); border: 1px solid var(--border, #E5E7EB); border-radius: 6px; margin-bottom: 3px; font-size: 0.8rem; align-items: center; }
414
- .pf .agd-log-time { color: var(--text-muted, #9CA3AF); white-space: nowrap; min-width: 80px; }
415
- .pf .agd-log-type { font-weight: 600; min-width: 80px; color: var(--text, #1A1A2E); }
416
- .pf .agd-log-msg { flex: 1; color: var(--text-dim, #6B7280); }
417
- .pf .agd-event-log-scroll { max-height: 300px; overflow-y: auto; margin-bottom: 4px; }
539
+ .pf .agd-log-entry ,
540
+ .pf .pf-agd-log-entry { display: flex; gap: 8px; padding: 6px 10px; background: var(--card-bg, #FFFFFF); border: 1px solid var(--border, #E5E7EB); border-radius: 6px; margin-bottom: 3px; font-size: 0.8rem; align-items: center; }
541
+ .pf .pf-agd-log-entry--two-line { flex-direction: column; align-items: stretch; gap: 2px; }
542
+ .pf .pf-agd-log-entry-primary { display: flex; gap: 8px; align-items: center; }
543
+ .pf .pf-agd-log-entry-detail { font-size: 0.75rem; color: var(--text-muted, #9CA3AF); padding-left: 88px; }
544
+ .pf .agd-log-time ,
545
+ .pf .pf-agd-log-time { color: var(--text-muted, #9CA3AF); white-space: nowrap; min-width: 80px; }
546
+ .pf .agd-log-type ,
547
+ .pf .pf-agd-log-type { font-weight: 600; min-width: 80px; color: var(--text, #1A1A2E); }
548
+ .pf .agd-log-msg ,
549
+ .pf .pf-agd-log-msg { flex: 1; color: var(--text-dim, #6B7280); }
550
+ .pf .agd-event-log-scroll ,
551
+ .pf .pf-agd-event-log-scroll { max-height: 300px; overflow-y: auto; margin-bottom: 4px; }
418
552
 
419
553
  /* Scheduled jobs badges */
420
- .pf .agd-job-badge-aimeat { background: var(--card-bg-alt, #F3F4F6); color: var(--success, #10B981); padding: 2px 6px; border-radius: 3px; font-size: 0.7rem; white-space: nowrap; flex-shrink: 0; }
421
- .pf .agd-job-badge-agent { background: var(--card-bg-alt, #F3F4F6); color: var(--warn, #F59E0B); padding: 2px 6px; border-radius: 3px; font-size: 0.7rem; white-space: nowrap; flex-shrink: 0; }
554
+ .pf .agd-job-badge-aimeat ,
555
+ .pf .pf-agd-job-badge-aimeat { background: var(--card-bg-alt, #F3F4F6); color: var(--success, #10B981); padding: 2px 6px; border-radius: 3px; font-size: 0.7rem; white-space: nowrap; flex-shrink: 0; }
556
+ .pf .agd-job-badge-agent ,
557
+ .pf .pf-agd-job-badge-agent { background: var(--card-bg-alt, #F3F4F6); color: var(--warn, #F59E0B); padding: 2px 6px; border-radius: 3px; font-size: 0.7rem; white-space: nowrap; flex-shrink: 0; }
422
558
 
423
559
  /* Time range selector */
424
- .pf .agd-range-bar { display: flex; gap: 4px; margin-bottom: 8px; }
425
- .pf .agd-range-btn { padding: 2px 8px; border: 1px solid var(--border, #E5E7EB); border-radius: 4px; background: none; cursor: pointer; font-size: 0.75rem; color: var(--text-dim, #6B7280); }
426
- .pf .agd-range-btn.active { background: var(--accent, #E8564A); color: #FFFFFF; border-color: var(--accent, #E8564A); }
560
+ .pf .agd-range-bar ,
561
+ .pf .pf-agd-range-bar { display: flex; gap: 4px; margin-bottom: 8px; }
562
+ .pf .agd-range-btn ,
563
+ .pf .pf-agd-range-btn { padding: 2px 8px; border: 1px solid var(--border, #E5E7EB); border-radius: 4px; background: none; cursor: pointer; font-size: 0.75rem; color: var(--text-dim, #6B7280); }
564
+ .pf .agd-range-btn.active ,
565
+ .pf .pf-agd-range-btn.active { background: var(--accent, #E8564A); color: var(--bg, #FFFFFF); border-color: var(--accent, #E8564A); }
427
566
 
428
567
  /* ── Services sub-tab ── */
429
568
 
430
- .pf .agd-services-info {
569
+ .pf .agd-services-info ,
570
+ .pf .pf-agd-services-info {
431
571
  background: var(--bg-dim, #F9FAFB);
432
572
  border: 1px solid var(--border, #E5E7EB);
433
573
  border-radius: 8px;
@@ -436,27 +576,32 @@
436
576
  color: var(--text-dim, #6B7280);
437
577
  margin-bottom: 1rem;
438
578
  }
439
- .pf .agd-services-list {
579
+ .pf .agd-services-list ,
580
+ .pf .pf-agd-services-list {
440
581
  display: flex;
441
582
  flex-direction: column;
442
583
  gap: 0.5rem;
443
584
  }
444
- .pf .agd-service-card {
585
+ .pf .agd-service-card ,
586
+ .pf .pf-agd-service-card {
445
587
  background: var(--card, #FFFFFF);
446
588
  border: 1px solid var(--border, #E5E7EB);
447
589
  border-radius: 8px;
448
590
  padding: 0.75rem 1rem;
449
591
  }
450
- .pf .agd-service-name {
592
+ .pf .agd-service-name ,
593
+ .pf .pf-agd-service-name {
451
594
  font-weight: 600;
452
595
  font-size: 0.9rem;
453
596
  }
454
- .pf .agd-service-desc {
597
+ .pf .agd-service-desc ,
598
+ .pf .pf-agd-service-desc {
455
599
  font-size: 0.8rem;
456
600
  color: var(--text-dim, #6B7280);
457
601
  margin-top: 0.25rem;
458
602
  }
459
- .pf .agd-service-meta {
603
+ .pf .agd-service-meta ,
604
+ .pf .pf-agd-service-meta {
460
605
  display: flex;
461
606
  gap: 0.75rem;
462
607
  font-size: 0.75rem;
@@ -466,7 +611,8 @@
466
611
 
467
612
  /* ── Messages sub-tab ── */
468
613
 
469
- .pf .agd-msg-status-bar {
614
+ .pf .agd-msg-status-bar ,
615
+ .pf .pf-agd-msg-status-bar {
470
616
  display: flex;
471
617
  justify-content: space-between;
472
618
  align-items: center;
@@ -476,7 +622,8 @@
476
622
  color: var(--text-dim, #6B7280);
477
623
  margin-bottom: 0.75rem;
478
624
  }
479
- .pf .agd-msg-history {
625
+ .pf .agd-msg-history ,
626
+ .pf .pf-agd-msg-history {
480
627
  max-height: 400px;
481
628
  overflow-y: auto;
482
629
  padding: 0.5rem 0;
@@ -484,41 +631,56 @@
484
631
  flex-direction: column;
485
632
  gap: 0.5rem;
486
633
  }
487
- .pf .agd-msg-bubble {
634
+ .pf .agd-msg-bubble ,
635
+ .pf .pf-agd-msg-bubble {
488
636
  max-width: 80%;
489
637
  padding: 0.625rem 0.875rem;
490
638
  border-radius: 12px;
491
639
  font-size: 0.85rem;
492
640
  line-height: 1.5;
493
641
  }
494
- .pf .agd-msg-inbound {
642
+ .pf .agd-msg-inbound ,
643
+ .pf .pf-agd-msg-inbound {
495
644
  align-self: flex-end;
496
645
  background: var(--accent-dim, #FEF2F1);
497
646
  border-bottom-right-radius: 4px;
498
647
  }
499
- .pf .agd-msg-outbound {
648
+ .pf .agd-msg-outbound ,
649
+ .pf .pf-agd-msg-outbound {
500
650
  align-self: flex-start;
501
651
  background: var(--surface, #F3F4F6);
502
652
  border: 1px solid var(--border, #E5E7EB);
503
653
  border-bottom-left-radius: 4px;
504
654
  }
505
- .pf .agd-msg-meta {
655
+ .pf .agd-msg-meta ,
656
+ .pf .pf-agd-msg-meta {
506
657
  font-size: 0.7rem;
507
658
  color: var(--text-muted, #9CA3AF);
508
659
  margin-top: 0.25rem;
509
660
  }
510
- .pf .agd-msg-meta-right {
661
+ .pf .agd-msg-meta-right ,
662
+ .pf .pf-agd-msg-meta-right {
511
663
  text-align: right;
512
664
  }
513
- .pf .agd-msg-input {
665
+ .pf .agd-msg-time ,
666
+ .pf .pf-agd-msg-time {
667
+ font-weight: 500;
668
+ color: var(--text-secondary, #6B7280);
669
+ }
670
+ .pf .agd-msg-input ,
671
+ .pf .pf-agd-msg-input {
514
672
  display: flex;
515
673
  gap: 0.5rem;
516
674
  padding: 0.75rem 0;
517
675
  border-top: 1px solid var(--border, #E5E7EB);
518
676
  margin-top: 0.75rem;
677
+ align-items: flex-end;
678
+ width: 100%;
519
679
  }
520
- .pf .agd-msg-input textarea {
521
- flex: 1;
680
+ .pf .agd-msg-input textarea ,
681
+ .pf .pf-agd-msg-input textarea {
682
+ width: 100%;
683
+ min-width: 0;
522
684
  resize: none;
523
685
  border: 1px solid var(--border, #E5E7EB);
524
686
  border-radius: 8px;
@@ -528,7 +690,8 @@
528
690
  max-height: 6rem;
529
691
  font-family: inherit;
530
692
  }
531
- .pf .agd-msg-proposed-task {
693
+ .pf .agd-msg-proposed-task ,
694
+ .pf .pf-agd-msg-proposed-task {
532
695
  background: var(--card, #FFFFFF);
533
696
  border: 1px solid var(--accent, #E8564A);
534
697
  border-radius: 8px;
@@ -536,18 +699,21 @@
536
699
  margin-top: 0.5rem;
537
700
  font-size: 0.8rem;
538
701
  }
539
- .pf .agd-msg-proposed-task h5 {
702
+ .pf .agd-msg-proposed-task h5 ,
703
+ .pf .pf-agd-msg-proposed-task h5 {
540
704
  margin: 0 0 0.25rem;
541
705
  font-size: 0.8rem;
542
706
  color: var(--accent, #E8564A);
543
707
  }
544
- .pf .agd-msg-threads {
708
+ .pf .agd-msg-threads ,
709
+ .pf .pf-agd-msg-threads {
545
710
  display: flex;
546
711
  gap: 0.5rem;
547
712
  flex-wrap: wrap;
548
713
  margin-bottom: 0.75rem;
549
714
  }
550
- .pf .agd-msg-thread-btn {
715
+ .pf .agd-msg-thread-btn ,
716
+ .pf .pf-agd-msg-thread-btn {
551
717
  background: var(--surface, #F3F4F6);
552
718
  border: 1px solid var(--border, #E5E7EB);
553
719
  border-radius: 6px;
@@ -557,7 +723,1418 @@
557
723
  transition: border-color 0.15s;
558
724
  }
559
725
  .pf .agd-msg-thread-btn:hover,
560
- .pf .agd-msg-thread-btn-active {
726
+ .pf .agd-msg-thread-btn-active ,
727
+ .pf .pf-agd-msg-thread-btn:hover,
728
+ .pf .pf-agd-msg-thread-btn-active {
561
729
  border-color: var(--accent, #E8564A);
562
730
  color: var(--accent, #E8564A);
563
731
  }
732
+
733
+ /* ── Task Creation Builder (split-panel) ── */
734
+
735
+ .pf .agd-builder ,
736
+ .pf .pf-agd-builder {
737
+ border: 1px solid var(--border, #E5E7EB);
738
+ border-radius: var(--radius, 8px);
739
+ overflow: hidden;
740
+ margin-top: 0.5rem;
741
+ }
742
+ .pf .agd-builder-header ,
743
+ .pf .pf-agd-builder-header {
744
+ display: flex;
745
+ align-items: center;
746
+ justify-content: space-between;
747
+ padding: 0.5rem 0.75rem;
748
+ border-bottom: 1px solid var(--border, #E5E7EB);
749
+ background: var(--card-bg, #FFFFFF);
750
+ }
751
+ .pf .agd-builder-header h4 ,
752
+ .pf .pf-agd-builder-header h4 {
753
+ margin: 0;
754
+ font-size: 0.9rem;
755
+ font-weight: 600;
756
+ }
757
+ .pf .agd-builder-panels ,
758
+ .pf .pf-agd-builder-panels {
759
+ display: grid;
760
+ grid-template-columns: 1fr 1fr;
761
+ min-height: 350px;
762
+ }
763
+ @media (max-width: 768px) {
764
+ .pf .agd-builder-panels { grid-template-columns: 1fr; }
765
+ }
766
+ .pf .agd-proposal ,
767
+ .pf .pf-agd-proposal {
768
+ border-right: 1px solid var(--border, #E5E7EB);
769
+ display: flex;
770
+ flex-direction: column;
771
+ }
772
+ @media (max-width: 768px) {
773
+ .pf .agd-proposal { border-right: none; border-bottom: 1px solid var(--border, #E5E7EB); }
774
+ }
775
+ .pf .agd-proposal-tabs ,
776
+ .pf .pf-agd-proposal-tabs {
777
+ display: flex;
778
+ border-bottom: 1px solid var(--border, #E5E7EB);
779
+ background: var(--bg-dim, #F9FAFB);
780
+ }
781
+ .pf .agd-proposal-tab ,
782
+ .pf .pf-agd-proposal-tab {
783
+ flex: 1;
784
+ padding: 0.4rem 0.5rem;
785
+ background: none;
786
+ border: none;
787
+ border-bottom: 2px solid transparent;
788
+ color: var(--text-dim, #6B7280);
789
+ cursor: pointer;
790
+ font-size: 0.78rem;
791
+ font-weight: 500;
792
+ text-align: center;
793
+ transition: color 0.15s, border-color 0.15s;
794
+ }
795
+ .pf .agd-proposal-tab:hover ,
796
+ .pf .pf-agd-proposal-tab:hover { color: var(--text, #1A1A2E); }
797
+ .pf .agd-proposal-tab-active ,
798
+ .pf .pf-agd-proposal-tab-active {
799
+ color: var(--accent, #E8564A);
800
+ border-bottom-color: var(--accent, #E8564A);
801
+ }
802
+ .pf .agd-proposal-content ,
803
+ .pf .pf-agd-proposal-content {
804
+ flex: 1;
805
+ overflow-y: auto;
806
+ padding: 0.75rem;
807
+ font-size: 0.82rem;
808
+ max-height: 400px;
809
+ }
810
+ .pf .agd-prop-section ,
811
+ .pf .pf-agd-prop-section { margin-bottom: 0.75rem; }
812
+ .pf .agd-prop-section:last-child ,
813
+ .pf .pf-agd-prop-section:last-child { margin-bottom: 0; }
814
+ .pf .agd-prop-label ,
815
+ .pf .pf-agd-prop-label {
816
+ font-size: 0.7rem;
817
+ font-weight: 600;
818
+ text-transform: uppercase;
819
+ letter-spacing: 0.5px;
820
+ color: var(--text-dim, #6B7280);
821
+ margin-bottom: 0.25rem;
822
+ }
823
+ .pf .agd-prop-value ,
824
+ .pf .pf-agd-prop-value { color: var(--text, #1A1A2E); line-height: 1.5; }
825
+ .pf .agd-prop-empty ,
826
+ .pf .pf-agd-prop-empty { color: var(--text-muted, #9CA3AF); font-style: italic; font-size: 0.8rem; }
827
+ .pf .agd-prop-code ,
828
+ .pf .pf-agd-prop-code {
829
+ font-family: 'JetBrains Mono', monospace;
830
+ font-size: 0.75rem;
831
+ background: var(--code-bg, #F3F4F6);
832
+ padding: 2px 6px;
833
+ border-radius: 3px;
834
+ }
835
+ .pf .agd-prop-list ,
836
+ .pf .pf-agd-prop-list { list-style: none; padding: 0; margin: 0; }
837
+ .pf .agd-prop-list li ,
838
+ .pf .pf-agd-prop-list li { padding: 0.15rem 0; border-bottom: 1px solid var(--border-subtle, #F3F4F6); }
839
+ .pf .agd-prop-list li:last-child ,
840
+ .pf .pf-agd-prop-list li:last-child { border-bottom: none; }
841
+ .pf .agd-prop-check ,
842
+ .pf .pf-agd-prop-check { display: flex; align-items: baseline; gap: 0.35rem; }
843
+ .pf .agd-prop-check::before ,
844
+ .pf .pf-agd-prop-check::before { content: '\2713'; color: var(--success, #10b981); font-weight: 600; }
845
+ .pf .agd-scope-item ,
846
+ .pf .pf-agd-scope-item { display: flex; align-items: baseline; gap: 0.5rem; padding: 0.2rem 0; }
847
+ .pf .agd-scope-name ,
848
+ .pf .pf-agd-scope-name { font-weight: 500; min-width: 80px; }
849
+ .pf .agd-scope-type ,
850
+ .pf .pf-agd-scope-type {
851
+ font-size: 0.65rem;
852
+ padding: 1px 5px;
853
+ border-radius: 6px;
854
+ background: var(--bg-dim, #F9FAFB);
855
+ color: var(--text-dim, #6B7280);
856
+ }
857
+ .pf .agd-builder-chat ,
858
+ .pf .pf-agd-builder-chat { display: flex; flex-direction: column; background: var(--card-bg, #FFFFFF); }
859
+ .pf .agd-builder-chat-history ,
860
+ .pf .pf-agd-builder-chat-history {
861
+ flex: 1;
862
+ overflow-y: auto;
863
+ padding: 0.5rem 0.75rem;
864
+ display: flex;
865
+ flex-direction: column;
866
+ gap: 0.4rem;
867
+ max-height: 350px;
868
+ }
869
+ .pf .agd-builder-chat-input ,
870
+ .pf .pf-agd-builder-chat-input {
871
+ display: flex;
872
+ gap: 0.5rem;
873
+ padding: 0.5rem 0.75rem;
874
+ border-top: 1px solid var(--border, #E5E7EB);
875
+ }
876
+ .pf .agd-builder-chat-input textarea ,
877
+ .pf .pf-agd-builder-chat-input textarea {
878
+ flex: 1;
879
+ resize: none;
880
+ border: 1px solid var(--border, #E5E7EB);
881
+ border-radius: 8px;
882
+ padding: 0.5rem 0.75rem;
883
+ font-size: 0.82rem;
884
+ min-height: 2.5rem;
885
+ max-height: 5rem;
886
+ font-family: inherit;
887
+ }
888
+ .pf .agd-builder-analyzing ,
889
+ .pf .pf-agd-builder-analyzing {
890
+ display: flex;
891
+ align-items: center;
892
+ justify-content: center;
893
+ padding: 2rem;
894
+ color: var(--text-dim, #6B7280);
895
+ font-size: 0.85rem;
896
+ text-align: center;
897
+ }
898
+ .pf .agd-builder-actions ,
899
+ .pf .pf-agd-builder-actions {
900
+ display: flex;
901
+ justify-content: space-between;
902
+ align-items: center;
903
+ padding: 0.5rem 0.75rem;
904
+ border-top: 1px solid var(--border, #E5E7EB);
905
+ background: var(--bg-dim, #F9FAFB);
906
+ }
907
+ .pf .agd-builder-actions-right ,
908
+ .pf .pf-agd-builder-actions-right { display: flex; gap: 0.5rem; }
909
+ .pf .agd-version-badge ,
910
+ .pf .pf-agd-version-badge { font-size: 0.7rem; color: var(--text-muted, #9CA3AF); }
911
+
912
+ /* ── Task TODO list ── */
913
+
914
+ /* Progress badge shown next to task title */
915
+ .pf .agd-todo-progress ,
916
+ .pf .pf-agd-todo-progress {
917
+ font-size: 0.7rem;
918
+ font-weight: 600;
919
+ padding: 1px 7px;
920
+ border-radius: 10px;
921
+ background: rgba(37, 99, 235, 0.1);
922
+ color: var(--blue, #3B82F6);
923
+ white-space: nowrap;
924
+ }
925
+
926
+ /* TODO section wrapper inside expanded task */
927
+ .pf .agd-todo-section ,
928
+ .pf .pf-agd-todo-section {
929
+ margin: 0.5rem 0;
930
+ }
931
+ .pf .agd-todo-header ,
932
+ .pf .pf-agd-todo-header {
933
+ display: flex;
934
+ align-items: center;
935
+ justify-content: space-between;
936
+ margin-bottom: 0.35rem;
937
+ font-size: 0.8rem;
938
+ }
939
+ .pf .agd-todo-summary ,
940
+ .pf .pf-agd-todo-summary {
941
+ display: flex;
942
+ align-items: center;
943
+ gap: 0.5rem;
944
+ }
945
+ .pf .agd-todo-time ,
946
+ .pf .pf-agd-todo-time {
947
+ font-size: 0.7rem;
948
+ color: var(--text-muted, #9CA3AF);
949
+ }
950
+
951
+ /* Environment badges (AIMEAT / Agent) */
952
+ .pf .agd-env-badge ,
953
+ .pf .pf-agd-env-badge {
954
+ font-size: 0.6rem;
955
+ font-weight: 600;
956
+ padding: 1px 6px;
957
+ border-radius: 6px;
958
+ text-transform: uppercase;
959
+ letter-spacing: 0.3px;
960
+ white-space: nowrap;
961
+ }
962
+ .pf .agd-env-aimeat ,
963
+ .pf .pf-agd-env-aimeat {
964
+ background: rgba(16, 185, 129, 0.12);
965
+ color: var(--success, #10b981);
966
+ }
967
+ .pf .agd-env-agent ,
968
+ .pf .pf-agd-env-agent {
969
+ background: rgba(217, 119, 6, 0.12);
970
+ color: var(--warn, #F59E0B);
971
+ }
972
+
973
+ /* TODO item list */
974
+ .pf .agd-todo-list ,
975
+ .pf .pf-agd-todo-list {
976
+ display: flex;
977
+ flex-direction: column;
978
+ gap: 0.25rem;
979
+ }
980
+ .pf .agd-todo-item ,
981
+ .pf .pf-agd-todo-item {
982
+ display: flex;
983
+ align-items: flex-start;
984
+ gap: 0.5rem;
985
+ padding: 0.4rem 0.5rem;
986
+ border-radius: var(--radius-xs, 6px);
987
+ background: var(--card-bg, #FFFFFF);
988
+ border: 1px solid var(--border, #E5E7EB);
989
+ font-size: 0.8rem;
990
+ transition: border-color 0.15s;
991
+ }
992
+ .pf .agd-todo-active ,
993
+ .pf .pf-agd-todo-active {
994
+ border-color: var(--blue, #3B82F6);
995
+ background: rgba(37, 99, 235, 0.04);
996
+ }
997
+ .pf .agd-todo-done ,
998
+ .pf .pf-agd-todo-done {
999
+ opacity: 0.7;
1000
+ }
1001
+ .pf .agd-todo-failed ,
1002
+ .pf .pf-agd-todo-failed {
1003
+ border-color: var(--danger, #ef4444);
1004
+ background: rgba(239, 68, 68, 0.04);
1005
+ }
1006
+ .pf .agd-todo-skipped ,
1007
+ .pf .pf-agd-todo-skipped {
1008
+ opacity: 0.5;
1009
+ }
1010
+
1011
+ /* Status icon column */
1012
+ .pf .agd-todo-icon ,
1013
+ .pf .pf-agd-todo-icon {
1014
+ flex-shrink: 0;
1015
+ font-size: 0.85rem;
1016
+ line-height: 1.4;
1017
+ width: 1.2rem;
1018
+ text-align: center;
1019
+ }
1020
+
1021
+ /* Content column */
1022
+ .pf .agd-todo-content ,
1023
+ .pf .pf-agd-todo-content {
1024
+ flex: 1;
1025
+ min-width: 0;
1026
+ }
1027
+ .pf .agd-todo-title ,
1028
+ .pf .pf-agd-todo-title {
1029
+ display: flex;
1030
+ align-items: center;
1031
+ gap: 0.4rem;
1032
+ flex-wrap: wrap;
1033
+ font-weight: 500;
1034
+ line-height: 1.4;
1035
+ }
1036
+ .pf .agd-todo-est ,
1037
+ .pf .pf-agd-todo-est {
1038
+ font-size: 0.65rem;
1039
+ color: var(--text-muted, #9CA3AF);
1040
+ white-space: nowrap;
1041
+ }
1042
+ .pf .agd-todo-desc ,
1043
+ .pf .pf-agd-todo-desc {
1044
+ font-size: 0.75rem;
1045
+ color: var(--text-dim, #6B7280);
1046
+ line-height: 1.4;
1047
+ margin-top: 0.15rem;
1048
+ }
1049
+ .pf .agd-todo-reason ,
1050
+ .pf .pf-agd-todo-reason {
1051
+ font-size: 0.7rem;
1052
+ color: var(--text-muted, #9CA3AF);
1053
+ font-style: italic;
1054
+ margin-top: 0.1rem;
1055
+ }
1056
+ .pf .agd-todo-verify ,
1057
+ .pf .pf-agd-todo-verify {
1058
+ font-size: 0.7rem;
1059
+ color: var(--text-muted, #9CA3AF);
1060
+ margin-top: 0.1rem;
1061
+ padding-left: 0.5rem;
1062
+ border-left: 2px solid var(--border, #E5E7EB);
1063
+ }
1064
+
1065
+ /* Waiting state (no todos yet) */
1066
+ .pf .agd-todo-waiting ,
1067
+ .pf .pf-agd-todo-waiting {
1068
+ text-align: center;
1069
+ padding: 1rem;
1070
+ color: var(--text-muted, #9CA3AF);
1071
+ font-size: 0.8rem;
1072
+ font-style: italic;
1073
+ background: var(--card-bg, #FFFFFF);
1074
+ border: 1px dashed var(--border, #E5E7EB);
1075
+ border-radius: var(--radius-xs, 6px);
1076
+ margin: 0.5rem 0;
1077
+ }
1078
+
1079
+ /* ══════════════════════════════════════════════════════════════
1080
+ Agent Detail Tab-View (Plan 4)
1081
+ All new classes use pf-agd- prefix (profile agent detail)
1082
+ ══════════════════════════════════════════════════════════════ */
1083
+
1084
+ /* ── Shared Agent Board ── */
1085
+
1086
+ .pf .pf-agd-board {
1087
+ background: var(--card-bg, #FFFFFF);
1088
+ border: 1px solid var(--border, #E5E7EB);
1089
+ border-radius: var(--radius, 8px);
1090
+ padding: 1rem;
1091
+ margin-bottom: 1rem;
1092
+ }
1093
+ .pf .pf-agd-board-grid {
1094
+ display: grid;
1095
+ grid-template-columns: repeat(3, 1fr);
1096
+ gap: 0.5rem;
1097
+ }
1098
+ @media (max-width: 768px) {
1099
+ .pf .pf-agd-board-grid { grid-template-columns: 1fr; }
1100
+ }
1101
+ .pf .pf-agd-board-card {
1102
+ background: var(--card-bg-alt, #F3F4F6);
1103
+ border: 1px solid var(--border, #E5E7EB);
1104
+ border-left: 3px solid var(--text-muted, #9CA3AF);
1105
+ border-radius: var(--radius-xs, 6px);
1106
+ padding: 0.5rem 0.75rem;
1107
+ cursor: pointer;
1108
+ transition: border-color 0.15s, background 0.15s;
1109
+ }
1110
+ .pf .pf-agd-board-card:hover {
1111
+ background: var(--card-bg, #FFFFFF);
1112
+ }
1113
+ .pf .pf-agd-board-card-name {
1114
+ font-weight: 600;
1115
+ font-size: 0.85rem;
1116
+ margin-bottom: 0.2rem;
1117
+ }
1118
+ .pf .pf-agd-board-card-activity {
1119
+ font-size: 0.75rem;
1120
+ color: var(--text-dim, #6B7280);
1121
+ margin-bottom: 0.15rem;
1122
+ }
1123
+ .pf .pf-agd-board-card-tags {
1124
+ font-size: 0.7rem;
1125
+ color: var(--text-muted, #9CA3AF);
1126
+ }
1127
+ .pf .pf-agd-board-tags {
1128
+ margin-top: 0.75rem;
1129
+ padding-top: 0.5rem;
1130
+ border-top: 1px solid var(--border, #E5E7EB);
1131
+ font-size: 0.8rem;
1132
+ color: var(--text-dim, #6B7280);
1133
+ }
1134
+ .pf .pf-agd-tag-pill {
1135
+ display: inline-block;
1136
+ background: var(--card-bg-alt, #F3F4F6);
1137
+ border: 1px solid var(--border, #E5E7EB);
1138
+ border-radius: 10px;
1139
+ padding: 1px 8px;
1140
+ font-size: 0.75rem;
1141
+ margin-right: 0.35rem;
1142
+ }
1143
+
1144
+ /* ── Collapsed Agent Card ── */
1145
+
1146
+ .pf .pf-agd-card {
1147
+ margin-bottom: 0.5rem;
1148
+ }
1149
+ .pf .pf-agd-collapsed {
1150
+ display: flex;
1151
+ align-items: center;
1152
+ gap: 0.5rem;
1153
+ padding: 0.625rem 0.875rem;
1154
+ background: var(--card-bg, #FFFFFF);
1155
+ border: 1px solid var(--border, #E5E7EB);
1156
+ border-radius: var(--radius-xs, 6px);
1157
+ cursor: pointer;
1158
+ transition: border-color 0.15s, background 0.15s;
1159
+ }
1160
+ .pf .pf-agd-collapsed:hover {
1161
+ background: var(--card-bg-alt, #F3F4F6);
1162
+ }
1163
+ .pf .pf-agd-collapsed--problem {
1164
+ border-color: var(--danger, #ef4444);
1165
+ }
1166
+ .pf .pf-agd-expand-icon {
1167
+ font-size: 0.7rem;
1168
+ color: var(--text-dim, #6B7280);
1169
+ transition: transform 0.15s;
1170
+ flex-shrink: 0;
1171
+ }
1172
+ .pf .pf-agd-expand-icon--open {
1173
+ transform: none;
1174
+ }
1175
+ .pf .pf-agd-collapsed-icon {
1176
+ font-size: 0.9rem;
1177
+ flex-shrink: 0;
1178
+ }
1179
+ .pf .pf-agd-collapsed-name {
1180
+ font-weight: 600;
1181
+ font-size: 0.9rem;
1182
+ flex-shrink: 0;
1183
+ }
1184
+ .pf .pf-agd-delivery-indicator {
1185
+ font-size: 0.72rem;
1186
+ color: var(--text-muted, #9CA3AF);
1187
+ margin-right: 0.5rem;
1188
+ }
1189
+ .pf .pf-agd-collapsed-badges {
1190
+ display: flex;
1191
+ gap: 0.35rem;
1192
+ flex-shrink: 0;
1193
+ }
1194
+ .pf .pf-agd-collapsed-stats {
1195
+ margin-left: auto;
1196
+ font-size: 0.75rem;
1197
+ color: var(--text-dim, #6B7280);
1198
+ white-space: nowrap;
1199
+ text-align: right;
1200
+ }
1201
+
1202
+ /* ── Badges (platform, readiness, federation) ── */
1203
+
1204
+ .pf .pf-agd-badge {
1205
+ display: inline-flex;
1206
+ align-items: center;
1207
+ gap: 0.2rem;
1208
+ font-size: 0.7rem;
1209
+ padding: 1px 8px;
1210
+ border-radius: 10px;
1211
+ font-weight: 500;
1212
+ white-space: nowrap;
1213
+ }
1214
+ .pf .pf-agd-badge--platform {
1215
+ background: var(--accent-subtle, rgba(59, 130, 246, 0.1));
1216
+ color: var(--blue, #3B82F6);
1217
+ }
1218
+ .pf .pf-agd-badge--readiness-expert { background: var(--accent-subtle, rgba(16, 185, 129, 0.1)); color: var(--success, #10b981); }
1219
+ .pf .pf-agd-badge--readiness-full { background: var(--accent-subtle, rgba(16, 185, 129, 0.1)); color: var(--success, #10b981); }
1220
+ .pf .pf-agd-badge--readiness-standard { background: var(--accent-subtle, rgba(59, 130, 246, 0.1)); color: var(--blue, #3B82F6); }
1221
+ .pf .pf-agd-badge--readiness-basic { background: var(--accent-subtle, rgba(245, 158, 11, 0.1)); color: var(--warn, #F59E0B); }
1222
+ .pf .pf-agd-badge--readiness-none { background: var(--card-bg-alt, #F3F4F6); color: var(--text-muted, #9CA3AF); }
1223
+ .pf .pf-agd-badge--readiness-onboarding { background: var(--accent-subtle, rgba(245, 158, 11, 0.1)); color: var(--warn, #F59E0B); }
1224
+ .pf .pf-agd-badge--degraded { color: var(--warn, #F59E0B); }
1225
+ .pf .pf-agd-badge--federation {
1226
+ background: rgba(16, 185, 129, 0.1);
1227
+ color: var(--success, #10b981);
1228
+ }
1229
+
1230
+ /* ── Expanded Card ── */
1231
+
1232
+ .pf .pf-agd-expanded {
1233
+ background: var(--card-bg, #FFFFFF);
1234
+ border: 1px solid var(--border, #E5E7EB);
1235
+ border-radius: var(--radius, 8px);
1236
+ overflow: hidden;
1237
+ }
1238
+
1239
+ /* Zone 1: Identity */
1240
+ .pf .pf-agd-zone1 {
1241
+ display: flex;
1242
+ align-items: center;
1243
+ gap: 0.5rem;
1244
+ padding: 0.75rem 1rem;
1245
+ cursor: pointer;
1246
+ }
1247
+ .pf .pf-agd-zone1-identity {
1248
+ display: flex;
1249
+ flex-direction: column;
1250
+ gap: 0;
1251
+ flex-shrink: 0;
1252
+ }
1253
+ .pf .pf-agd-zone1-name {
1254
+ font-weight: 600;
1255
+ font-size: 0.95rem;
1256
+ }
1257
+ .pf .pf-agd-zone1-badges {
1258
+ display: flex;
1259
+ gap: 0.35rem;
1260
+ flex-shrink: 0;
1261
+ }
1262
+ .pf .pf-agd-zone1-right {
1263
+ margin-left: auto;
1264
+ font-size: 0.75rem;
1265
+ color: var(--text-dim, #6B7280);
1266
+ }
1267
+
1268
+ /* Capabilities badges */
1269
+ .pf .pf-agd-capabilities {
1270
+ display: flex;
1271
+ flex-wrap: wrap;
1272
+ gap: 0.25rem;
1273
+ padding: 0.25rem 0.75rem 0.5rem;
1274
+ }
1275
+ .pf .pf-agd-cap-badge {
1276
+ font-size: 0.675rem;
1277
+ padding: 0.125rem 0.5rem;
1278
+ border-radius: 999px;
1279
+ font-weight: 500;
1280
+ }
1281
+ .pf .pf-agd-cap-badge--tech {
1282
+ background: var(--success-bg, #ECFDF5);
1283
+ color: var(--success, #10B981);
1284
+ }
1285
+ .pf .pf-agd-cap-badge--domain {
1286
+ background: var(--info-bg, #EFF6FF);
1287
+ color: var(--info, #3B82F6);
1288
+ }
1289
+
1290
+ /* Zone 2: Status (state-dependent) */
1291
+ .pf .pf-agd-zone2 {
1292
+ padding: 0.625rem 1rem;
1293
+ font-size: 0.85rem;
1294
+ }
1295
+ .pf .pf-agd-zone2--new {
1296
+ border-left: 3px solid var(--warning, #F59E0B);
1297
+ background: rgba(245, 158, 11, 0.06);
1298
+ }
1299
+ .pf .pf-agd-zone2--onboarding {
1300
+ border-left: 3px solid var(--info, #3B82F6);
1301
+ background: rgba(59, 130, 246, 0.06);
1302
+ }
1303
+ .pf .pf-agd-zone2--production {
1304
+ padding: 0.375rem 1rem;
1305
+ font-size: 0.8rem;
1306
+ color: var(--text-dim, #6B7280);
1307
+ }
1308
+ .pf .pf-agd-zone2--problem {
1309
+ border-left: 3px solid var(--danger, #ef4444);
1310
+ background: rgba(239, 68, 68, 0.14);
1311
+ }
1312
+ .pf .pf-agd-zone2-title {
1313
+ font-weight: 600;
1314
+ font-size: 0.8rem;
1315
+ text-transform: uppercase;
1316
+ letter-spacing: 0.3px;
1317
+ margin-bottom: 0.25rem;
1318
+ }
1319
+ .pf .pf-agd-zone2-desc {
1320
+ font-size: 0.8rem;
1321
+ color: var(--text-dim, #6B7280);
1322
+ line-height: 1.4;
1323
+ }
1324
+ .pf .pf-agd-zone2-actions {
1325
+ display: flex;
1326
+ gap: 0.5rem;
1327
+ margin-top: 0.5rem;
1328
+ }
1329
+ .pf .pf-agd-zone2-stats {
1330
+ display: flex;
1331
+ gap: 1rem;
1332
+ flex-wrap: wrap;
1333
+ }
1334
+
1335
+ /* ── Progress bar (onboarding zone2) ── */
1336
+ .pf .pf-agd-progress-bar {
1337
+ width: 100%;
1338
+ height: 8px;
1339
+ background: var(--card-bg-alt, #F3F4F6);
1340
+ border-radius: 4px;
1341
+ overflow: hidden;
1342
+ margin: 0.35rem 0;
1343
+ }
1344
+ .pf .pf-agd-progress-fill {
1345
+ height: 100%;
1346
+ background: var(--info, #3B82F6);
1347
+ border-radius: 4px;
1348
+ transition: width 0.3s;
1349
+ }
1350
+
1351
+ /* Step pills (onboarding zone2) */
1352
+ .pf .pf-agd-step-pills {
1353
+ display: flex;
1354
+ flex-wrap: wrap;
1355
+ gap: 0.25rem;
1356
+ margin-top: 0.35rem;
1357
+ }
1358
+ .pf .pf-agd-step-pill {
1359
+ font-size: 0.65rem;
1360
+ padding: 1px 6px;
1361
+ border-radius: 8px;
1362
+ white-space: nowrap;
1363
+ }
1364
+ .pf .pf-agd-step-pill--passed {
1365
+ background: rgba(16, 185, 129, 0.12);
1366
+ color: var(--success, #10b981);
1367
+ }
1368
+ .pf .pf-agd-step-pill--pending {
1369
+ background: var(--card-bg-alt, #F3F4F6);
1370
+ color: var(--text-muted, #9CA3AF);
1371
+ }
1372
+ .pf .pf-agd-step-pill--failed {
1373
+ background: rgba(239, 68, 68, 0.12);
1374
+ color: var(--danger, #ef4444);
1375
+ }
1376
+ .pf .pf-agd-step-pill--warn {
1377
+ background: rgba(245, 158, 11, 0.12);
1378
+ color: var(--warn, #F59E0B);
1379
+ }
1380
+
1381
+ /* ── Tab Bar ── */
1382
+
1383
+ .pf .pf-agd-tabs {
1384
+ display: flex;
1385
+ gap: 0;
1386
+ border-bottom: 1px solid var(--border, #E5E7EB);
1387
+ overflow-x: auto;
1388
+ }
1389
+ .pf .pf-agd-tab {
1390
+ padding: 0.5rem 0.875rem;
1391
+ background: none;
1392
+ border: none;
1393
+ border-bottom: 2px solid transparent;
1394
+ color: var(--text-dim, #6B7280);
1395
+ cursor: pointer;
1396
+ font-size: 0.8rem;
1397
+ font-weight: 500;
1398
+ white-space: nowrap;
1399
+ transition: color 0.15s, border-color 0.15s;
1400
+ }
1401
+ .pf .pf-agd-tab:hover { color: var(--text, #1A1A2E); }
1402
+ .pf .pf-agd-tab--active {
1403
+ color: var(--accent, #E8564A);
1404
+ border-bottom-color: var(--accent, #E8564A);
1405
+ font-weight: 600;
1406
+ }
1407
+ .pf .pf-agd-tab-content {
1408
+ padding: 1rem;
1409
+ min-height: 150px;
1410
+ }
1411
+
1412
+ /* ── Integration tab: Onboarding checklist ── */
1413
+
1414
+ .pf .pf-agd-checklist {
1415
+ display: flex;
1416
+ flex-direction: column;
1417
+ gap: 0.25rem;
1418
+ margin-bottom: 1rem;
1419
+ }
1420
+ .pf .pf-agd-step {
1421
+ display: flex;
1422
+ align-items: center;
1423
+ gap: 0.5rem;
1424
+ padding: 0.4rem 0.5rem;
1425
+ border-radius: var(--radius-xs, 6px);
1426
+ font-size: 0.82rem;
1427
+ border: 1px solid var(--border, #E5E7EB);
1428
+ background: var(--card-bg, #FFFFFF);
1429
+ }
1430
+ .pf .pf-agd-step--passed {
1431
+ border-color: rgba(16, 185, 129, 0.3);
1432
+ }
1433
+ .pf .pf-agd-step--pending {
1434
+ opacity: 0.7;
1435
+ }
1436
+ .pf .pf-agd-step--failed {
1437
+ border-color: rgba(239, 68, 68, 0.3);
1438
+ }
1439
+ .pf .pf-agd-step-icon {
1440
+ font-size: 0.9rem;
1441
+ flex-shrink: 0;
1442
+ width: 1.2rem;
1443
+ text-align: center;
1444
+ }
1445
+ .pf .pf-agd-step-name {
1446
+ font-weight: 500;
1447
+ flex: 1;
1448
+ }
1449
+ .pf .pf-agd-step-detail {
1450
+ font-size: 0.7rem;
1451
+ color: var(--text-muted, #9CA3AF);
1452
+ margin-left: auto;
1453
+ }
1454
+
1455
+ /* ── Integration tab: Production sections ── */
1456
+
1457
+ .pf .pf-agd-section {
1458
+ margin-bottom: 1.25rem;
1459
+ }
1460
+ .pf .pf-agd-section-label {
1461
+ font-size: 0.75rem;
1462
+ font-weight: 600;
1463
+ text-transform: uppercase;
1464
+ letter-spacing: 0.5px;
1465
+ color: var(--text-dim, #6B7280);
1466
+ margin-bottom: 0.5rem;
1467
+ }
1468
+ .pf .pf-agd-info-row {
1469
+ display: flex;
1470
+ align-items: center;
1471
+ gap: 0.5rem;
1472
+ padding: 0.3rem 0;
1473
+ font-size: 0.82rem;
1474
+ }
1475
+ .pf .pf-agd-info-label {
1476
+ font-weight: 500;
1477
+ min-width: 120px;
1478
+ color: var(--text-dim, #6B7280);
1479
+ flex-shrink: 0;
1480
+ }
1481
+ .pf .pf-agd-info-value {
1482
+ color: var(--text, #1A1A2E);
1483
+ word-break: break-all;
1484
+ }
1485
+
1486
+ /* ── Delivery log table ── */
1487
+
1488
+ .pf .pf-agd-delivery-log {
1489
+ width: 100%;
1490
+ border-collapse: collapse;
1491
+ font-size: 0.78rem;
1492
+ }
1493
+ .pf .pf-agd-delivery-log th {
1494
+ text-align: left;
1495
+ padding: 0.35rem 0.5rem;
1496
+ font-weight: 600;
1497
+ font-size: 0.7rem;
1498
+ text-transform: uppercase;
1499
+ letter-spacing: 0.3px;
1500
+ color: var(--text-dim, #6B7280);
1501
+ border-bottom: 1px solid var(--border, #E5E7EB);
1502
+ }
1503
+ .pf .pf-agd-delivery-log td {
1504
+ padding: 0.3rem 0.5rem;
1505
+ border-bottom: 1px solid var(--border-subtle, #F3F4F6);
1506
+ color: var(--text, #1A1A2E);
1507
+ }
1508
+ .pf .pf-agd-delivery-log tr:last-child td { border-bottom: none; }
1509
+ .pf .pf-agd-delivery-toggle { margin-top: 0.375rem; }
1510
+
1511
+ /* ── Messages tab: Command palette ── */
1512
+
1513
+ .pf .pf-agd-commands {
1514
+ border: 1px solid var(--border, #E5E7EB);
1515
+ border-radius: var(--radius-xs, 6px);
1516
+ margin-bottom: 1rem;
1517
+ overflow: hidden;
1518
+ }
1519
+ .pf .pf-agd-commands-header {
1520
+ display: flex;
1521
+ align-items: center;
1522
+ justify-content: space-between;
1523
+ padding: 0.5rem 0.75rem;
1524
+ background: var(--bg-dim, #F9FAFB);
1525
+ cursor: pointer;
1526
+ font-size: 0.82rem;
1527
+ font-weight: 600;
1528
+ }
1529
+ .pf .pf-agd-commands-body {
1530
+ padding: 0.5rem 0.75rem;
1531
+ }
1532
+ .pf .pf-agd-commands-category {
1533
+ font-size: 0.7rem;
1534
+ font-weight: 600;
1535
+ text-transform: uppercase;
1536
+ letter-spacing: 0.5px;
1537
+ color: var(--info, #3B82F6);
1538
+ margin-top: 0.5rem;
1539
+ margin-bottom: 0.25rem;
1540
+ }
1541
+ .pf .pf-agd-commands-category:first-child { margin-top: 0; }
1542
+ .pf .pf-agd-command-row {
1543
+ display: flex;
1544
+ align-items: center;
1545
+ gap: 0.5rem;
1546
+ padding: 0.3rem 0;
1547
+ font-size: 0.82rem;
1548
+ }
1549
+ .pf .pf-agd-command-name {
1550
+ font-family: 'JetBrains Mono', monospace;
1551
+ font-size: 0.78rem;
1552
+ font-weight: 500;
1553
+ min-width: 80px;
1554
+ flex-shrink: 0;
1555
+ }
1556
+ .pf .pf-agd-command-desc {
1557
+ flex: 1;
1558
+ color: var(--text-dim, #6B7280);
1559
+ font-size: 0.78rem;
1560
+ }
1561
+
1562
+ /* Autocomplete dropdown for / commands */
1563
+ .pf .pf-agd-autocomplete {
1564
+ position: absolute;
1565
+ bottom: 100%;
1566
+ left: 0;
1567
+ right: 0;
1568
+ background: var(--card, #FFFFFF);
1569
+ border: 1px solid var(--border, #E5E7EB);
1570
+ border-radius: var(--radius-xs, 6px);
1571
+ box-shadow: var(--shadow-md, 0 4px 12px rgba(0,0,0,0.06));
1572
+ max-height: 200px;
1573
+ overflow-y: auto;
1574
+ z-index: 10;
1575
+ }
1576
+ .pf .pf-agd-autocomplete-item {
1577
+ display: flex;
1578
+ gap: 0.5rem;
1579
+ padding: 0.4rem 0.75rem;
1580
+ font-size: 0.8rem;
1581
+ cursor: pointer;
1582
+ transition: background 0.1s;
1583
+ }
1584
+ .pf .pf-agd-autocomplete-item:hover {
1585
+ background: var(--card-bg-alt, #F3F4F6);
1586
+ }
1587
+
1588
+ /* ── Data Access tab ── */
1589
+
1590
+ .pf .pf-agd-data-section {
1591
+ margin-bottom: 1.25rem;
1592
+ }
1593
+ .pf .pf-agd-tag-row {
1594
+ display: flex;
1595
+ align-items: center;
1596
+ gap: 0.5rem;
1597
+ padding: 0.35rem 0;
1598
+ font-size: 0.82rem;
1599
+ border-bottom: 1px solid var(--border-subtle, #F3F4F6);
1600
+ }
1601
+ .pf .pf-agd-tag-row:last-child { border-bottom: none; }
1602
+ .pf .pf-agd-tag-name {
1603
+ font-weight: 500;
1604
+ background: var(--card-bg-alt, #F3F4F6);
1605
+ border: 1px solid var(--border, #E5E7EB);
1606
+ padding: 1px 8px;
1607
+ border-radius: 10px;
1608
+ font-size: 0.78rem;
1609
+ }
1610
+ .pf .pf-agd-tag-prefix {
1611
+ font-family: 'JetBrains Mono', monospace;
1612
+ font-size: 0.72rem;
1613
+ color: var(--text-dim, #6B7280);
1614
+ }
1615
+ .pf .pf-agd-tag-sharing {
1616
+ margin-left: auto;
1617
+ font-size: 0.72rem;
1618
+ color: var(--text-muted, #9CA3AF);
1619
+ }
1620
+ .pf .pf-agd-area-row {
1621
+ display: flex;
1622
+ align-items: center;
1623
+ gap: 0.75rem;
1624
+ padding: 0.3rem 0;
1625
+ font-size: 0.82rem;
1626
+ border-bottom: 1px solid var(--border-subtle, #F3F4F6);
1627
+ }
1628
+ .pf .pf-agd-area-row:last-child { border-bottom: none; }
1629
+ .pf .pf-agd-area-row--clickable { cursor: pointer; }
1630
+ .pf .pf-agd-area-row--clickable:hover { background: var(--bg-dim, #F9FAFB); }
1631
+ .pf .pf-agd-memory-preview {
1632
+ background: var(--bg-dim, #F3F4F6);
1633
+ border-radius: 6px;
1634
+ padding: 0.5rem 0.75rem;
1635
+ margin: 0.25rem 0 0.5rem 1.5rem;
1636
+ font-size: 0.75rem;
1637
+ font-family: 'JetBrains Mono', monospace;
1638
+ white-space: pre-wrap;
1639
+ word-break: break-word;
1640
+ max-height: 300px;
1641
+ overflow-y: auto;
1642
+ }
1643
+ .pf .pf-agd-area-key {
1644
+ font-family: 'JetBrains Mono', monospace;
1645
+ font-size: 0.78rem;
1646
+ font-weight: 500;
1647
+ }
1648
+ .pf .pf-agd-area-desc {
1649
+ flex: 1;
1650
+ color: var(--text-dim, #6B7280);
1651
+ font-size: 0.78rem;
1652
+ }
1653
+ .pf .pf-agd-area-perm {
1654
+ font-size: 0.7rem;
1655
+ padding: 1px 6px;
1656
+ border-radius: 8px;
1657
+ font-weight: 500;
1658
+ }
1659
+ .pf .pf-agd-area-perm--rw {
1660
+ background: var(--accent-subtle, rgba(16, 185, 129, 0.1));
1661
+ color: var(--success, #10b981);
1662
+ }
1663
+ .pf .pf-agd-area-perm--ro {
1664
+ background: var(--accent-subtle, rgba(245, 158, 11, 0.1));
1665
+ color: var(--warn, #F59E0B);
1666
+ }
1667
+
1668
+ /* Effective scope summary */
1669
+ .pf .pf-agd-scope-summary {
1670
+ background: var(--bg-dim, #F9FAFB);
1671
+ border: 1px solid var(--border, #E5E7EB);
1672
+ border-radius: var(--radius-xs, 6px);
1673
+ padding: 0.625rem 0.875rem;
1674
+ font-family: 'JetBrains Mono', monospace;
1675
+ font-size: 0.72rem;
1676
+ color: var(--text-dim, #6B7280);
1677
+ line-height: 1.5;
1678
+ margin-top: 1rem;
1679
+ }
1680
+
1681
+ /* Scope summary footer note */
1682
+ .pf .pf-agd-scope-footer {
1683
+ font-size: 0.72rem;
1684
+ color: var(--text-muted, #9CA3AF);
1685
+ margin-top: 0.5rem;
1686
+ line-height: 1.4;
1687
+ }
1688
+
1689
+ /* Config file upload row */
1690
+ .pf .pf-agd-config-upload {
1691
+ margin-bottom: 1rem;
1692
+ }
1693
+ /* Hidden file input */
1694
+ .pf .pf-agd-hidden-input {
1695
+ display: none;
1696
+ }
1697
+
1698
+ /* ── Agent Config tab ── */
1699
+
1700
+ .pf .pf-agd-config-list {
1701
+ display: flex;
1702
+ flex-direction: column;
1703
+ gap: 0.35rem;
1704
+ margin-bottom: 1rem;
1705
+ }
1706
+ .pf .pf-agd-config-item {
1707
+ display: flex;
1708
+ align-items: center;
1709
+ gap: 0.75rem;
1710
+ padding: 0.5rem 0.75rem;
1711
+ border: 1px solid var(--border, #E5E7EB);
1712
+ border-radius: var(--radius-xs, 6px);
1713
+ cursor: pointer;
1714
+ transition: background 0.15s;
1715
+ font-size: 0.82rem;
1716
+ }
1717
+ .pf .pf-agd-config-item:hover { background: var(--card-bg-alt, #F3F4F6); }
1718
+ .pf .pf-agd-config-item--active {
1719
+ border-color: var(--accent, #E8564A);
1720
+ background: var(--card-bg-alt, #F3F4F6);
1721
+ }
1722
+ .pf .pf-agd-config-name { font-weight: 600; }
1723
+ .pf .pf-agd-config-desc { flex: 1; font-size: 0.78rem; color: var(--text-dim, #6B7280); }
1724
+ .pf .pf-agd-config-platform {
1725
+ font-size: 0.65rem;
1726
+ padding: 1px 6px;
1727
+ border-radius: 8px;
1728
+ background: var(--accent-subtle, rgba(59, 130, 246, 0.1));
1729
+ color: var(--blue, #3B82F6);
1730
+ }
1731
+ .pf .pf-agd-config-preview {
1732
+ background: var(--bg-dim, #F9FAFB);
1733
+ border: 1px solid var(--border, #E5E7EB);
1734
+ border-radius: var(--radius-xs, 6px);
1735
+ padding: 0.75rem 1rem;
1736
+ font-family: 'JetBrains Mono', monospace;
1737
+ font-size: 0.78rem;
1738
+ white-space: pre-wrap;
1739
+ max-height: 300px;
1740
+ overflow-y: auto;
1741
+ line-height: 1.5;
1742
+ }
1743
+ .pf .pf-agd-config-preview-header {
1744
+ display: flex;
1745
+ align-items: center;
1746
+ justify-content: space-between;
1747
+ margin-bottom: 0.5rem;
1748
+ font-size: 0.82rem;
1749
+ font-weight: 600;
1750
+ }
1751
+
1752
+ /* ── Activity tab: Filter pills ── */
1753
+
1754
+ .pf .pf-agd-filter-bar {
1755
+ display: flex;
1756
+ gap: 0.35rem;
1757
+ margin-bottom: 0.75rem;
1758
+ flex-wrap: wrap;
1759
+ }
1760
+ .pf .pf-agd-filter-pill {
1761
+ padding: 0.25rem 0.625rem;
1762
+ border: 1px solid var(--border, #E5E7EB);
1763
+ border-radius: 12px;
1764
+ background: none;
1765
+ cursor: pointer;
1766
+ font-size: 0.75rem;
1767
+ color: var(--text-dim, #6B7280);
1768
+ transition: border-color 0.15s, color 0.15s;
1769
+ }
1770
+ .pf .pf-agd-filter-pill:hover { border-color: var(--accent, #E8564A); color: var(--text, #1A1A2E); }
1771
+ .pf .pf-agd-filter-pill--active {
1772
+ background: var(--accent, #E8564A);
1773
+ color: var(--bg, #FFFFFF);
1774
+ border-color: var(--accent, #E8564A);
1775
+ }
1776
+
1777
+ /* Activity event badges */
1778
+ .pf .pf-agd-event-badge {
1779
+ font-size: 0.65rem;
1780
+ padding: 1px 6px;
1781
+ border-radius: 8px;
1782
+ font-weight: 500;
1783
+ white-space: nowrap;
1784
+ }
1785
+ .pf .pf-agd-event-badge--tasks { background: var(--accent-subtle, rgba(16, 185, 129, 0.1)); color: var(--success, #10b981); }
1786
+ .pf .pf-agd-event-badge--messages { background: var(--accent-subtle, rgba(59, 130, 246, 0.1)); color: var(--blue, #3B82F6); }
1787
+ .pf .pf-agd-event-badge--governance { background: var(--accent-subtle, rgba(245, 158, 11, 0.1)); color: var(--warn, #F59E0B); }
1788
+ .pf .pf-agd-event-badge--system { background: var(--card-bg-alt, #F3F4F6); color: var(--text-dim, #6B7280); }
1789
+ .pf .pf-agd-event-badge--violation { background: rgba(239, 68, 68, 0.12); color: var(--danger, #ef4444); }
1790
+
1791
+ /* ── Directives tab (structured text editor) ── */
1792
+ .pf .pf-agd-directives-content {
1793
+ white-space: pre-wrap;
1794
+ font-size: 0.85rem;
1795
+ line-height: 1.6;
1796
+ padding: 12px 14px;
1797
+ background: var(--card);
1798
+ border: 1px solid var(--border);
1799
+ border-radius: 8px;
1800
+ min-height: 80px;
1801
+ color: var(--text);
1802
+ }
1803
+ .pf .pf-agd-directives-textarea {
1804
+ width: 100%;
1805
+ min-height: 200px;
1806
+ font-size: 0.85rem;
1807
+ line-height: 1.6;
1808
+ padding: 12px 14px;
1809
+ background: var(--card);
1810
+ border: 1px solid var(--border);
1811
+ border-radius: 8px;
1812
+ color: var(--text);
1813
+ font-family: inherit;
1814
+ resize: vertical;
1815
+ }
1816
+ .pf .pf-agd-directives-textarea:focus {
1817
+ outline: none;
1818
+ border-color: var(--accent, #E8564A);
1819
+ }
1820
+
1821
+ /* ── Services tab ── */
1822
+
1823
+ .pf .pf-agd-service-status {
1824
+ display: inline-block;
1825
+ width: 8px;
1826
+ height: 8px;
1827
+ border-radius: 50%;
1828
+ flex-shrink: 0;
1829
+ }
1830
+
1831
+ /* ── Audit fix additions ── */
1832
+
1833
+ /* Status dots (active/inactive) */
1834
+ .pf .pf-agd-status-dot {
1835
+ display: inline-block;
1836
+ width: 8px;
1837
+ height: 8px;
1838
+ border-radius: 50%;
1839
+ margin-right: 0.35rem;
1840
+ flex-shrink: 0;
1841
+ }
1842
+ .pf .pf-agd-status-dot--active { background: var(--success, #10b981); }
1843
+ .pf .pf-agd-status-dot--inactive { background: var(--text-dim, #6B7280); }
1844
+ .pf .pf-agd-status-dot--error { background: var(--danger, #ef4444); }
1845
+
1846
+ /* Active/Inactive badges */
1847
+ .pf .pf-agd-badge--active { background: var(--success, #10b981); color: var(--bg, #fff); }
1848
+ .pf .pf-agd-badge--inactive { background: var(--card-bg-alt, #F3F4F6); color: var(--text-dim, #6B7280); }
1849
+
1850
+ /* Config tab: action buttons row */
1851
+ .pf .pf-agd-config-actions {
1852
+ display: flex;
1853
+ gap: 0.35rem;
1854
+ }
1855
+
1856
+ /* Config tab: edit textarea */
1857
+ .pf .pf-agd-config-edit {
1858
+ margin-top: 0.5rem;
1859
+ }
1860
+ .pf .pf-agd-config-textarea {
1861
+ width: 100%;
1862
+ min-height: 200px;
1863
+ padding: 0.5rem;
1864
+ font-family: monospace;
1865
+ font-size: 0.82rem;
1866
+ border: 1px solid var(--border, #E5E7EB);
1867
+ border-radius: 6px;
1868
+ background: var(--card, #fff);
1869
+ color: var(--text, #1A1A2E);
1870
+ resize: vertical;
1871
+ }
1872
+
1873
+ /* Zone 2 inline URL form */
1874
+ .pf .pf-agd-zone2-url-form {
1875
+ display: flex;
1876
+ gap: 0.35rem;
1877
+ align-items: center;
1878
+ margin-top: 0.5rem;
1879
+ }
1880
+ .pf .pf-agd-zone2-url-form input {
1881
+ flex: 1;
1882
+ padding: 0.35rem 0.5rem;
1883
+ border: 1px solid var(--border, #E5E7EB);
1884
+ border-radius: 4px;
1885
+ font-size: 0.82rem;
1886
+ }
1887
+
1888
+ /* Help text (footer notes, explanatory text) */
1889
+ .pf .pf-agd-help-text {
1890
+ font-size: 0.75rem;
1891
+ color: var(--text-dim, #6B7280);
1892
+ margin-top: 0.5rem;
1893
+ margin-bottom: 0.5rem;
1894
+ line-height: 1.4;
1895
+ }
1896
+
1897
+ /* Directive footer */
1898
+ .pf .agd-directive-footer ,
1899
+ .pf .pf-agd-directive-footer {
1900
+ font-size: 0.75rem;
1901
+ color: var(--text-dim, #6B7280);
1902
+ margin-top: 1rem;
1903
+ padding-top: 0.5rem;
1904
+ border-top: 1px solid var(--border, #E5E7EB);
1905
+ line-height: 1.4;
1906
+ }
1907
+
1908
+ /* Delivery method status indicator */
1909
+ .pf .pf-agd-delivery-status {
1910
+ display: flex;
1911
+ align-items: center;
1912
+ gap: 0.5rem;
1913
+ margin-bottom: 0.5rem;
1914
+ font-size: 0.82rem;
1915
+ font-weight: 500;
1916
+ }
1917
+
1918
+ /* Data access: area form */
1919
+ .pf .pf-agd-area-form {
1920
+ display: flex;
1921
+ gap: 0.35rem;
1922
+ align-items: center;
1923
+ flex-wrap: wrap;
1924
+ margin-bottom: 0.5rem;
1925
+ }
1926
+ .pf .pf-agd-area-form input,
1927
+ .pf .pf-agd-area-form select {
1928
+ padding: 0.35rem 0.5rem;
1929
+ border: 1px solid var(--border, #E5E7EB);
1930
+ border-radius: 4px;
1931
+ font-size: 0.82rem;
1932
+ }
1933
+ .pf .pf-agd-area-form input { flex: 1; min-width: 120px; }
1934
+
1935
+ /* Data access: package picker */
1936
+ .pf .pf-agd-package-picker {
1937
+ margin-bottom: 0.5rem;
1938
+ }
1939
+ .pf .pf-agd-package-option {
1940
+ display: flex;
1941
+ align-items: center;
1942
+ gap: 0.5rem;
1943
+ padding: 0.35rem 0.5rem;
1944
+ cursor: pointer;
1945
+ border-radius: 4px;
1946
+ }
1947
+ .pf .pf-agd-package-option:hover { background: var(--card-bg-alt, #F3F4F6); }
1948
+ .pf .pf-agd-package-count {
1949
+ font-size: 0.72rem;
1950
+ color: var(--text-dim, #6B7280);
1951
+ }
1952
+
1953
+ /* Agent count badge in section header */
1954
+ .pf .pf-agd-count-badge {
1955
+ font-size: 0.82rem;
1956
+ font-weight: 400;
1957
+ color: var(--text-dim, #6B7280);
1958
+ }
1959
+
1960
+ /* Command badge for slash command messages */
1961
+ .pf .pf-agd-command-badge {
1962
+ display: inline-block;
1963
+ font-size: 0.65rem;
1964
+ padding: 1px 5px;
1965
+ border-radius: 4px;
1966
+ background: var(--accent-subtle, rgba(232, 86, 74, 0.1));
1967
+ color: var(--accent, #E8564A);
1968
+ font-weight: 500;
1969
+ margin-right: 0.25rem;
1970
+ }
1971
+
1972
+ /* Slash command message bubble */
1973
+ .pf .pf-agd-msg-command {
1974
+ border-left: 2px solid var(--accent, #E8564A);
1975
+ }
1976
+ .pf .pf-agd-service-status--active { background: var(--success, #10b981); }
1977
+ .pf .pf-agd-service-status--inactive { background: var(--text-muted, #9CA3AF); }
1978
+
1979
+ /* ── Scope management (card footer) ── */
1980
+
1981
+ .pf .pf-agd-card-footer {
1982
+ padding: 0.5rem 1rem;
1983
+ border-top: 1px solid var(--border, #E5E7EB);
1984
+ display: flex;
1985
+ align-items: center;
1986
+ justify-content: space-between;
1987
+ }
1988
+ .pf .pf-agd-card-actions {
1989
+ display: flex;
1990
+ gap: 0.5rem;
1991
+ }
1992
+
1993
+ /* ── Input wrapper for autocomplete ── */
1994
+ .pf .pf-agd-input-wrap {
1995
+ position: relative;
1996
+ flex: 1;
1997
+ }
1998
+ .pf .pf-agd-tag-input-row {
1999
+ display: flex;
2000
+ gap: 0.5rem;
2001
+ align-items: center;
2002
+ margin-bottom: 0.5rem;
2003
+ }
2004
+ .pf .pf-agd-progress-header {
2005
+ margin-top: 0.25rem;
2006
+ }
2007
+ .pf .agd-task-title-row ,
2008
+ .pf .pf-agd-task-title-row {
2009
+ flex: 1;
2010
+ display: flex;
2011
+ align-items: center;
2012
+ gap: 0.5rem;
2013
+ }
2014
+ .pf .agd-task-group-title ,
2015
+ .pf .pf-agd-task-group-title {
2016
+ margin-top: 0.5rem;
2017
+ margin-bottom: 0.25rem;
2018
+ }
2019
+
2020
+ /* ── Governance section (Activity tab) ── */
2021
+ .pf .agd-governance-section ,
2022
+ .pf .pf-agd-governance-section {
2023
+ background: var(--card);
2024
+ border: 1px solid var(--border);
2025
+ border-radius: 10px;
2026
+ padding: 14px 16px;
2027
+ margin-bottom: 12px;
2028
+ }
2029
+
2030
+ .pf .agd-governance-grid ,
2031
+ .pf .pf-agd-governance-grid {
2032
+ display: grid;
2033
+ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
2034
+ gap: 8px;
2035
+ margin-bottom: 8px;
2036
+ }
2037
+
2038
+ .pf .agd-governance-item ,
2039
+ .pf .pf-agd-governance-item {
2040
+ display: flex;
2041
+ justify-content: space-between;
2042
+ align-items: center;
2043
+ padding: 4px 0;
2044
+ }
2045
+
2046
+ .pf .agd-governance-label ,
2047
+ .pf .pf-agd-governance-label {
2048
+ font-size: 0.75rem;
2049
+ color: var(--text-dim);
2050
+ }
2051
+
2052
+ .pf .agd-governance-value ,
2053
+ .pf .pf-agd-governance-value {
2054
+ font-size: 0.8rem;
2055
+ font-weight: 600;
2056
+ }
2057
+ .pf .pf-agd-warning-text { color: var(--warning); }
2058
+
2059
+ .pf .agd-governance-delivery ,
2060
+ .pf .pf-agd-governance-delivery {
2061
+ display: flex;
2062
+ justify-content: space-between;
2063
+ padding-top: 6px;
2064
+ border-top: 1px solid var(--border);
2065
+ margin-top: 4px;
2066
+ }
2067
+
2068
+ /* ── Integration tab: Webhook edit form ── */
2069
+
2070
+ .pf .pf-agd-webhook-form {
2071
+ display: flex;
2072
+ gap: 0.35rem;
2073
+ align-items: center;
2074
+ margin-top: 0.5rem;
2075
+ }
2076
+ .pf .pf-agd-webhook-form input {
2077
+ flex: 1;
2078
+ padding: 0.35rem 0.5rem;
2079
+ border: 1px solid var(--border, #E5E7EB);
2080
+ border-radius: 4px;
2081
+ font-size: 0.82rem;
2082
+ background: var(--card-bg, #FFFFFF);
2083
+ color: var(--text, #1A1A2E);
2084
+ font-family: inherit;
2085
+ }
2086
+ .pf .pf-agd-webhook-form input:focus {
2087
+ outline: none;
2088
+ border-color: var(--accent, #E8564A);
2089
+ }
2090
+
2091
+ /* ── Integration tab: Roles badge ── */
2092
+
2093
+ .pf .pf-agd-role-badge {
2094
+ display: inline-block;
2095
+ font-size: 0.7rem;
2096
+ padding: 1px 8px;
2097
+ border-radius: 10px;
2098
+ font-weight: 500;
2099
+ background: var(--accent-subtle, rgba(59, 130, 246, 0.1));
2100
+ color: var(--blue, #3B82F6);
2101
+ }
2102
+
2103
+ /* ── Integration tab: Strengths / Gaps text ── */
2104
+
2105
+ .pf .pf-agd-strengths-gaps {
2106
+ font-size: 0.8rem;
2107
+ margin-top: 0.5rem;
2108
+ line-height: 1.5;
2109
+ }
2110
+ .pf .pf-agd-strengths-gaps-label {
2111
+ font-weight: 600;
2112
+ color: var(--text-dim, #6B7280);
2113
+ }
2114
+ .pf .pf-agd-strengths-gaps-value {
2115
+ color: var(--text, #1A1A2E);
2116
+ }
2117
+
2118
+ /* ── Compact Connect Agent content ── */
2119
+
2120
+ .pf .pf-agd-connect-content {
2121
+ margin-top: 0.75rem;
2122
+ }
2123
+
2124
+ /* ── Message command-reply pairing ── */
2125
+
2126
+ .pf .pf-agd-msg-pair {
2127
+ margin-bottom: 0.75rem;
2128
+ border-left: 2px solid var(--border, #E5E7EB);
2129
+ padding-left: 0.5rem;
2130
+ }
2131
+ .pf .pf-agd-msg-reply-indicator {
2132
+ color: var(--text-muted, #9CA3AF);
2133
+ font-size: 0.75rem;
2134
+ padding: 0.15rem 0 0.15rem 0.25rem;
2135
+ }
2136
+ .pf .pf-agd-msg-reply {
2137
+ opacity: 0.95;
2138
+ border-left: 2px solid var(--info, #3B82F6);
2139
+ padding-left: 0.5rem;
2140
+ }