aimeat 1.8.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 (199) hide show
  1. package/dist/.env.example +4 -1
  2. package/dist/bin/aimeat.js +0 -0
  3. package/dist/locales/en.json +527 -7
  4. package/dist/locales/fi.json +526 -6
  5. package/dist/public/css/views/admin-agent-integration.css +304 -0
  6. package/dist/public/css/views/agents-detail.css +1573 -146
  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/lib/live-updates.js +9 -4
  13. package/dist/public/llms-template.txt +106 -0
  14. package/dist/public/spa.html +7 -2
  15. package/dist/public/views/admin/agent-integration-tab.js +390 -0
  16. package/dist/public/views/admin.js +2 -0
  17. package/dist/public/views/profile/agents/agent-card.js +396 -0
  18. package/dist/public/views/profile/agents/shared-board.js +97 -0
  19. package/dist/public/views/profile/agents/state-detector.js +62 -0
  20. package/dist/public/views/profile/agents/tab-activity.js +232 -0
  21. package/dist/public/views/profile/agents/tab-agent-config.js +199 -0
  22. package/dist/public/views/profile/agents/tab-data-access.js +304 -0
  23. package/dist/public/views/profile/agents/tab-directives.js +178 -0
  24. package/dist/public/views/profile/agents/tab-integration.js +505 -0
  25. package/dist/public/views/profile/agents/tab-messages.js +278 -0
  26. package/dist/public/views/profile/agents/tab-services.js +17 -0
  27. package/dist/public/views/profile/agents/tab-tasks.js +17 -0
  28. package/dist/public/views/profile/agents-messages-subtab.js +11 -10
  29. package/dist/public/views/profile/agents-services-subtab.js +17 -11
  30. package/dist/public/views/profile/agents-tab.js +159 -259
  31. package/dist/public/views/profile/agents-task-builder.js +403 -0
  32. package/dist/public/views/profile/agents-tasks-subtab.js +114 -127
  33. package/dist/public/views/public-knowledge-viewer.js +650 -0
  34. package/dist/src/auth/middleware.d.ts.map +1 -1
  35. package/dist/src/auth/middleware.js +17 -0
  36. package/dist/src/auth/middleware.js.map +1 -1
  37. package/dist/src/config.d.ts +1 -0
  38. package/dist/src/config.d.ts.map +1 -1
  39. package/dist/src/config.js +1 -0
  40. package/dist/src/config.js.map +1 -1
  41. package/dist/src/middleware/readiness-gate.d.ts +18 -0
  42. package/dist/src/middleware/readiness-gate.d.ts.map +1 -0
  43. package/dist/src/middleware/readiness-gate.js +50 -0
  44. package/dist/src/middleware/readiness-gate.js.map +1 -0
  45. package/dist/src/models/agent-directives-schemas.d.ts +12 -0
  46. package/dist/src/models/agent-directives-schemas.d.ts.map +1 -1
  47. package/dist/src/models/agent-directives-schemas.js +7 -0
  48. package/dist/src/models/agent-directives-schemas.js.map +1 -1
  49. package/dist/src/models/agent-onboarding-schemas.d.ts +45 -0
  50. package/dist/src/models/agent-onboarding-schemas.d.ts.map +1 -0
  51. package/dist/src/models/agent-onboarding-schemas.js +91 -0
  52. package/dist/src/models/agent-onboarding-schemas.js.map +1 -0
  53. package/dist/src/models/webhook-schemas.d.ts +266 -0
  54. package/dist/src/models/webhook-schemas.d.ts.map +1 -0
  55. package/dist/src/models/webhook-schemas.js +137 -0
  56. package/dist/src/models/webhook-schemas.js.map +1 -0
  57. package/dist/src/routes/admin-agent-integration.d.ts +24 -0
  58. package/dist/src/routes/admin-agent-integration.d.ts.map +1 -0
  59. package/dist/src/routes/admin-agent-integration.js +186 -0
  60. package/dist/src/routes/admin-agent-integration.js.map +1 -0
  61. package/dist/src/routes/agent-activity.d.ts.map +1 -1
  62. package/dist/src/routes/agent-activity.js +17 -0
  63. package/dist/src/routes/agent-activity.js.map +1 -1
  64. package/dist/src/routes/agent-directives.d.ts +5 -1
  65. package/dist/src/routes/agent-directives.d.ts.map +1 -1
  66. package/dist/src/routes/agent-directives.js +74 -20
  67. package/dist/src/routes/agent-directives.js.map +1 -1
  68. package/dist/src/routes/agent-integration.d.ts +1 -0
  69. package/dist/src/routes/agent-integration.d.ts.map +1 -1
  70. package/dist/src/routes/agent-integration.js +128 -11
  71. package/dist/src/routes/agent-integration.js.map +1 -1
  72. package/dist/src/routes/agent-messages.d.ts +5 -1
  73. package/dist/src/routes/agent-messages.d.ts.map +1 -1
  74. package/dist/src/routes/agent-messages.js +20 -1
  75. package/dist/src/routes/agent-messages.js.map +1 -1
  76. package/dist/src/routes/agent-onboarding.d.ts +23 -0
  77. package/dist/src/routes/agent-onboarding.d.ts.map +1 -0
  78. package/dist/src/routes/agent-onboarding.js +374 -0
  79. package/dist/src/routes/agent-onboarding.js.map +1 -0
  80. package/dist/src/routes/agent-skill-bundle.d.ts +16 -0
  81. package/dist/src/routes/agent-skill-bundle.d.ts.map +1 -0
  82. package/dist/src/routes/agent-skill-bundle.js +133 -0
  83. package/dist/src/routes/agent-skill-bundle.js.map +1 -0
  84. package/dist/src/routes/agent-tasks.d.ts +7 -1
  85. package/dist/src/routes/agent-tasks.d.ts.map +1 -1
  86. package/dist/src/routes/agent-tasks.js +183 -7
  87. package/dist/src/routes/agent-tasks.js.map +1 -1
  88. package/dist/src/routes/agent-telemetry.d.ts +15 -0
  89. package/dist/src/routes/agent-telemetry.d.ts.map +1 -0
  90. package/dist/src/routes/agent-telemetry.js +99 -0
  91. package/dist/src/routes/agent-telemetry.js.map +1 -0
  92. package/dist/src/routes/agent-webhook.d.ts +18 -0
  93. package/dist/src/routes/agent-webhook.d.ts.map +1 -0
  94. package/dist/src/routes/agent-webhook.js +243 -0
  95. package/dist/src/routes/agent-webhook.js.map +1 -0
  96. package/dist/src/routes/agents.d.ts.map +1 -1
  97. package/dist/src/routes/agents.js +203 -4
  98. package/dist/src/routes/agents.js.map +1 -1
  99. package/dist/src/routes/auth.d.ts.map +1 -1
  100. package/dist/src/routes/auth.js +45 -2
  101. package/dist/src/routes/auth.js.map +1 -1
  102. package/dist/src/routes/ghii.d.ts.map +1 -1
  103. package/dist/src/routes/ghii.js +42 -5
  104. package/dist/src/routes/ghii.js.map +1 -1
  105. package/dist/src/routes/knowledge.d.ts.map +1 -1
  106. package/dist/src/routes/knowledge.js +19 -7
  107. package/dist/src/routes/knowledge.js.map +1 -1
  108. package/dist/src/routes/memory.js +3 -3
  109. package/dist/src/routes/memory.js.map +1 -1
  110. package/dist/src/routes/portal.d.ts.map +1 -1
  111. package/dist/src/routes/portal.js +1 -0
  112. package/dist/src/routes/portal.js.map +1 -1
  113. package/dist/src/server-bootstrap/routes-loader.d.ts.map +1 -1
  114. package/dist/src/server-bootstrap/routes-loader.js +16 -3
  115. package/dist/src/server-bootstrap/routes-loader.js.map +1 -1
  116. package/dist/src/services/config-schema.d.ts.map +1 -1
  117. package/dist/src/services/config-schema.js +2 -1
  118. package/dist/src/services/config-schema.js.map +1 -1
  119. package/dist/src/services/core-jobs.d.ts.map +1 -1
  120. package/dist/src/services/core-jobs.js +3 -2
  121. package/dist/src/services/core-jobs.js.map +1 -1
  122. package/dist/src/services/onboarding-validator.d.ts +22 -0
  123. package/dist/src/services/onboarding-validator.d.ts.map +1 -0
  124. package/dist/src/services/onboarding-validator.js +202 -0
  125. package/dist/src/services/onboarding-validator.js.map +1 -0
  126. package/dist/src/services/platform-detector.d.ts +27 -0
  127. package/dist/src/services/platform-detector.d.ts.map +1 -0
  128. package/dist/src/services/platform-detector.js +73 -0
  129. package/dist/src/services/platform-detector.js.map +1 -0
  130. package/dist/src/services/prompt-defaults.d.ts.map +1 -1
  131. package/dist/src/services/prompt-defaults.js +129 -123
  132. package/dist/src/services/prompt-defaults.js.map +1 -1
  133. package/dist/src/services/readiness-scorer.d.ts +34 -0
  134. package/dist/src/services/readiness-scorer.d.ts.map +1 -0
  135. package/dist/src/services/readiness-scorer.js +87 -0
  136. package/dist/src/services/readiness-scorer.js.map +1 -0
  137. package/dist/src/services/skill-bundle/generator.d.ts +17 -0
  138. package/dist/src/services/skill-bundle/generator.d.ts.map +1 -0
  139. package/dist/src/services/skill-bundle/generator.js +387 -0
  140. package/dist/src/services/skill-bundle/generator.js.map +1 -0
  141. package/dist/src/services/skill-bundle/generic-adapter.d.ts +16 -0
  142. package/dist/src/services/skill-bundle/generic-adapter.d.ts.map +1 -0
  143. package/dist/src/services/skill-bundle/generic-adapter.js +96 -0
  144. package/dist/src/services/skill-bundle/generic-adapter.js.map +1 -0
  145. package/dist/src/services/skill-bundle/hermes-adapter.d.ts +25 -0
  146. package/dist/src/services/skill-bundle/hermes-adapter.d.ts.map +1 -0
  147. package/dist/src/services/skill-bundle/hermes-adapter.js +302 -0
  148. package/dist/src/services/skill-bundle/hermes-adapter.js.map +1 -0
  149. package/dist/src/services/skill-bundle/types.d.ts +54 -0
  150. package/dist/src/services/skill-bundle/types.d.ts.map +1 -0
  151. package/dist/src/services/skill-bundle/types.js +8 -0
  152. package/dist/src/services/skill-bundle/types.js.map +1 -0
  153. package/dist/src/services/task-stall-detector.d.ts +10 -2
  154. package/dist/src/services/task-stall-detector.d.ts.map +1 -1
  155. package/dist/src/services/task-stall-detector.js +34 -5
  156. package/dist/src/services/task-stall-detector.js.map +1 -1
  157. package/dist/src/services/webhook-dispatcher.d.ts +71 -0
  158. package/dist/src/services/webhook-dispatcher.d.ts.map +1 -0
  159. package/dist/src/services/webhook-dispatcher.js +259 -0
  160. package/dist/src/services/webhook-dispatcher.js.map +1 -0
  161. package/dist/src/storage/interface.d.ts +80 -2
  162. package/dist/src/storage/interface.d.ts.map +1 -1
  163. package/dist/src/storage/providers/mongodb/index.d.ts +20 -1
  164. package/dist/src/storage/providers/mongodb/index.d.ts.map +1 -1
  165. package/dist/src/storage/providers/mongodb/index.js +250 -2
  166. package/dist/src/storage/providers/mongodb/index.js.map +1 -1
  167. package/dist/src/storage/providers/sqlite/index.d.ts +18 -1
  168. package/dist/src/storage/providers/sqlite/index.d.ts.map +1 -1
  169. package/dist/src/storage/providers/sqlite/index.js +168 -4
  170. package/dist/src/storage/providers/sqlite/index.js.map +1 -1
  171. package/dist/src/storage/providers/sqlite/repos/agent-directives.d.ts.map +1 -1
  172. package/dist/src/storage/providers/sqlite/repos/agent-directives.js +8 -4
  173. package/dist/src/storage/providers/sqlite/repos/agent-directives.js.map +1 -1
  174. package/dist/src/storage/providers/sqlite/repos/agent.d.ts.map +1 -1
  175. package/dist/src/storage/providers/sqlite/repos/agent.js +25 -4
  176. package/dist/src/storage/providers/sqlite/repos/agent.js.map +1 -1
  177. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  178. package/dist/src/storage/providers/sqlite/schema.js +71 -1
  179. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  180. package/dist/src/storage/repositories/agent-onboarding.repository.d.ts +16 -0
  181. package/dist/src/storage/repositories/agent-onboarding.repository.d.ts.map +1 -0
  182. package/dist/src/storage/repositories/agent-onboarding.repository.js +8 -0
  183. package/dist/src/storage/repositories/agent-onboarding.repository.js.map +1 -0
  184. package/dist/src/storage/repositories/agent-webhook.repository.d.ts +21 -0
  185. package/dist/src/storage/repositories/agent-webhook.repository.d.ts.map +1 -0
  186. package/dist/src/storage/repositories/agent-webhook.repository.js +2 -0
  187. package/dist/src/storage/repositories/agent-webhook.repository.js.map +1 -0
  188. package/dist/src/storage/repositories/agent.repository.d.ts +1 -0
  189. package/dist/src/storage/repositories/agent.repository.d.ts.map +1 -1
  190. package/dist/src/storage/repositories/index.d.ts +2 -0
  191. package/dist/src/storage/repositories/index.d.ts.map +1 -1
  192. package/dist/src/utils/env-config.d.ts.map +1 -1
  193. package/dist/src/utils/env-config.js +7 -1
  194. package/dist/src/utils/env-config.js.map +1 -1
  195. package/dist/src/utils/url-validator.d.ts.map +1 -1
  196. package/dist/src/utils/url-validator.js +3 -0
  197. package/dist/src/utils/url-validator.js.map +1 -1
  198. package/package.json +97 -77
  199. package/prisma/schema.prisma +65 -7
@@ -8,18 +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
11
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
12
20
  */
13
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
+
14
30
  /* Sub-tab bar */
15
- .pf .agd-subtab-bar {
31
+ .pf .agd-subtab-bar ,
32
+ .pf .pf-agd-subtab-bar {
16
33
  display: flex;
17
34
  gap: 0.25rem;
18
35
  border-bottom: 1px solid var(--border, #E5E7EB);
19
36
  margin-top: 1rem;
20
37
  padding-bottom: 0;
21
38
  }
22
- .pf .agd-subtab {
39
+ .pf .agd-subtab ,
40
+ .pf .pf-agd-subtab {
23
41
  padding: 0.35rem 1rem;
24
42
  background: none;
25
43
  border: none;
@@ -29,27 +47,32 @@
29
47
  font-size: 0.875rem;
30
48
  transition: color 0.15s, border-color 0.15s;
31
49
  }
32
- .pf .agd-subtab:hover { color: var(--text, #1A1A2E); }
33
- .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 {
34
54
  color: var(--accent, #E8564A);
35
55
  border-bottom-color: var(--accent, #E8564A);
36
56
  font-weight: 600;
37
57
  }
38
58
 
39
59
  /* Sub-tab content area */
40
- .pf .agd-subtab-content {
60
+ .pf .agd-subtab-content ,
61
+ .pf .pf-agd-subtab-content {
41
62
  padding: 1rem 0 0.5rem;
42
63
  min-height: 120px;
43
64
  }
44
65
 
45
66
  /* Section headers inside sub-tabs */
46
- .pf .agd-section-header {
67
+ .pf .agd-section-header ,
68
+ .pf .pf-agd-section-header {
47
69
  display: flex;
48
70
  align-items: center;
49
71
  justify-content: space-between;
50
72
  margin-bottom: 0.5rem;
51
73
  }
52
- .pf .agd-section-title {
74
+ .pf .agd-section-title ,
75
+ .pf .pf-agd-section-title {
53
76
  font-size: 0.8rem;
54
77
  font-weight: 600;
55
78
  color: var(--text-dim, #6B7280);
@@ -58,7 +81,8 @@
58
81
  }
59
82
 
60
83
  /* Task list items */
61
- .pf .agd-task-item {
84
+ .pf .agd-task-item ,
85
+ .pf .pf-agd-task-item {
62
86
  display: flex;
63
87
  align-items: center;
64
88
  justify-content: space-between;
@@ -70,36 +94,50 @@
70
94
  cursor: pointer;
71
95
  transition: background 0.15s;
72
96
  }
73
- .pf .agd-task-item:hover { background: var(--card-bg-alt, #F3F4F6); }
74
- .pf .agd-task-title { font-weight: 500; flex: 1; font-size: 0.85rem; }
75
- .pf .agd-task-meta { display: flex; gap: 0.5rem; align-items: center; flex-shrink: 0; }
76
- .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); }
77
105
 
78
106
  /* Status badges */
79
- .pf .agd-status {
107
+ .pf .agd-status ,
108
+ .pf .pf-agd-status {
80
109
  font-size: 0.7rem;
81
110
  padding: 2px 8px;
82
111
  border-radius: 12px;
83
112
  font-weight: 500;
84
113
  white-space: nowrap;
85
114
  }
86
- .pf .agd-status-draft { background: var(--card-bg-alt, #F3F4F6); color: var(--text-dim, #6B7280); }
87
- .pf .agd-status-queued { background: rgba(217, 119, 6, 0.1); color: #d97706; }
88
- .pf .agd-status-active { background: rgba(37, 99, 235, 0.1); color: #2563eb; }
89
- .pf .agd-status-done { background: rgba(16, 185, 129, 0.1); color: var(--success, #10b981); }
90
- .pf .agd-status-failed { background: rgba(239, 68, 68, 0.1); color: var(--danger, #ef4444); }
91
- .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); }
92
127
 
93
128
  /* Task creation form */
94
- .pf .agd-create-form {
129
+ .pf .agd-create-form ,
130
+ .pf .pf-agd-create-form {
95
131
  padding: 0.75rem;
96
132
  border: 1px solid var(--border, #E5E7EB);
97
133
  border-radius: var(--radius-xs, 6px);
98
134
  margin-top: 0.5rem;
99
135
  background: var(--card-bg, #FFFFFF);
100
136
  }
101
- .pf .agd-form-field { margin-bottom: 0.65rem; }
102
- .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 {
103
141
  display: block;
104
142
  font-size: 0.8rem;
105
143
  font-weight: 600;
@@ -108,7 +146,10 @@
108
146
  }
109
147
  .pf .agd-form-field input,
110
148
  .pf .agd-form-field textarea,
111
- .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 {
112
153
  width: 100%;
113
154
  padding: 0.35rem 0.5rem;
114
155
  border: 1px solid var(--border, #E5E7EB);
@@ -121,15 +162,21 @@
121
162
  }
122
163
  .pf .agd-form-field input:focus,
123
164
  .pf .agd-form-field textarea:focus,
124
- .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 {
125
169
  outline: none;
126
170
  border-color: var(--accent, #E8564A);
127
171
  }
128
- .pf .agd-form-field textarea { min-height: 70px; resize: vertical; }
129
- .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; }
130
176
 
131
177
  /* Task expanded detail / event log */
132
- .pf .agd-task-expanded {
178
+ .pf .agd-task-expanded ,
179
+ .pf .pf-agd-task-expanded {
133
180
  padding: 0.5rem 0.75rem;
134
181
  border: 1px solid var(--border, #E5E7EB);
135
182
  border-top: none;
@@ -139,11 +186,32 @@
139
186
  background: var(--card-bg-alt, #F3F4F6);
140
187
  font-size: 0.85rem;
141
188
  }
142
- .pf .agd-task-desc { color: var(--text-dim, #6B7280); margin-bottom: 0.5rem; line-height: 1.4; }
143
- .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; }
144
210
 
145
- .pf .agd-event-log { max-height: 200px; overflow-y: auto; margin-top: 0.5rem; }
146
- .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 {
147
215
  padding: 0.25rem 0;
148
216
  border-bottom: 1px solid var(--border, #E5E7EB);
149
217
  font-size: 0.8rem;
@@ -151,21 +219,32 @@
151
219
  gap: 0.5rem;
152
220
  align-items: baseline;
153
221
  }
154
- .pf .agd-event-item:last-child { border-bottom: none; }
155
- .pf .agd-event-time { color: var(--text-dim, #6B7280); font-size: 0.7rem; flex-shrink: 0; }
156
- .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; }
157
228
 
158
229
  /* Empty state */
159
- .pf .agd-empty {
230
+ .pf .agd-empty ,
231
+ .pf .pf-agd-empty {
160
232
  text-align: center;
161
233
  padding: 1.5rem;
162
234
  color: var(--text-dim, #6B7280);
163
235
  font-size: 0.85rem;
164
236
  }
237
+ .pf .pf-agd-empty-hint {
238
+ color: var(--text-dim);
239
+ font-size: 0.8rem;
240
+ margin-top: 0.25rem;
241
+ }
165
242
 
166
243
  /* Directives display */
167
- .pf .agd-directive-section { margin-bottom: 1rem; }
168
- .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 {
169
248
  font-size: 0.8rem;
170
249
  font-weight: 600;
171
250
  margin-bottom: 0.35rem;
@@ -173,13 +252,15 @@
173
252
  text-transform: uppercase;
174
253
  letter-spacing: 0.5px;
175
254
  }
176
- .pf .agd-purpose-text {
255
+ .pf .agd-purpose-text ,
256
+ .pf .pf-agd-purpose-text {
177
257
  font-size: 0.85rem;
178
258
  color: var(--text, #1A1A2E);
179
259
  line-height: 1.5;
180
260
  padding: 0.35rem 0;
181
261
  }
182
- .pf .agd-rule-item {
262
+ .pf .agd-rule-item ,
263
+ .pf .pf-agd-rule-item {
183
264
  display: flex;
184
265
  align-items: flex-start;
185
266
  gap: 0.5rem;
@@ -187,8 +268,10 @@
187
268
  font-size: 0.85rem;
188
269
  line-height: 1.4;
189
270
  }
190
- .pf .agd-rule-text { flex: 1; }
191
- .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 {
192
275
  font-size: 0.65rem;
193
276
  padding: 1px 6px;
194
277
  border-radius: 8px;
@@ -197,34 +280,42 @@
197
280
  font-weight: 500;
198
281
  margin-top: 2px;
199
282
  }
200
- .pf .agd-source-system { background: var(--card-bg-alt, #F3F4F6); color: var(--text-dim, #6B7280); }
201
- .pf .agd-source-owner { background: rgba(37, 99, 235, 0.1); color: #2563eb; }
202
- .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); }
203
289
 
204
290
  /* Resource / memory area lists */
205
- .pf .agd-list-item {
291
+ .pf .agd-list-item ,
292
+ .pf .pf-agd-list-item {
206
293
  padding: 0.25rem 0;
207
294
  font-size: 0.85rem;
208
295
  color: var(--text, #1A1A2E);
209
- border-bottom: 1px solid rgba(0, 0, 0, 0.04);
296
+ border-bottom: 1px solid var(--border-subtle, #F3F4F6);
210
297
  }
211
- .pf .agd-list-item:last-child { border-bottom: none; }
212
- .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 {
213
302
  font-family: 'JetBrains Mono', monospace;
214
303
  font-size: 0.78rem;
215
- background: rgba(0, 0, 0, 0.04);
304
+ background: var(--code-bg, #F3F4F6);
216
305
  padding: 1px 5px;
217
306
  border-radius: 3px;
218
307
  }
219
308
 
220
309
  /* Editable rule input row */
221
- .pf .agd-rule-edit-row {
310
+ .pf .agd-rule-edit-row ,
311
+ .pf .pf-agd-rule-edit-row {
222
312
  display: flex;
223
313
  gap: 0.5rem;
224
314
  align-items: center;
225
315
  margin-bottom: 0.35rem;
226
316
  }
227
- .pf .agd-rule-edit-row input {
317
+ .pf .agd-rule-edit-row input ,
318
+ .pf .pf-agd-rule-edit-row input {
228
319
  flex: 1;
229
320
  padding: 0.3rem 0.5rem;
230
321
  border: 1px solid var(--border, #E5E7EB);
@@ -234,11 +325,13 @@
234
325
  color: var(--text, #1A1A2E);
235
326
  font-family: inherit;
236
327
  }
237
- .pf .agd-rule-edit-row input:focus {
328
+ .pf .agd-rule-edit-row input:focus ,
329
+ .pf .pf-agd-rule-edit-row input:focus {
238
330
  outline: none;
239
331
  border-color: var(--accent, #E8564A);
240
332
  }
241
- .pf .agd-remove-btn {
333
+ .pf .agd-remove-btn ,
334
+ .pf .pf-agd-remove-btn {
242
335
  background: none;
243
336
  border: none;
244
337
  color: var(--danger, #ef4444);
@@ -248,8 +341,10 @@
248
341
  opacity: 0.6;
249
342
  transition: opacity 0.15s;
250
343
  }
251
- .pf .agd-remove-btn:hover { opacity: 1; }
252
- .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 {
253
348
  background: none;
254
349
  border: 1px dashed var(--border, #E5E7EB);
255
350
  color: var(--text-dim, #6B7280);
@@ -260,23 +355,26 @@
260
355
  transition: border-color 0.15s, color 0.15s;
261
356
  margin-top: 0.25rem;
262
357
  }
263
- .pf .agd-add-btn:hover {
358
+ .pf .agd-add-btn:hover ,
359
+ .pf .pf-agd-add-btn:hover {
264
360
  border-color: var(--accent, #E8564A);
265
361
  color: var(--accent, #E8564A);
266
362
  }
267
363
 
268
364
  /* Group picker popup (memory tab visibility cycling) */
269
- .agd-group-picker {
365
+ .pf .agd-group-picker,
366
+ .pf .pf-agd-group-picker {
270
367
  position: absolute;
271
368
  z-index: 10;
272
369
  background: var(--card, #FFFFFF);
273
370
  border: 1px solid var(--border, #E5E7EB);
274
371
  border-radius: var(--radius, 6px);
275
372
  padding: var(--space-sm, 0.5rem);
276
- 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));
277
374
  min-width: 200px;
278
375
  }
279
- .agd-group-option {
376
+ .pf .agd-group-option,
377
+ .pf .pf-agd-group-option {
280
378
  display: block;
281
379
  width: 100%;
282
380
  text-align: left;
@@ -286,7 +384,8 @@
286
384
  /* ── Capabilities sub-tab ── */
287
385
 
288
386
  /* Badge list container */
289
- .pf .agd-cap-list {
387
+ .pf .agd-cap-list ,
388
+ .pf .pf-agd-cap-list {
290
389
  display: flex;
291
390
  flex-wrap: wrap;
292
391
  gap: 0.35rem;
@@ -294,7 +393,8 @@
294
393
  }
295
394
 
296
395
  /* Individual capability badge */
297
- .pf .agd-cap-badge {
396
+ .pf .agd-cap-badge ,
397
+ .pf .pf-agd-cap-badge {
298
398
  display: inline-flex;
299
399
  align-items: center;
300
400
  gap: 0.35rem;
@@ -305,12 +405,14 @@
305
405
  background: var(--card-bg, #FFFFFF);
306
406
  color: var(--text, #1A1A2E);
307
407
  }
308
- .pf .agd-cap-name {
408
+ .pf .agd-cap-name ,
409
+ .pf .pf-agd-cap-name {
309
410
  font-weight: 500;
310
411
  }
311
412
 
312
413
  /* Type badges (MCP / skill / tool) */
313
- .pf .agd-cap-type {
414
+ .pf .agd-cap-type ,
415
+ .pf .pf-agd-cap-type {
314
416
  font-size: 0.65rem;
315
417
  padding: 1px 6px;
316
418
  border-radius: 8px;
@@ -320,21 +422,25 @@
320
422
  background: var(--card-bg-alt, #F3F4F6);
321
423
  color: var(--text-dim, #6B7280);
322
424
  }
323
- .pf .agd-cap-type-mcp {
425
+ .pf .agd-cap-type-mcp ,
426
+ .pf .pf-agd-cap-type-mcp {
324
427
  background: rgba(37, 99, 235, 0.1);
325
- color: #2563eb;
428
+ color: var(--blue, #3B82F6);
326
429
  }
327
- .pf .agd-cap-type-skill {
430
+ .pf .agd-cap-type-skill ,
431
+ .pf .pf-agd-cap-type-skill {
328
432
  background: rgba(16, 185, 129, 0.1);
329
433
  color: var(--success, #10b981);
330
434
  }
331
- .pf .agd-cap-type-tool {
435
+ .pf .agd-cap-type-tool ,
436
+ .pf .pf-agd-cap-type-tool {
332
437
  background: rgba(217, 119, 6, 0.1);
333
- color: #d97706;
438
+ color: var(--warn, #F59E0B);
334
439
  }
335
440
 
336
441
  /* Verified / self-reported badges */
337
- .pf .agd-cap-verified {
442
+ .pf .agd-cap-verified ,
443
+ .pf .pf-agd-cap-verified {
338
444
  font-size: 0.65rem;
339
445
  padding: 1px 6px;
340
446
  border-radius: 8px;
@@ -342,7 +448,8 @@
342
448
  background: rgba(16, 185, 129, 0.1);
343
449
  color: var(--success, #10b981);
344
450
  }
345
- .pf .agd-cap-unverified {
451
+ .pf .agd-cap-unverified ,
452
+ .pf .pf-agd-cap-unverified {
346
453
  font-size: 0.65rem;
347
454
  padding: 1px 6px;
348
455
  border-radius: 8px;
@@ -352,43 +459,50 @@
352
459
  }
353
460
 
354
461
  /* Domain badge variant */
355
- .pf .agd-cap-domain {
462
+ .pf .agd-cap-domain ,
463
+ .pf .pf-agd-cap-domain {
356
464
  background: var(--card-bg-alt, #F3F4F6);
357
465
  }
358
466
 
359
467
  /* Language tags row */
360
- .pf .agd-cap-langs {
468
+ .pf .agd-cap-langs ,
469
+ .pf .pf-agd-cap-langs {
361
470
  display: flex;
362
471
  flex-wrap: wrap;
363
472
  align-items: center;
364
473
  gap: 0.35rem;
365
474
  margin-top: 0.5rem;
366
475
  }
367
- .pf .agd-cap-lang-label {
476
+ .pf .agd-cap-lang-label ,
477
+ .pf .pf-agd-cap-lang-label {
368
478
  font-size: 0.8rem;
369
479
  color: var(--text-dim, #6B7280);
370
480
  font-weight: 500;
371
481
  }
372
- .pf .agd-cap-lang {
482
+ .pf .agd-cap-lang ,
483
+ .pf .pf-agd-cap-lang {
373
484
  background: rgba(37, 99, 235, 0.08);
374
- color: #2563eb;
485
+ color: var(--blue, #3B82F6);
375
486
  font-weight: 500;
376
487
  }
377
488
 
378
489
  /* Action queue support list */
379
- .pf .agd-cap-queue-list {
490
+ .pf .agd-cap-queue-list ,
491
+ .pf .pf-agd-cap-queue-list {
380
492
  display: flex;
381
493
  flex-direction: column;
382
494
  gap: 0.25rem;
383
495
  }
384
- .pf .agd-cap-queue-item {
496
+ .pf .agd-cap-queue-item ,
497
+ .pf .pf-agd-cap-queue-item {
385
498
  display: flex;
386
499
  align-items: center;
387
500
  gap: 0.5rem;
388
501
  font-size: 0.85rem;
389
502
  color: var(--text, #1A1A2E);
390
503
  }
391
- .pf .agd-cap-check {
504
+ .pf .agd-cap-check ,
505
+ .pf .pf-agd-cap-check {
392
506
  color: var(--success, #10b981);
393
507
  font-weight: 700;
394
508
  }
@@ -396,39 +510,64 @@
396
510
  /* ── Activity sub-tab ── */
397
511
 
398
512
  /* Activity stats cards */
399
- .pf .agd-stats-grid { display: flex; gap: 8px; margin-bottom: 16px; }
400
- .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; }
401
- .pf .agd-stat-value { font-size: 1.5rem; font-weight: 600; color: var(--text, #1A1A2E); }
402
- .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); }
403
521
 
404
522
  /* Activity chart area */
405
- .pf .agd-chart-container { background: var(--card-bg, #FFFFFF); border: 1px solid var(--border, #E5E7EB); border-radius: 8px; padding: 12px; margin-bottom: 16px; }
406
- .pf .agd-chart-rows { display: flex; flex-direction: column; gap: 4px; }
407
- .pf .agd-chart-row { display: flex; align-items: center; gap: 8px; font-size: 0.75rem; }
408
- .pf .agd-chart-date { min-width: 52px; color: var(--text-muted, #9CA3AF); text-align: right; }
409
- .pf .agd-chart-bar-track { flex: 1; height: 14px; background: var(--card-bg-alt, #F3F4F6); border-radius: 3px; overflow: hidden; }
410
- .pf .agd-chart-bar-fill { height: 100%; background: var(--accent, #E8564A); border-radius: 3px; transition: width 0.2s; }
411
- .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); }
412
537
 
413
538
  /* Event log entries */
414
- .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; }
415
- .pf .agd-log-time { color: var(--text-muted, #9CA3AF); white-space: nowrap; min-width: 80px; }
416
- .pf .agd-log-type { font-weight: 600; min-width: 80px; color: var(--text, #1A1A2E); }
417
- .pf .agd-log-msg { flex: 1; color: var(--text-dim, #6B7280); }
418
- .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; }
419
552
 
420
553
  /* Scheduled jobs badges */
421
- .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; }
422
- .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; }
423
558
 
424
559
  /* Time range selector */
425
- .pf .agd-range-bar { display: flex; gap: 4px; margin-bottom: 8px; }
426
- .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); }
427
- .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); }
428
566
 
429
567
  /* ── Services sub-tab ── */
430
568
 
431
- .pf .agd-services-info {
569
+ .pf .agd-services-info ,
570
+ .pf .pf-agd-services-info {
432
571
  background: var(--bg-dim, #F9FAFB);
433
572
  border: 1px solid var(--border, #E5E7EB);
434
573
  border-radius: 8px;
@@ -437,27 +576,32 @@
437
576
  color: var(--text-dim, #6B7280);
438
577
  margin-bottom: 1rem;
439
578
  }
440
- .pf .agd-services-list {
579
+ .pf .agd-services-list ,
580
+ .pf .pf-agd-services-list {
441
581
  display: flex;
442
582
  flex-direction: column;
443
583
  gap: 0.5rem;
444
584
  }
445
- .pf .agd-service-card {
585
+ .pf .agd-service-card ,
586
+ .pf .pf-agd-service-card {
446
587
  background: var(--card, #FFFFFF);
447
588
  border: 1px solid var(--border, #E5E7EB);
448
589
  border-radius: 8px;
449
590
  padding: 0.75rem 1rem;
450
591
  }
451
- .pf .agd-service-name {
592
+ .pf .agd-service-name ,
593
+ .pf .pf-agd-service-name {
452
594
  font-weight: 600;
453
595
  font-size: 0.9rem;
454
596
  }
455
- .pf .agd-service-desc {
597
+ .pf .agd-service-desc ,
598
+ .pf .pf-agd-service-desc {
456
599
  font-size: 0.8rem;
457
600
  color: var(--text-dim, #6B7280);
458
601
  margin-top: 0.25rem;
459
602
  }
460
- .pf .agd-service-meta {
603
+ .pf .agd-service-meta ,
604
+ .pf .pf-agd-service-meta {
461
605
  display: flex;
462
606
  gap: 0.75rem;
463
607
  font-size: 0.75rem;
@@ -467,7 +611,8 @@
467
611
 
468
612
  /* ── Messages sub-tab ── */
469
613
 
470
- .pf .agd-msg-status-bar {
614
+ .pf .agd-msg-status-bar ,
615
+ .pf .pf-agd-msg-status-bar {
471
616
  display: flex;
472
617
  justify-content: space-between;
473
618
  align-items: center;
@@ -477,7 +622,8 @@
477
622
  color: var(--text-dim, #6B7280);
478
623
  margin-bottom: 0.75rem;
479
624
  }
480
- .pf .agd-msg-history {
625
+ .pf .agd-msg-history ,
626
+ .pf .pf-agd-msg-history {
481
627
  max-height: 400px;
482
628
  overflow-y: auto;
483
629
  padding: 0.5rem 0;
@@ -485,45 +631,56 @@
485
631
  flex-direction: column;
486
632
  gap: 0.5rem;
487
633
  }
488
- .pf .agd-msg-bubble {
634
+ .pf .agd-msg-bubble ,
635
+ .pf .pf-agd-msg-bubble {
489
636
  max-width: 80%;
490
637
  padding: 0.625rem 0.875rem;
491
638
  border-radius: 12px;
492
639
  font-size: 0.85rem;
493
640
  line-height: 1.5;
494
641
  }
495
- .pf .agd-msg-inbound {
642
+ .pf .agd-msg-inbound ,
643
+ .pf .pf-agd-msg-inbound {
496
644
  align-self: flex-end;
497
645
  background: var(--accent-dim, #FEF2F1);
498
646
  border-bottom-right-radius: 4px;
499
647
  }
500
- .pf .agd-msg-outbound {
648
+ .pf .agd-msg-outbound ,
649
+ .pf .pf-agd-msg-outbound {
501
650
  align-self: flex-start;
502
651
  background: var(--surface, #F3F4F6);
503
652
  border: 1px solid var(--border, #E5E7EB);
504
653
  border-bottom-left-radius: 4px;
505
654
  }
506
- .pf .agd-msg-meta {
655
+ .pf .agd-msg-meta ,
656
+ .pf .pf-agd-msg-meta {
507
657
  font-size: 0.7rem;
508
658
  color: var(--text-muted, #9CA3AF);
509
659
  margin-top: 0.25rem;
510
660
  }
511
- .pf .agd-msg-meta-right {
661
+ .pf .agd-msg-meta-right ,
662
+ .pf .pf-agd-msg-meta-right {
512
663
  text-align: right;
513
664
  }
514
- .pf .agd-msg-time {
665
+ .pf .agd-msg-time ,
666
+ .pf .pf-agd-msg-time {
515
667
  font-weight: 500;
516
668
  color: var(--text-secondary, #6B7280);
517
669
  }
518
- .pf .agd-msg-input {
670
+ .pf .agd-msg-input ,
671
+ .pf .pf-agd-msg-input {
519
672
  display: flex;
520
673
  gap: 0.5rem;
521
674
  padding: 0.75rem 0;
522
675
  border-top: 1px solid var(--border, #E5E7EB);
523
676
  margin-top: 0.75rem;
677
+ align-items: flex-end;
678
+ width: 100%;
524
679
  }
525
- .pf .agd-msg-input textarea {
526
- flex: 1;
680
+ .pf .agd-msg-input textarea ,
681
+ .pf .pf-agd-msg-input textarea {
682
+ width: 100%;
683
+ min-width: 0;
527
684
  resize: none;
528
685
  border: 1px solid var(--border, #E5E7EB);
529
686
  border-radius: 8px;
@@ -533,7 +690,8 @@
533
690
  max-height: 6rem;
534
691
  font-family: inherit;
535
692
  }
536
- .pf .agd-msg-proposed-task {
693
+ .pf .agd-msg-proposed-task ,
694
+ .pf .pf-agd-msg-proposed-task {
537
695
  background: var(--card, #FFFFFF);
538
696
  border: 1px solid var(--accent, #E8564A);
539
697
  border-radius: 8px;
@@ -541,18 +699,21 @@
541
699
  margin-top: 0.5rem;
542
700
  font-size: 0.8rem;
543
701
  }
544
- .pf .agd-msg-proposed-task h5 {
702
+ .pf .agd-msg-proposed-task h5 ,
703
+ .pf .pf-agd-msg-proposed-task h5 {
545
704
  margin: 0 0 0.25rem;
546
705
  font-size: 0.8rem;
547
706
  color: var(--accent, #E8564A);
548
707
  }
549
- .pf .agd-msg-threads {
708
+ .pf .agd-msg-threads ,
709
+ .pf .pf-agd-msg-threads {
550
710
  display: flex;
551
711
  gap: 0.5rem;
552
712
  flex-wrap: wrap;
553
713
  margin-bottom: 0.75rem;
554
714
  }
555
- .pf .agd-msg-thread-btn {
715
+ .pf .agd-msg-thread-btn ,
716
+ .pf .pf-agd-msg-thread-btn {
556
717
  background: var(--surface, #F3F4F6);
557
718
  border: 1px solid var(--border, #E5E7EB);
558
719
  border-radius: 6px;
@@ -562,47 +723,234 @@
562
723
  transition: border-color 0.15s;
563
724
  }
564
725
  .pf .agd-msg-thread-btn:hover,
565
- .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 {
566
729
  border-color: var(--accent, #E8564A);
567
730
  color: var(--accent, #E8564A);
568
731
  }
569
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
+
570
912
  /* ── Task TODO list ── */
571
913
 
572
914
  /* Progress badge shown next to task title */
573
- .pf .agd-todo-progress {
915
+ .pf .agd-todo-progress ,
916
+ .pf .pf-agd-todo-progress {
574
917
  font-size: 0.7rem;
575
918
  font-weight: 600;
576
919
  padding: 1px 7px;
577
920
  border-radius: 10px;
578
921
  background: rgba(37, 99, 235, 0.1);
579
- color: #2563eb;
922
+ color: var(--blue, #3B82F6);
580
923
  white-space: nowrap;
581
924
  }
582
925
 
583
926
  /* TODO section wrapper inside expanded task */
584
- .pf .agd-todo-section {
927
+ .pf .agd-todo-section ,
928
+ .pf .pf-agd-todo-section {
585
929
  margin: 0.5rem 0;
586
930
  }
587
- .pf .agd-todo-header {
931
+ .pf .agd-todo-header ,
932
+ .pf .pf-agd-todo-header {
588
933
  display: flex;
589
934
  align-items: center;
590
935
  justify-content: space-between;
591
936
  margin-bottom: 0.35rem;
592
937
  font-size: 0.8rem;
593
938
  }
594
- .pf .agd-todo-summary {
939
+ .pf .agd-todo-summary ,
940
+ .pf .pf-agd-todo-summary {
595
941
  display: flex;
596
942
  align-items: center;
597
943
  gap: 0.5rem;
598
944
  }
599
- .pf .agd-todo-time {
945
+ .pf .agd-todo-time ,
946
+ .pf .pf-agd-todo-time {
600
947
  font-size: 0.7rem;
601
948
  color: var(--text-muted, #9CA3AF);
602
949
  }
603
950
 
604
951
  /* Environment badges (AIMEAT / Agent) */
605
- .pf .agd-env-badge {
952
+ .pf .agd-env-badge ,
953
+ .pf .pf-agd-env-badge {
606
954
  font-size: 0.6rem;
607
955
  font-weight: 600;
608
956
  padding: 1px 6px;
@@ -611,22 +959,26 @@
611
959
  letter-spacing: 0.3px;
612
960
  white-space: nowrap;
613
961
  }
614
- .pf .agd-env-aimeat {
962
+ .pf .agd-env-aimeat ,
963
+ .pf .pf-agd-env-aimeat {
615
964
  background: rgba(16, 185, 129, 0.12);
616
965
  color: var(--success, #10b981);
617
966
  }
618
- .pf .agd-env-agent {
967
+ .pf .agd-env-agent ,
968
+ .pf .pf-agd-env-agent {
619
969
  background: rgba(217, 119, 6, 0.12);
620
- color: #d97706;
970
+ color: var(--warn, #F59E0B);
621
971
  }
622
972
 
623
973
  /* TODO item list */
624
- .pf .agd-todo-list {
974
+ .pf .agd-todo-list ,
975
+ .pf .pf-agd-todo-list {
625
976
  display: flex;
626
977
  flex-direction: column;
627
978
  gap: 0.25rem;
628
979
  }
629
- .pf .agd-todo-item {
980
+ .pf .agd-todo-item ,
981
+ .pf .pf-agd-todo-item {
630
982
  display: flex;
631
983
  align-items: flex-start;
632
984
  gap: 0.5rem;
@@ -637,23 +989,28 @@
637
989
  font-size: 0.8rem;
638
990
  transition: border-color 0.15s;
639
991
  }
640
- .pf .agd-todo-active {
641
- border-color: #2563eb;
992
+ .pf .agd-todo-active ,
993
+ .pf .pf-agd-todo-active {
994
+ border-color: var(--blue, #3B82F6);
642
995
  background: rgba(37, 99, 235, 0.04);
643
996
  }
644
- .pf .agd-todo-done {
997
+ .pf .agd-todo-done ,
998
+ .pf .pf-agd-todo-done {
645
999
  opacity: 0.7;
646
1000
  }
647
- .pf .agd-todo-failed {
1001
+ .pf .agd-todo-failed ,
1002
+ .pf .pf-agd-todo-failed {
648
1003
  border-color: var(--danger, #ef4444);
649
1004
  background: rgba(239, 68, 68, 0.04);
650
1005
  }
651
- .pf .agd-todo-skipped {
1006
+ .pf .agd-todo-skipped ,
1007
+ .pf .pf-agd-todo-skipped {
652
1008
  opacity: 0.5;
653
1009
  }
654
1010
 
655
1011
  /* Status icon column */
656
- .pf .agd-todo-icon {
1012
+ .pf .agd-todo-icon ,
1013
+ .pf .pf-agd-todo-icon {
657
1014
  flex-shrink: 0;
658
1015
  font-size: 0.85rem;
659
1016
  line-height: 1.4;
@@ -662,11 +1019,13 @@
662
1019
  }
663
1020
 
664
1021
  /* Content column */
665
- .pf .agd-todo-content {
1022
+ .pf .agd-todo-content ,
1023
+ .pf .pf-agd-todo-content {
666
1024
  flex: 1;
667
1025
  min-width: 0;
668
1026
  }
669
- .pf .agd-todo-title {
1027
+ .pf .agd-todo-title ,
1028
+ .pf .pf-agd-todo-title {
670
1029
  display: flex;
671
1030
  align-items: center;
672
1031
  gap: 0.4rem;
@@ -674,24 +1033,28 @@
674
1033
  font-weight: 500;
675
1034
  line-height: 1.4;
676
1035
  }
677
- .pf .agd-todo-est {
1036
+ .pf .agd-todo-est ,
1037
+ .pf .pf-agd-todo-est {
678
1038
  font-size: 0.65rem;
679
1039
  color: var(--text-muted, #9CA3AF);
680
1040
  white-space: nowrap;
681
1041
  }
682
- .pf .agd-todo-desc {
1042
+ .pf .agd-todo-desc ,
1043
+ .pf .pf-agd-todo-desc {
683
1044
  font-size: 0.75rem;
684
1045
  color: var(--text-dim, #6B7280);
685
1046
  line-height: 1.4;
686
1047
  margin-top: 0.15rem;
687
1048
  }
688
- .pf .agd-todo-reason {
1049
+ .pf .agd-todo-reason ,
1050
+ .pf .pf-agd-todo-reason {
689
1051
  font-size: 0.7rem;
690
1052
  color: var(--text-muted, #9CA3AF);
691
1053
  font-style: italic;
692
1054
  margin-top: 0.1rem;
693
1055
  }
694
- .pf .agd-todo-verify {
1056
+ .pf .agd-todo-verify ,
1057
+ .pf .pf-agd-todo-verify {
695
1058
  font-size: 0.7rem;
696
1059
  color: var(--text-muted, #9CA3AF);
697
1060
  margin-top: 0.1rem;
@@ -700,7 +1063,8 @@
700
1063
  }
701
1064
 
702
1065
  /* Waiting state (no todos yet) */
703
- .pf .agd-todo-waiting {
1066
+ .pf .agd-todo-waiting ,
1067
+ .pf .pf-agd-todo-waiting {
704
1068
  text-align: center;
705
1069
  padding: 1rem;
706
1070
  color: var(--text-muted, #9CA3AF);
@@ -711,3 +1075,1066 @@
711
1075
  border-radius: var(--radius-xs, 6px);
712
1076
  margin: 0.5rem 0;
713
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
+ }