@profoundlogic/coderflow-server 0.2.1

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 (202) hide show
  1. package/LICENSE.txt +322 -0
  2. package/README.md +158 -0
  3. package/dist/LICENSE.txt +322 -0
  4. package/dist/README.md +158 -0
  5. package/dist/base-image/Dockerfile +184 -0
  6. package/dist/base-image/agent-wrapper.sh +143 -0
  7. package/dist/base-image/apply-local-state.sh +357 -0
  8. package/dist/base-image/coder-git-credential-helper +307 -0
  9. package/dist/base-image/entrypoint.sh +942 -0
  10. package/dist/base-image/ssh_config_template +41 -0
  11. package/dist/base-image/start-code-server.sh +76 -0
  12. package/dist/base-image/sync-repos.sh +170 -0
  13. package/dist/base-image/vscode-extensions.txt +10 -0
  14. package/dist/base-image/vscode-settings.json +41 -0
  15. package/dist/coder-server.js +2 -0
  16. package/dist/config/cli-models.json +45 -0
  17. package/dist/config/imported-skills.schema.json +83 -0
  18. package/dist/config/skill-catalog.json +18 -0
  19. package/dist/config/skill-catalog.schema.json +140 -0
  20. package/dist/config.js +1 -0
  21. package/dist/examples/oidc.json.example +11 -0
  22. package/dist/lib/agent-keepalive.js +1 -0
  23. package/dist/lib/api-keys.js +1 -0
  24. package/dist/lib/apiKeys.js +1 -0
  25. package/dist/lib/auto-judge.js +1 -0
  26. package/dist/lib/basic-auth.js +1 -0
  27. package/dist/lib/build-history.js +1 -0
  28. package/dist/lib/build-output-service.js +1 -0
  29. package/dist/lib/build-scheduler.js +1 -0
  30. package/dist/lib/build-service.js +1 -0
  31. package/dist/lib/claude-oauth-refresh.js +1 -0
  32. package/dist/lib/cli/build.js +1 -0
  33. package/dist/lib/cli/config-command.js +1 -0
  34. package/dist/lib/cli/config.js +1 -0
  35. package/dist/lib/cli/create-user.js +1 -0
  36. package/dist/lib/cli/init.js +1 -0
  37. package/dist/lib/cli/jira.js +1 -0
  38. package/dist/lib/cli/license.js +1 -0
  39. package/dist/lib/cli/server-manager.js +1 -0
  40. package/dist/lib/container-tokens.js +1 -0
  41. package/dist/lib/data-dir.js +1 -0
  42. package/dist/lib/deployment-history.js +1 -0
  43. package/dist/lib/deployment-service.js +1 -0
  44. package/dist/lib/docker-utils.js +1 -0
  45. package/dist/lib/email.js +1 -0
  46. package/dist/lib/emailTemplates.js +1 -0
  47. package/dist/lib/entitlement.js +1 -0
  48. package/dist/lib/fetch-utils.js +1 -0
  49. package/dist/lib/git-provider-service.js +1 -0
  50. package/dist/lib/git-provider-setup/assets/coderflow_github_app.png +0 -0
  51. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -0
  52. package/dist/lib/git-provider-setup/index.js +1 -0
  53. package/dist/lib/git-provider-setup/setup-factory.js +1 -0
  54. package/dist/lib/git-provider-setup/setup-interface.js +1 -0
  55. package/dist/lib/git-providers/azure-devops-provider.js +1 -0
  56. package/dist/lib/git-providers/github-app-provider.js +1 -0
  57. package/dist/lib/git-providers/index.js +1 -0
  58. package/dist/lib/git-providers/provider-factory.js +1 -0
  59. package/dist/lib/git-providers/provider-interface.js +1 -0
  60. package/dist/lib/jira-client.js +1 -0
  61. package/dist/lib/logger.js +1 -0
  62. package/dist/lib/model-fetcher.js +1 -0
  63. package/dist/lib/notifications.js +1 -0
  64. package/dist/lib/oidc-auth.js +1 -0
  65. package/dist/lib/oidc-device-flow.js +1 -0
  66. package/dist/lib/passwordTokens.js +1 -0
  67. package/dist/lib/pin-cascade.js +1 -0
  68. package/dist/lib/provider-accounts.js +1 -0
  69. package/dist/lib/provider-oauth.js +1 -0
  70. package/dist/lib/provider-profile.js +1 -0
  71. package/dist/lib/provider-token-refresh.js +1 -0
  72. package/dist/lib/roles.js +1 -0
  73. package/dist/lib/secrets.js +1 -0
  74. package/dist/lib/state-capture.js +1 -0
  75. package/dist/lib/static-files.js +1 -0
  76. package/dist/lib/task-name-generator.js +1 -0
  77. package/dist/lib/users.js +1 -0
  78. package/dist/middleware/requireAuth.js +1 -0
  79. package/dist/middleware/requireInit.js +1 -0
  80. package/dist/middleware/requirePermission.js +1 -0
  81. package/dist/package-lock.json +4151 -0
  82. package/dist/package.json +50 -0
  83. package/dist/routes/apiKeys.js +1 -0
  84. package/dist/routes/auth-oidc.js +1 -0
  85. package/dist/routes/auth.js +1 -0
  86. package/dist/routes/build.js +1 -0
  87. package/dist/routes/containers.js +1 -0
  88. package/dist/routes/deploy-task.js +1 -0
  89. package/dist/routes/environment-management.js +1 -0
  90. package/dist/routes/environments.js +1 -0
  91. package/dist/routes/external-skills.js +1 -0
  92. package/dist/routes/git-credentials.js +1 -0
  93. package/dist/routes/git-provider-setup.js +1 -0
  94. package/dist/routes/health.js +1 -0
  95. package/dist/routes/jira.js +1 -0
  96. package/dist/routes/objective-management.js +1 -0
  97. package/dist/routes/password.js +1 -0
  98. package/dist/routes/prompt.js +1 -0
  99. package/dist/routes/provider-auth.js +1 -0
  100. package/dist/routes/qa.js +1 -0
  101. package/dist/routes/settings.js +1 -0
  102. package/dist/routes/skill-management.js +1 -0
  103. package/dist/routes/skills.js +1 -0
  104. package/dist/routes/tasks.js +2 -0
  105. package/dist/routes/templates.js +1 -0
  106. package/dist/routes/test-task.js +1 -0
  107. package/dist/routes/test.js +1 -0
  108. package/dist/routes/users.js +1 -0
  109. package/dist/routes/visualizations.js +1 -0
  110. package/dist/schemas/template-metadata.schema.json +178 -0
  111. package/dist/scripts/create-user.js +2 -0
  112. package/dist/shipped-skills/environment-instructions/SKILL.md +154 -0
  113. package/dist/shipped-skills/environment-templates/SKILL.md +282 -0
  114. package/dist/shipped-skills/objective-management/SKILL.md +238 -0
  115. package/dist/shipped-skills/skill-editor/SKILL.md +326 -0
  116. package/dist/start.js +2 -0
  117. package/dist/web-ui/public/activity-detail-modal.js +1 -0
  118. package/dist/web-ui/public/activity-feed.js +1 -0
  119. package/dist/web-ui/public/activity-formatters.js +1 -0
  120. package/dist/web-ui/public/agent-event-parser.js +1 -0
  121. package/dist/web-ui/public/app.js +1 -0
  122. package/dist/web-ui/public/approve-dialog.js +1 -0
  123. package/dist/web-ui/public/coderflow-logo-reversed.svg +46 -0
  124. package/dist/web-ui/public/coderflow-logo.svg +46 -0
  125. package/dist/web-ui/public/comments-widget.js +1 -0
  126. package/dist/web-ui/public/docs/.nojekyll +0 -0
  127. package/dist/web-ui/public/docs/README.md +26 -0
  128. package/dist/web-ui/public/docs/_sidebar.md +47 -0
  129. package/dist/web-ui/public/docs/admin/ai-providers.md +132 -0
  130. package/dist/web-ui/public/docs/admin/email-notifications.md +69 -0
  131. package/dist/web-ui/public/docs/admin/environments.md +215 -0
  132. package/dist/web-ui/public/docs/admin/git-providers.md +147 -0
  133. package/dist/web-ui/public/docs/admin/installation.md +313 -0
  134. package/dist/web-ui/public/docs/admin/skills.md +35 -0
  135. package/dist/web-ui/public/docs/admin/sso.md +241 -0
  136. package/dist/web-ui/public/docs/admin/users-and-roles.md +57 -0
  137. package/dist/web-ui/public/docs/code/cli.md +102 -0
  138. package/dist/web-ui/public/docs/code/files-and-editing.md +86 -0
  139. package/dist/web-ui/public/docs/code/terminal-access.md +110 -0
  140. package/dist/web-ui/public/docs/code/vscode-extension.md +58 -0
  141. package/dist/web-ui/public/docs/getting-started/core-concepts.md +129 -0
  142. package/dist/web-ui/public/docs/getting-started/overview.md +46 -0
  143. package/dist/web-ui/public/docs/index.html +151 -0
  144. package/dist/web-ui/public/docs/integrations/custom.md +58 -0
  145. package/dist/web-ui/public/docs/integrations/ibmi/overview.md +58 -0
  146. package/dist/web-ui/public/docs/integrations/overview.md +48 -0
  147. package/dist/web-ui/public/docs/objectives/qa-mode.md +90 -0
  148. package/dist/web-ui/public/docs/objectives/staged-tasks.md +60 -0
  149. package/dist/web-ui/public/docs/objectives/working-with-objectives.md +102 -0
  150. package/dist/web-ui/public/docs/tasks/approval-and-deployment.md +83 -0
  151. package/dist/web-ui/public/docs/tasks/creating-tasks.md +111 -0
  152. package/dist/web-ui/public/docs/tasks/judging.md +114 -0
  153. package/dist/web-ui/public/docs/tasks/providing-feedback.md +41 -0
  154. package/dist/web-ui/public/docs/tasks/task-groups.md +73 -0
  155. package/dist/web-ui/public/docs/tasks/winner-selection.md +75 -0
  156. package/dist/web-ui/public/docs/templates/batch-processing.md +152 -0
  157. package/dist/web-ui/public/docs/templates/task-templates.md +44 -0
  158. package/dist/web-ui/public/docs/templates/template-examples.md +93 -0
  159. package/dist/web-ui/public/docs/testing/profound-automated-testing.md +77 -0
  160. package/dist/web-ui/public/docs/testing/task-visualizations.md +42 -0
  161. package/dist/web-ui/public/docs/testing/testing-menu.md +118 -0
  162. package/dist/web-ui/public/environments.css +3942 -0
  163. package/dist/web-ui/public/environments.html +1791 -0
  164. package/dist/web-ui/public/environments.js +1 -0
  165. package/dist/web-ui/public/favicon-16.png +0 -0
  166. package/dist/web-ui/public/favicon-32.png +0 -0
  167. package/dist/web-ui/public/favicon.ico +0 -0
  168. package/dist/web-ui/public/feedback-widget.css +3133 -0
  169. package/dist/web-ui/public/feedback-widget.js +1 -0
  170. package/dist/web-ui/public/git-history.css +2663 -0
  171. package/dist/web-ui/public/git-history.html +272 -0
  172. package/dist/web-ui/public/git-history.js +1 -0
  173. package/dist/web-ui/public/git-status.js +1 -0
  174. package/dist/web-ui/public/index.html +1459 -0
  175. package/dist/web-ui/public/index.js +1 -0
  176. package/dist/web-ui/public/login.html +346 -0
  177. package/dist/web-ui/public/login.js +1 -0
  178. package/dist/web-ui/public/markdown-editor.js +1 -0
  179. package/dist/web-ui/public/markdown-file-editor.js +1 -0
  180. package/dist/web-ui/public/modal-maximize.js +1 -0
  181. package/dist/web-ui/public/notifications.js +1 -0
  182. package/dist/web-ui/public/server-health.js +1 -0
  183. package/dist/web-ui/public/settings.css +761 -0
  184. package/dist/web-ui/public/settings.html +1044 -0
  185. package/dist/web-ui/public/settings.js +1 -0
  186. package/dist/web-ui/public/setup-password.html +355 -0
  187. package/dist/web-ui/public/setup-password.js +1 -0
  188. package/dist/web-ui/public/skills.css +1949 -0
  189. package/dist/web-ui/public/skills.html +820 -0
  190. package/dist/web-ui/public/skills.js +1 -0
  191. package/dist/web-ui/public/sse-client.js +1 -0
  192. package/dist/web-ui/public/sse-shared-worker.js +1 -0
  193. package/dist/web-ui/public/styles.css +18614 -0
  194. package/dist/web-ui/public/task.html +1779 -0
  195. package/dist/web-ui/public/task.js +1 -0
  196. package/dist/web-ui/public/terminal.html +45 -0
  197. package/dist/web-ui/public/terminal.js +1 -0
  198. package/dist/web-ui/public/theme.js +1 -0
  199. package/dist/web-ui/public/users.html +298 -0
  200. package/dist/web-ui/public/users.js +1 -0
  201. package/dist/web-ui/public/variant-grouping.js +1 -0
  202. package/package.json +63 -0
@@ -0,0 +1,3133 @@
1
+ /**
2
+ * CoderFlow Feedback Widget Styles
3
+ * Namespaced to prevent conflicts with host applications
4
+ */
5
+
6
+ :root,
7
+ .profound-feedback-panel,
8
+ .profound-feedback-float-btn,
9
+ .profound-feedback-toast,
10
+ .profound-feedback-modal,
11
+ .profound-feedback-error-modal,
12
+ .profound-feedback-preview,
13
+ .profound-feedback-preview-backdrop {
14
+ --feedback-surface: #ffffff;
15
+ --feedback-surface-muted: #f5f7fb;
16
+ --feedback-border: #d9deeb;
17
+ --feedback-text: #1f2a44;
18
+ --feedback-text-muted: #5a6480;
19
+ --feedback-panel-shadow: -4px 0 20px rgba(0, 0, 0, 0.3);
20
+ --feedback-accent: #3f72ff;
21
+ --feedback-surface-hover: #e8e8e8;
22
+ --feedback-button-glow: rgba(63, 114, 255, 0.18);
23
+ }
24
+
25
+ :root[data-theme="dark"],
26
+ .profound-feedback-panel[data-theme="dark"],
27
+ .profound-feedback-float-btn[data-theme="dark"],
28
+ .profound-feedback-toast[data-theme="dark"],
29
+ .profound-feedback-modal[data-theme="dark"],
30
+ .profound-feedback-error-modal[data-theme="dark"],
31
+ .profound-feedback-preview[data-theme="dark"],
32
+ .profound-feedback-preview-backdrop[data-theme="dark"] {
33
+ --feedback-surface: #0f172a;
34
+ --feedback-surface-muted: #111c2f;
35
+ --feedback-border: #243352;
36
+ --feedback-text: #e2e8f0;
37
+ --feedback-text-muted: #94a3b8;
38
+ --feedback-panel-shadow: -4px 0 22px rgba(0, 0, 0, 0.6);
39
+ --feedback-accent: #8fb1ff;
40
+ --feedback-surface-hover: rgba(255, 255, 255, 0.06);
41
+ --feedback-button-glow: rgba(130, 165, 255, 0.3);
42
+ }
43
+
44
+ /* Floating button */
45
+ .profound-feedback-float-btn {
46
+ position: fixed;
47
+ bottom: 20px;
48
+ right: 20px;
49
+ width: 56px;
50
+ height: 56px;
51
+ border-radius: 50%;
52
+ background: linear-gradient(135deg, #3f72ff 0%, #3158c9 100%);
53
+ color: white;
54
+ border: 3px solid #f4b740;
55
+ font-size: 24px;
56
+ cursor: pointer;
57
+ box-shadow: 0 4px 12px rgba(63, 114, 255, 0.4);
58
+ z-index: 999998;
59
+ transition: transform 0.2s, box-shadow 0.2s;
60
+ display: flex;
61
+ align-items: center;
62
+ justify-content: center;
63
+ padding: 0;
64
+ margin: 0;
65
+ box-sizing: border-box;
66
+ }
67
+
68
+ .profound-feedback-float-btn:hover {
69
+ transform: scale(1.1);
70
+ box-shadow: 0 6px 16px rgba(63, 114, 255, 0.5);
71
+ }
72
+
73
+ .profound-feedback-float-btn:active {
74
+ transform: scale(0.95);
75
+ }
76
+
77
+ .profound-feedback-float-btn svg {
78
+ color: white;
79
+ stroke: white;
80
+ width: 24px;
81
+ height: 24px;
82
+ }
83
+
84
+ .profound-feedback-float-btn.selecting-mode {
85
+ background: linear-gradient(135deg, #2eb67d 0%, #25a268 100%);
86
+ box-shadow: 0 4px 12px rgba(46, 182, 125, 0.4);
87
+ animation: profound-pulse 2s ease-in-out infinite;
88
+ }
89
+
90
+ @keyframes profound-pulse {
91
+ 0%, 100% { transform: scale(1); }
92
+ 50% { transform: scale(1.05); }
93
+ }
94
+
95
+ @keyframes profound-feedback-flash {
96
+ 0% { transform: scale(0); opacity: 0.8; }
97
+ 100% { transform: scale(2); opacity: 0; }
98
+ }
99
+
100
+ /* Selection Buttons (Cancel/Done) */
101
+ .profound-selection-button {
102
+ box-sizing: border-box;
103
+ padding: 0;
104
+ margin: 0;
105
+ }
106
+
107
+ /* Slide-out panel */
108
+ .profound-feedback-panel {
109
+ position: fixed;
110
+ top: 0;
111
+ right: 0;
112
+ width: 400px;
113
+ min-width: 360px;
114
+ max-width: 800px;
115
+ height: 100vh;
116
+ background: var(--feedback-surface);
117
+ box-shadow: var(--feedback-panel-shadow);
118
+ z-index: 999999;
119
+ transform: translateX(100%); /* Start off-screen to the right */
120
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
121
+ display: flex;
122
+ flex-direction: column;
123
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
124
+ font-size: 14px;
125
+ box-sizing: border-box;
126
+ line-height: 1.5;
127
+ color: var(--feedback-text);
128
+ }
129
+
130
+ .profound-feedback-panel * {
131
+ box-sizing: border-box;
132
+ }
133
+
134
+ .profound-feedback-panel.open {
135
+ transform: translateX(0); /* Slide in */
136
+ }
137
+
138
+ .profound-feedback-panel.resizing {
139
+ transition: none !important; /* Disable transition during resize */
140
+ }
141
+
142
+ /* Left-side positioning */
143
+ .profound-feedback-panel.left {
144
+ right: auto;
145
+ left: 0;
146
+ transform: translateX(-100%);
147
+ }
148
+
149
+ .profound-feedback-panel.left.open {
150
+ transform: translateX(0);
151
+ }
152
+
153
+ .profound-feedback-panel.left .feedback-resize-handle {
154
+ left: auto;
155
+ right: 0;
156
+ border-left: none;
157
+ border-right: 1px solid var(--feedback-border);
158
+ }
159
+
160
+ .profound-feedback-panel.left .feedback-resize-handle:hover,
161
+ .profound-feedback-panel.left .feedback-resize-handle.active {
162
+ border-left: none;
163
+ border-right: 3px solid #3f72ff;
164
+ }
165
+
166
+ .profound-feedback-float-btn.dragging {
167
+ cursor: grabbing;
168
+ transition: none;
169
+ }
170
+
171
+ .profound-feedback-drop-target {
172
+ position: fixed;
173
+ bottom: 20px;
174
+ width: 56px;
175
+ height: 56px;
176
+ border-radius: 50%;
177
+ border: 2px dashed #3f72ff;
178
+ background: rgba(63, 114, 255, 0.1);
179
+ z-index: 999997;
180
+ display: none;
181
+ pointer-events: none;
182
+ box-sizing: border-box;
183
+ }
184
+
185
+ /* Resize handle */
186
+ .profound-feedback-panel .feedback-resize-handle {
187
+ position: absolute;
188
+ top: 0;
189
+ left: 0;
190
+ width: 12px;
191
+ height: 100%;
192
+ cursor: ew-resize;
193
+ background: transparent;
194
+ z-index: 1000;
195
+ border-left: 1px solid var(--feedback-border);
196
+ transition: background 0.2s, border-color 0.2s, border-width 0.2s;
197
+ }
198
+
199
+ .profound-feedback-panel .feedback-resize-handle:hover,
200
+ .profound-feedback-panel .feedback-resize-handle.active {
201
+ background: rgba(63, 114, 255, 0.1);
202
+ border-left: 3px solid #3f72ff;
203
+ }
204
+
205
+ .profound-feedback-panel.selecting {
206
+ pointer-events: none;
207
+ opacity: 0.5;
208
+ }
209
+
210
+ /* Header */
211
+ .profound-feedback-panel .feedback-header {
212
+ padding: 16px 20px;
213
+ background: var(--feedback-surface);
214
+ border-bottom: 1px solid var(--feedback-border);
215
+ color: var(--feedback-text);
216
+ display: flex;
217
+ align-items: center;
218
+ gap: 10px;
219
+ flex-shrink: 0;
220
+ }
221
+
222
+ .profound-feedback-panel .feedback-header-actions {
223
+ margin-left: auto;
224
+ display: inline-flex;
225
+ align-items: center;
226
+ gap: 10px;
227
+ }
228
+
229
+ .profound-feedback-panel .feedback-header h3 {
230
+ margin: 0;
231
+ font-size: 20px;
232
+ font-weight: 700;
233
+ flex: 1;
234
+ letter-spacing: -0.03em;
235
+ }
236
+
237
+ .profound-feedback-panel .feedback-task-name {
238
+ flex: 1;
239
+ min-width: 0;
240
+ font-size: 14px;
241
+ font-weight: 600;
242
+ color: var(--feedback-text);
243
+ text-decoration: none;
244
+ white-space: nowrap;
245
+ overflow: hidden;
246
+ text-overflow: ellipsis;
247
+ max-width: 200px;
248
+ padding: 2px 0;
249
+ }
250
+
251
+ /* Only show link hover style for actual links (task mode), not spans (QA mode) */
252
+ .profound-feedback-panel a.feedback-task-name:hover {
253
+ color: #0066cc;
254
+ text-decoration: underline;
255
+ }
256
+
257
+ .profound-feedback-panel span.feedback-task-name {
258
+ cursor: default;
259
+ }
260
+
261
+ .profound-feedback-panel .feedback-app-badge {
262
+ background: var(--feedback-surface-muted);
263
+ border: 1px solid var(--feedback-border);
264
+ color: var(--feedback-text-muted);
265
+ padding: 2px 8px;
266
+ border-radius: 12px;
267
+ font-size: 11px;
268
+ font-weight: 600;
269
+ text-transform: uppercase;
270
+ }
271
+
272
+ .profound-feedback-panel .feedback-agent-icon {
273
+ background: var(--feedback-surface-muted);
274
+ border: 1px solid var(--feedback-border);
275
+ color: var(--feedback-text-muted);
276
+ cursor: default;
277
+ padding: 4px;
278
+ height: auto;
279
+ display: inline-flex;
280
+ align-items: center;
281
+ justify-content: center;
282
+ border-radius: 50%;
283
+ transition: background 0.2s, border-color 0.2s, opacity 0.2s;
284
+ }
285
+
286
+ .profound-feedback-panel .feedback-agent-icon svg {
287
+ width: 14px;
288
+ height: 14px;
289
+ flex-shrink: 0;
290
+ }
291
+
292
+ /* Agent-specific colors */
293
+ .profound-feedback-panel .feedback-agent-icon[data-agent="claude"] {
294
+ color: #D97757;
295
+ background: #fef7f5;
296
+ border-color: #f4d4cb;
297
+ }
298
+
299
+ .profound-feedback-panel .feedback-agent-icon[data-agent="codex"] {
300
+ color: #10a37f;
301
+ background: #f0fdf9;
302
+ border-color: #c7f0e3;
303
+ }
304
+
305
+ .profound-feedback-panel .feedback-agent-icon[data-agent="gemini"] {
306
+ color: #4285f4;
307
+ background: #f5f9ff;
308
+ border-color: #d0e2ff;
309
+ }
310
+
311
+ .profound-feedback-panel .close-btn {
312
+ background: none;
313
+ border: none;
314
+ color: var(--feedback-text-muted);
315
+ font-size: 28px;
316
+ cursor: pointer;
317
+ padding: 0;
318
+ width: 32px;
319
+ height: 32px;
320
+ display: flex;
321
+ align-items: center;
322
+ justify-content: center;
323
+ border-radius: 4px;
324
+ transition: background 0.2s;
325
+ }
326
+
327
+ .profound-feedback-panel .close-btn svg {
328
+ stroke: var(--feedback-text-muted);
329
+ }
330
+
331
+ .profound-feedback-panel .close-btn:hover {
332
+ background: var(--feedback-surface-muted);
333
+ }
334
+
335
+ /* Body */
336
+ .profound-feedback-panel .feedback-body {
337
+ flex: 1;
338
+ padding: 0;
339
+ overflow-y: auto;
340
+ display: flex;
341
+ flex-direction: column;
342
+ gap: 0;
343
+ }
344
+
345
+ /* Activity Feed Section */
346
+ .profound-feedback-panel .widget-activity-section {
347
+ flex: 1;
348
+ display: flex;
349
+ flex-direction: column;
350
+ min-height: 200px;
351
+ max-height: 500px;
352
+ border-bottom: 2px solid var(--feedback-border);
353
+ }
354
+
355
+ .profound-feedback-panel .widget-activity-header {
356
+ padding: 12px 20px;
357
+ background: var(--feedback-surface-muted);
358
+ border-bottom: 1px solid var(--feedback-border);
359
+ flex-shrink: 0;
360
+ }
361
+
362
+ .profound-feedback-panel .widget-activity-header h4 {
363
+ margin: 0;
364
+ font-size: 13px;
365
+ font-weight: 600;
366
+ color: var(--feedback-text);
367
+ text-transform: uppercase;
368
+ letter-spacing: 0.5px;
369
+ }
370
+
371
+ .profound-feedback-panel .widget-activity-header .activity-count {
372
+ background: #3f72ff;
373
+ color: white;
374
+ padding: 2px 8px;
375
+ border-radius: 10px;
376
+ font-size: 11px;
377
+ font-weight: 600;
378
+ margin-left: 8px;
379
+ }
380
+
381
+ .profound-feedback-panel .activity-feed {
382
+ flex: 1;
383
+ overflow-y: auto;
384
+ overflow-x: hidden;
385
+ padding: 20px 12px 12px 12px;
386
+ background: var(--feedback-surface-muted);
387
+ min-height: 0;
388
+ }
389
+
390
+ .profound-feedback-panel .activity-placeholder {
391
+ text-align: left;
392
+ color: var(--feedback-text-muted);
393
+ padding: 12px 0 8px 42px;
394
+ font-style: italic;
395
+ }
396
+
397
+ /* Activity Timeline Items */
398
+ .profound-feedback-panel .activity-timeline-item {
399
+ display: flex;
400
+ align-items: flex-start;
401
+ margin-bottom: 20px;
402
+ position: relative;
403
+ padding: 6px 8px;
404
+ margin-left: 8px;
405
+ }
406
+
407
+ /* User message styling */
408
+ .profound-feedback-panel .activity-feed .activity-timeline-item.user-message {
409
+ background-color: rgba(46, 182, 125, 0.05) !important;
410
+ border-left: 3px solid #2eb67d !important;
411
+ border-radius: 6px !important;
412
+ padding: 6px 8px !important;
413
+ margin-left: 8px !important;
414
+ margin-bottom: 20px !important;
415
+ }
416
+
417
+ .profound-feedback-panel .activity-feed .activity-timeline-item.user-message .activity-timeline-marker {
418
+ border-color: #2eb67d !important;
419
+ background: #e8f5e9 !important;
420
+ }
421
+
422
+ .profound-feedback-panel .activity-feed .activity-timeline-item.user-message .activity-timeline-action {
423
+ color: #2eb67d !important;
424
+ font-weight: 600 !important;
425
+ }
426
+
427
+ .profound-feedback-panel .activity-feed .activity-timeline-item.user-message.expandable:hover {
428
+ background-color: rgba(46, 182, 125, 0.1) !important;
429
+ cursor: pointer !important;
430
+ }
431
+
432
+ /* Agent response styling */
433
+ .profound-feedback-panel .activity-feed .activity-timeline-item.agent-response {
434
+ background-color: rgba(63, 114, 255, 0.04) !important;
435
+ border-left: 3px solid #3f72ff !important;
436
+ border-radius: 6px !important;
437
+ padding: 6px 8px !important;
438
+ margin-left: 8px !important;
439
+ margin-bottom: 20px !important;
440
+ }
441
+
442
+ .profound-feedback-panel .activity-feed .activity-timeline-item.agent-response .activity-timeline-marker {
443
+ border-color: #3f72ff !important;
444
+ background: #e3f2fd !important;
445
+ }
446
+
447
+ .profound-feedback-panel .activity-feed .activity-timeline-item.agent-response .activity-timeline-action {
448
+ color: #3f72ff !important;
449
+ font-weight: 600 !important;
450
+ }
451
+
452
+ .profound-feedback-panel .activity-feed .activity-timeline-item.agent-response.expandable:hover {
453
+ background-color: rgba(63, 114, 255, 0.08) !important;
454
+ cursor: pointer !important;
455
+ }
456
+
457
+ .profound-feedback-panel .activity-timeline-item::before {
458
+ content: '';
459
+ position: absolute;
460
+ left: 19px;
461
+ top: 40px;
462
+ bottom: -20px;
463
+ width: 2px;
464
+ background: var(--feedback-border);
465
+ }
466
+
467
+ .profound-feedback-panel .activity-timeline-item:last-child::before {
468
+ display: none;
469
+ }
470
+
471
+ .profound-feedback-panel .activity-timeline-marker {
472
+ width: 40px;
473
+ height: 40px;
474
+ border-radius: 50%;
475
+ background: var(--feedback-surface-muted);
476
+ border: 3px solid var(--feedback-border);
477
+ display: flex;
478
+ align-items: center;
479
+ justify-content: center;
480
+ font-size: 18px;
481
+ flex-shrink: 0;
482
+ z-index: 1;
483
+ position: relative;
484
+ }
485
+
486
+ .profound-feedback-panel .activity-timeline-item.success .activity-timeline-marker {
487
+ border-color: #2eb67d;
488
+ background: var(--feedback-surface-muted);
489
+ }
490
+
491
+ .profound-feedback-panel .activity-timeline-item.error .activity-timeline-marker {
492
+ border-color: #e55368;
493
+ background: var(--feedback-surface-muted);
494
+ }
495
+
496
+ .profound-feedback-panel .activity-timeline-item.running .activity-timeline-marker {
497
+ border-color: #3f72ff;
498
+ background: #e3f2fd;
499
+ }
500
+
501
+ .profound-feedback-panel .activity-timeline-content {
502
+ flex: 1;
503
+ padding-left: 16px;
504
+ padding-top: 4px;
505
+ min-width: 0;
506
+ max-width: 100%;
507
+ overflow: hidden;
508
+ }
509
+
510
+ .profound-feedback-panel .activity-timeline-action {
511
+ font-weight: 600;
512
+ font-size: 14px;
513
+ color: var(--feedback-text);
514
+ margin-bottom: 4px;
515
+ }
516
+
517
+ .profound-feedback-panel .activity-timeline-action .expand-hint {
518
+ color: #3f72ff;
519
+ margin-left: 6px;
520
+ font-size: 11px;
521
+ font-weight: normal;
522
+ }
523
+
524
+ .profound-feedback-panel .activity-timeline-detail {
525
+ font-size: 13px;
526
+ color: var(--feedback-text-muted);
527
+ line-height: 1.5;
528
+ word-break: break-word;
529
+ overflow: hidden;
530
+ text-overflow: ellipsis;
531
+ white-space: nowrap;
532
+ }
533
+
534
+ .profound-feedback-panel .activity-timeline-status {
535
+ font-size: 16px;
536
+ flex-shrink: 0;
537
+ margin-left: 8px;
538
+ margin-top: 8px;
539
+ }
540
+
541
+ .profound-feedback-panel .activity-timeline-item.success .activity-timeline-status {
542
+ color: #2eb67d;
543
+ }
544
+
545
+ .profound-feedback-panel .activity-timeline-item.error .activity-timeline-status {
546
+ color: #e55368;
547
+ }
548
+
549
+ .profound-feedback-panel .activity-timeline-item.running .activity-timeline-status {
550
+ color: #f4b740;
551
+ }
552
+
553
+ .profound-feedback-panel .activity-timeline-item.expandable {
554
+ cursor: pointer;
555
+ }
556
+
557
+ .profound-feedback-panel .activity-timeline-item.expandable:hover .activity-timeline-content {
558
+ color: #3f72ff;
559
+ }
560
+
561
+ .profound-feedback-panel .activity-timeline-item.expandable:hover .activity-timeline-action {
562
+ color: #3f72ff;
563
+ }
564
+
565
+ /* Load More button */
566
+ .profound-feedback-panel .activity-load-more {
567
+ text-align: center;
568
+ padding: 8px 0;
569
+ margin-bottom: 8px;
570
+ }
571
+
572
+ .profound-feedback-panel .load-more-activity-btn {
573
+ background: var(--feedback-surface);
574
+ border: 1px solid var(--feedback-border);
575
+ color: var(--feedback-text-muted);
576
+ padding: 6px 12px;
577
+ border-radius: 4px;
578
+ font-size: 12px;
579
+ cursor: pointer;
580
+ transition: all 0.2s ease;
581
+ }
582
+
583
+ .profound-feedback-panel .load-more-activity-btn:hover {
584
+ background: var(--feedback-surface-muted);
585
+ border-color: var(--feedback-border);
586
+ }
587
+
588
+ /* Typing indicator */
589
+ .profound-feedback-panel .activity-typing-indicator {
590
+ display: flex;
591
+ align-items: center;
592
+ justify-content: flex-start;
593
+ gap: 4px;
594
+ padding: 12px 0 8px 42px;
595
+ }
596
+
597
+ .profound-feedback-panel .activity-typing-dot {
598
+ width: 8px;
599
+ height: 8px;
600
+ border-radius: 50%;
601
+ background: var(--feedback-text);
602
+ opacity: 0.6;
603
+ animation: profound-typing-bounce 1.4s infinite ease-in-out;
604
+ }
605
+
606
+ .profound-feedback-panel .activity-typing-dot:nth-child(1) {
607
+ animation-delay: 0s;
608
+ }
609
+
610
+ .profound-feedback-panel .activity-typing-dot:nth-child(2) {
611
+ animation-delay: 0.2s;
612
+ }
613
+
614
+ .profound-feedback-panel .activity-typing-dot:nth-child(3) {
615
+ animation-delay: 0.4s;
616
+ }
617
+
618
+ @keyframes profound-typing-bounce {
619
+ 0%, 60%, 100% {
620
+ transform: translateY(0);
621
+ opacity: 0.6;
622
+ }
623
+ 30% {
624
+ transform: translateY(-8px);
625
+ opacity: 1;
626
+ }
627
+ }
628
+
629
+ .profound-feedback-panel .activity-elapsed-time {
630
+ margin-left: 8px;
631
+ font-size: 12px;
632
+ color: var(--feedback-text-muted);
633
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 'Consolas', monospace;
634
+ }
635
+
636
+ /* Feedback Input Section */
637
+ .profound-feedback-panel .widget-feedback-section {
638
+ flex-shrink: 0;
639
+ padding: 8px 12px 12px 12px;
640
+ display: flex;
641
+ flex-direction: column;
642
+ gap: 8px;
643
+ background: var(--feedback-surface);
644
+ position: relative;
645
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
646
+ }
647
+
648
+ .profound-feedback-panel .widget-feedback-section.drag-over {
649
+ border: 2px dashed #3f72ff;
650
+ border-radius: 6px;
651
+ box-shadow: 0 0 0 3px rgba(63,114,255,0.2);
652
+ background: rgba(63,114,255,0.05);
653
+ }
654
+
655
+ .profound-feedback-panel .widget-feedback-section.drag-over::after {
656
+ content: 'Drop files here';
657
+ position: absolute;
658
+ top: 50%;
659
+ left: 50%;
660
+ transform: translate(-50%, -50%);
661
+ padding: 8px 16px;
662
+ background: #3f72ff;
663
+ color: white;
664
+ border-radius: 6px;
665
+ font-size: 14px;
666
+ font-weight: 500;
667
+ pointer-events: none;
668
+ z-index: 10;
669
+ }
670
+
671
+ .profound-feedback-panel .follow-up-input-row {
672
+ position: relative;
673
+ }
674
+
675
+ .profound-feedback-panel .inline-follow-up-textarea {
676
+ width: 100% !important;
677
+ min-height: 42px !important;
678
+ max-height: 200px !important;
679
+ height: auto;
680
+ padding: 8px 42px 8px 10px !important;
681
+ border: 1px solid var(--feedback-border) !important;
682
+ border-radius: 6px !important;
683
+ font-family: inherit !important;
684
+ font-size: 14px !important;
685
+ color: var(--feedback-text) !important;
686
+ background: var(--feedback-surface) !important;
687
+ line-height: 1.4 !important;
688
+ resize: none !important;
689
+ box-sizing: border-box !important;
690
+ transition: height 0.1s ease, border-color 0.2s ease, box-shadow 0.2s ease !important;
691
+ overflow-y: hidden;
692
+ }
693
+
694
+ .profound-feedback-panel .inline-follow-up-textarea:focus {
695
+ outline: none !important;
696
+ border-color: #3f72ff !important;
697
+ box-shadow: 0 0 0 3px rgba(63,114,255,0.1) !important;
698
+ }
699
+
700
+ .profound-feedback-panel .inline-follow-up-textarea:disabled {
701
+ opacity: 0.6 !important;
702
+ cursor: not-allowed !important;
703
+ }
704
+
705
+ .profound-feedback-panel .inline-follow-up-submit {
706
+ position: absolute;
707
+ top: 50%;
708
+ transform: translateY(-50%);
709
+ right: 8px;
710
+ width: 36px;
711
+ height: 36px;
712
+ padding: 0;
713
+ border: 1px solid var(--feedback-border);
714
+ border-radius: 6px;
715
+ background: var(--feedback-surface);
716
+ color: var(--feedback-text-muted);
717
+ font-size: 16px;
718
+ cursor: pointer;
719
+ transition: all 0.2s ease;
720
+ display: flex;
721
+ align-items: center;
722
+ justify-content: center;
723
+ }
724
+
725
+ .profound-feedback-panel .inline-follow-up-submit:hover:not(:disabled) {
726
+ background: rgba(63, 114, 255, 0.08);
727
+ border-color: #3f72ff;
728
+ color: #3f72ff;
729
+ transform: translateY(-50%);
730
+ box-shadow: 0 2px 6px rgba(63, 114, 255, 0.15);
731
+ }
732
+
733
+ .profound-feedback-panel .inline-follow-up-submit:active:not(:disabled) {
734
+ transform: translateY(-50%);
735
+ background: rgba(63, 114, 255, 0.15);
736
+ }
737
+
738
+ .profound-feedback-panel .inline-follow-up-submit:disabled {
739
+ background: var(--feedback-surface-muted);
740
+ color: var(--feedback-text-muted);
741
+ cursor: not-allowed;
742
+ opacity: 0.4;
743
+ }
744
+
745
+ /* Markdown editor wrapper for feedback input */
746
+ .profound-feedback-panel .feedback-editor-wrapper {
747
+ display: flex;
748
+ flex-direction: column;
749
+ flex: 1;
750
+ min-width: 0;
751
+ border: 1px solid var(--feedback-border);
752
+ border-radius: 4px;
753
+ background: var(--feedback-surface);
754
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
755
+ overflow: visible; /* Allow dropdown menus to escape */
756
+ }
757
+
758
+ .profound-feedback-panel .feedback-editor-wrapper:focus-within {
759
+ border-color: #3f72ff;
760
+ box-shadow: 0 0 0 3px rgba(63,114,255,0.1);
761
+ }
762
+
763
+ .profound-feedback-panel .follow-up-toolbar {
764
+ padding: 6px 8px;
765
+ background: var(--feedback-surface-muted);
766
+ border-bottom: 1px solid var(--feedback-border);
767
+ display: flex;
768
+ flex-wrap: wrap;
769
+ gap: 2px;
770
+ border-radius: 3px 3px 0 0; /* Match wrapper's top corners (4px - 1px for border) */
771
+ position: relative; /* For dropdown z-index stacking */
772
+ }
773
+
774
+ .profound-feedback-panel .follow-up-toolbar-hidden {
775
+ display: none !important;
776
+ }
777
+
778
+ .profound-feedback-panel .follow-up-toolbar > button,
779
+ .profound-feedback-panel .follow-up-toolbar > .markdown-toolbar-dropdown > button {
780
+ display: flex;
781
+ align-items: center;
782
+ justify-content: center;
783
+ width: 28px;
784
+ height: 28px;
785
+ padding: 0;
786
+ border: none;
787
+ border-radius: 4px;
788
+ background: transparent;
789
+ color: var(--feedback-text-muted);
790
+ cursor: pointer;
791
+ transition: background 0.15s ease, color 0.15s ease;
792
+ }
793
+
794
+ .profound-feedback-panel .follow-up-toolbar > button:hover,
795
+ .profound-feedback-panel .follow-up-toolbar > .markdown-toolbar-dropdown > button:hover {
796
+ background: var(--feedback-surface-hover);
797
+ color: var(--feedback-text);
798
+ }
799
+
800
+ .profound-feedback-panel .follow-up-toolbar > button.active,
801
+ .profound-feedback-panel .follow-up-toolbar > .markdown-toolbar-dropdown > button.active {
802
+ background: rgba(63, 114, 255, 0.15);
803
+ color: #3f72ff;
804
+ }
805
+
806
+ .profound-feedback-panel .follow-up-toolbar .toolbar-separator {
807
+ width: 1px;
808
+ height: 20px;
809
+ background: var(--feedback-border);
810
+ margin: 4px 4px;
811
+ }
812
+
813
+ /* Dropdown menu styles for the markdown toolbar in feedback widget */
814
+ .profound-feedback-panel .markdown-toolbar-dropdown {
815
+ position: relative;
816
+ display: inline-flex;
817
+ }
818
+
819
+ .profound-feedback-panel .markdown-toolbar-dropdown-btn {
820
+ display: flex;
821
+ align-items: center;
822
+ gap: 2px;
823
+ }
824
+
825
+ .profound-feedback-panel .markdown-toolbar-dropdown-btn .dropdown-arrow {
826
+ opacity: 0.6;
827
+ margin-left: 2px;
828
+ }
829
+
830
+ .profound-feedback-panel .markdown-toolbar-dropdown-menu {
831
+ position: absolute;
832
+ top: 100%;
833
+ left: 0;
834
+ min-width: 140px;
835
+ background: var(--feedback-surface);
836
+ border: 1px solid var(--feedback-border);
837
+ border-radius: 4px;
838
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
839
+ z-index: 1000;
840
+ margin-top: 4px;
841
+ }
842
+
843
+ .profound-feedback-panel .markdown-dropdown-item {
844
+ display: flex;
845
+ align-items: center;
846
+ width: 100%;
847
+ padding: 8px 12px;
848
+ border: none;
849
+ background: none;
850
+ cursor: pointer;
851
+ text-align: left;
852
+ color: var(--feedback-text);
853
+ font-size: 13px;
854
+ }
855
+
856
+ .profound-feedback-panel .markdown-dropdown-item:hover {
857
+ background: var(--feedback-surface-muted);
858
+ }
859
+
860
+ .profound-feedback-panel .markdown-dropdown-item:first-child {
861
+ border-radius: 4px 4px 0 0;
862
+ }
863
+
864
+ .profound-feedback-panel .markdown-dropdown-item:last-child {
865
+ border-radius: 0 0 4px 4px;
866
+ }
867
+
868
+ .profound-feedback-panel .markdown-color-grid {
869
+ display: grid;
870
+ grid-template-columns: repeat(3, 1fr);
871
+ gap: 4px;
872
+ padding: 8px;
873
+ }
874
+
875
+ .profound-feedback-panel .markdown-color-btn {
876
+ width: 24px;
877
+ height: 24px;
878
+ border: 1px solid var(--feedback-border);
879
+ border-radius: 4px;
880
+ cursor: pointer;
881
+ transition: transform 0.15s ease, box-shadow 0.15s ease;
882
+ }
883
+
884
+ .profound-feedback-panel .markdown-color-btn:hover {
885
+ transform: scale(1.1);
886
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
887
+ }
888
+
889
+ /* Dark theme adjustments for dropdown */
890
+ .profound-feedback-panel[data-theme="dark"] .markdown-toolbar-dropdown-menu {
891
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
892
+ }
893
+
894
+ .profound-feedback-panel[data-theme="dark"] .markdown-dropdown-item:hover {
895
+ background: rgba(255, 255, 255, 0.08);
896
+ }
897
+
898
+ .profound-feedback-panel .follow-up-editor-container {
899
+ position: relative;
900
+ flex: 1;
901
+ min-width: 0;
902
+ }
903
+
904
+ .profound-feedback-panel .follow-up-editor-container .markdown-editor {
905
+ min-height: 60px;
906
+ max-height: 160px;
907
+ padding: 8px 50px 8px 10px; /* Right padding reserves space for submit button */
908
+ border: none;
909
+ border-radius: 0;
910
+ font-size: 14px;
911
+ line-height: 1.4;
912
+ overflow-y: auto;
913
+ background: transparent;
914
+ color: var(--feedback-text);
915
+ text-align: left;
916
+ }
917
+
918
+ .profound-feedback-panel .follow-up-editor-container .markdown-editor:focus {
919
+ outline: none;
920
+ }
921
+
922
+ .profound-feedback-panel .follow-up-editor-container .markdown-editor[data-placeholder]:empty:before {
923
+ content: attr(data-placeholder);
924
+ color: var(--feedback-text-muted);
925
+ pointer-events: none;
926
+ }
927
+
928
+ /* QA mode: larger editor */
929
+ .profound-feedback-panel .qa-form-field .follow-up-editor-container .markdown-editor {
930
+ min-height: 100px;
931
+ }
932
+
933
+ /* Position submit button centered relative to editor container */
934
+ .profound-feedback-panel .follow-up-input-row {
935
+ position: relative;
936
+ }
937
+
938
+ .profound-feedback-panel .follow-up-input-row > .inline-follow-up-submit {
939
+ position: absolute;
940
+ right: 8px;
941
+ top: 50%;
942
+ transform: translateY(-50%);
943
+ }
944
+
945
+ /* When toolbar is visible, offset the button to center on editor area only */
946
+ .profound-feedback-panel .feedback-editor-wrapper:has(.follow-up-toolbar:not(.follow-up-toolbar-hidden)) ~ .inline-follow-up-submit {
947
+ /* Toolbar is ~41px (6px padding * 2 + 28px button + 1px border), so offset by half */
948
+ top: calc(50% + 20px);
949
+ }
950
+
951
+ /* Selected element info */
952
+ .profound-feedback-panel .element-info {
953
+ padding: 12px;
954
+ background: var(--feedback-surface-muted);
955
+ border-left: 4px solid #3f72ff;
956
+ border-radius: 4px;
957
+ font-size: 12px;
958
+ display: flex;
959
+ flex-direction: column;
960
+ gap: 8px;
961
+ }
962
+
963
+ .profound-feedback-panel .element-info strong {
964
+ display: block;
965
+ margin-bottom: 4px;
966
+ color: var(--feedback-text);
967
+ }
968
+
969
+ .profound-feedback-panel .element-info .selected-elements-list {
970
+ display: flex;
971
+ flex-direction: column;
972
+ gap: 6px;
973
+ max-height: 200px;
974
+ overflow-y: auto;
975
+ }
976
+
977
+ .profound-feedback-panel .element-info .selected-element-item {
978
+ display: flex;
979
+ align-items: start;
980
+ gap: 8px;
981
+ padding: 6px;
982
+ background: var(--feedback-surface);
983
+ border-radius: 4px;
984
+ border: 1px solid var(--feedback-border);
985
+ }
986
+
987
+ .profound-feedback-panel .element-info span {
988
+ flex: 1;
989
+ font-family: monospace;
990
+ word-break: break-all;
991
+ }
992
+
993
+ .profound-feedback-panel .btn-mini {
994
+ background: none;
995
+ border: none;
996
+ color: var(--feedback-text-muted);
997
+ font-size: 18px;
998
+ cursor: pointer;
999
+ padding: 0;
1000
+ width: 20px;
1001
+ height: 20px;
1002
+ display: flex;
1003
+ align-items: center;
1004
+ justify-content: center;
1005
+ border-radius: 50%;
1006
+ transition: background 0.2s;
1007
+ }
1008
+
1009
+ .profound-feedback-panel .btn-mini:hover {
1010
+ background: rgba(0, 0, 0, 0.1);
1011
+ }
1012
+
1013
+ .profound-feedback-panel .feedback-body label {
1014
+ display: block;
1015
+ margin-bottom: 6px;
1016
+ font-weight: 500;
1017
+ color: var(--feedback-text);
1018
+ }
1019
+
1020
+ /* Action buttons */
1021
+ .profound-feedback-panel .feedback-actions {
1022
+ display: flex;
1023
+ gap: 8px;
1024
+ }
1025
+
1026
+ .profound-feedback-panel .btn-secondary {
1027
+ flex: 1;
1028
+ padding: 10px 16px;
1029
+ background: var(--feedback-surface-muted);
1030
+ border: 1px solid var(--feedback-border);
1031
+ border-radius: 4px;
1032
+ font-size: 13px;
1033
+ cursor: pointer;
1034
+ transition: all 0.2s;
1035
+ white-space: nowrap;
1036
+ color: var(--feedback-text);
1037
+ box-shadow: none;
1038
+ }
1039
+
1040
+ .profound-feedback-panel .btn-secondary:hover:not(:disabled) {
1041
+ background: var(--feedback-surface-hover);
1042
+ border-color: var(--feedback-accent);
1043
+ color: var(--feedback-text);
1044
+ box-shadow: 0 6px 18px var(--feedback-button-glow);
1045
+ }
1046
+
1047
+ .profound-feedback-panel .btn-secondary:disabled {
1048
+ opacity: 0.5;
1049
+ cursor: not-allowed;
1050
+ }
1051
+
1052
+ /* Advanced options */
1053
+ .profound-feedback-panel .advanced-options {
1054
+ border: 1px solid var(--feedback-border);
1055
+ border-radius: 4px;
1056
+ padding: 0;
1057
+ }
1058
+
1059
+ .profound-feedback-panel .advanced-options summary {
1060
+ padding: 10px 12px;
1061
+ cursor: pointer;
1062
+ user-select: none;
1063
+ font-size: 13px;
1064
+ font-weight: 500;
1065
+ background: var(--feedback-surface-muted);
1066
+ border-radius: 4px;
1067
+ transition: background 0.2s;
1068
+ color: var(--feedback-text);
1069
+ }
1070
+
1071
+ .profound-feedback-panel .advanced-options summary:hover {
1072
+ background: var(--feedback-surface-muted);
1073
+ }
1074
+
1075
+ .profound-feedback-panel .advanced-options[open] summary {
1076
+ border-bottom: 1px solid var(--feedback-border);
1077
+ border-radius: 4px 4px 0 0;
1078
+ }
1079
+
1080
+ .profound-feedback-panel #context-options {
1081
+ padding: 12px;
1082
+ display: flex;
1083
+ flex-direction: column;
1084
+ gap: 8px;
1085
+ }
1086
+
1087
+ .profound-feedback-panel #context-options label {
1088
+ display: flex;
1089
+ align-items: center;
1090
+ gap: 8px;
1091
+ font-size: 13px;
1092
+ font-weight: normal;
1093
+ margin: 0;
1094
+ cursor: pointer;
1095
+ }
1096
+
1097
+ /* Toast notification */
1098
+ .profound-feedback-toast {
1099
+ position: fixed;
1100
+ bottom: 90px;
1101
+ right: 20px;
1102
+ background: var(--feedback-text);
1103
+ color: var(--feedback-surface);
1104
+ padding: 14px 20px;
1105
+ border-radius: 4px;
1106
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
1107
+ z-index: 1000000;
1108
+ font-size: 14px;
1109
+ opacity: 0;
1110
+ transform: translateY(20px);
1111
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1112
+ }
1113
+
1114
+ .profound-feedback-toast.show {
1115
+ opacity: 1;
1116
+ transform: translateY(0);
1117
+ }
1118
+
1119
+ /* Selection overlay */
1120
+ #element-selection-overlay {
1121
+ box-shadow: 0 0 0 2px rgba(63, 114, 255, 0.5);
1122
+ transition: all 0.1s ease;
1123
+ }
1124
+
1125
+ /* Persistent selection indicators */
1126
+ .profound-selected-element-indicator {
1127
+ position: fixed;
1128
+ pointer-events: none;
1129
+ border: 3px solid #f4b740;
1130
+ background: rgba(244, 183, 64, 0.15);
1131
+ z-index: 999997;
1132
+ box-shadow: 0 0 0 1px rgba(244, 183, 64, 0.3), 0 4px 12px rgba(244, 183, 64, 0.4);
1133
+ transition: all 0.2s ease;
1134
+ }
1135
+
1136
+ .profound-selected-element-indicator::after {
1137
+ content: '';
1138
+ position: absolute;
1139
+ top: -12px;
1140
+ right: -12px;
1141
+ width: 24px;
1142
+ height: 24px;
1143
+ background: #f4b740;
1144
+ border-radius: 50%;
1145
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
1146
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>');
1147
+ background-size: 14px 14px;
1148
+ background-position: center;
1149
+ background-repeat: no-repeat;
1150
+ pointer-events: auto;
1151
+ cursor: pointer;
1152
+ z-index: 1;
1153
+ }
1154
+
1155
+ .profound-selected-element-indicator::after:hover {
1156
+ transform: scale(1.1);
1157
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
1158
+ }
1159
+
1160
+ /* Scrollbar styling - SCOPED */
1161
+ .profound-feedback-panel .activity-feed::-webkit-scrollbar,
1162
+ .profound-feedback-panel .feedback-body::-webkit-scrollbar,
1163
+ .profound-feedback-panel .selected-elements-list::-webkit-scrollbar,
1164
+ .profound-feedback-panel .attached-files-list::-webkit-scrollbar {
1165
+ width: 8px;
1166
+ height: 8px;
1167
+ }
1168
+
1169
+ .profound-feedback-panel .activity-feed::-webkit-scrollbar-track,
1170
+ .profound-feedback-panel .feedback-body::-webkit-scrollbar-track,
1171
+ .profound-feedback-panel .selected-elements-list::-webkit-scrollbar-track,
1172
+ .profound-feedback-panel .attached-files-list::-webkit-scrollbar-track {
1173
+ background: #f1f1f1;
1174
+ }
1175
+
1176
+ .profound-feedback-panel .activity-feed::-webkit-scrollbar-thumb,
1177
+ .profound-feedback-panel .feedback-body::-webkit-scrollbar-thumb,
1178
+ .profound-feedback-panel .selected-elements-list::-webkit-scrollbar-thumb,
1179
+ .profound-feedback-panel .attached-files-list::-webkit-scrollbar-thumb {
1180
+ background: #c1c1c1;
1181
+ border-radius: 4px;
1182
+ }
1183
+
1184
+ .profound-feedback-panel .activity-feed::-webkit-scrollbar-thumb:hover,
1185
+ .profound-feedback-panel .feedback-body::-webkit-scrollbar-thumb:hover,
1186
+ .profound-feedback-panel .selected-elements-list::-webkit-scrollbar-thumb:hover,
1187
+ .profound-feedback-panel .attached-files-list::-webkit-scrollbar-thumb:hover {
1188
+ background: #a1a1a1;
1189
+ }
1190
+
1191
+ /* Attached files list */
1192
+ .profound-feedback-panel .attached-files-list {
1193
+ margin-top: 8px;
1194
+ padding: 8px;
1195
+ background: var(--feedback-surface-muted);
1196
+ border: 1px solid var(--feedback-border);
1197
+ border-radius: 4px;
1198
+ max-height: 150px;
1199
+ overflow-y: auto;
1200
+ }
1201
+
1202
+ .profound-feedback-panel .attached-file-item {
1203
+ display: flex;
1204
+ align-items: center;
1205
+ gap: 4px;
1206
+ padding: 6px 8px;
1207
+ background: var(--feedback-surface);
1208
+ border: 1px solid var(--feedback-border);
1209
+ border-radius: 4px;
1210
+ margin-bottom: 6px;
1211
+ font-size: 0.9em;
1212
+ }
1213
+
1214
+ .profound-feedback-panel .attached-file-item:last-child {
1215
+ margin-bottom: 0;
1216
+ }
1217
+
1218
+ .profound-feedback-panel .attached-file-item .file-name {
1219
+ flex: 1;
1220
+ font-weight: 500;
1221
+ color: var(--feedback-text);
1222
+ overflow: hidden;
1223
+ text-overflow: ellipsis;
1224
+ white-space: nowrap;
1225
+ min-width: 0;
1226
+ }
1227
+
1228
+ .profound-feedback-panel .attached-file-item .file-size {
1229
+ color: var(--feedback-text-muted);
1230
+ font-size: 0.85em;
1231
+ font-weight: normal;
1232
+ white-space: nowrap;
1233
+ }
1234
+
1235
+ .profound-feedback-panel .attached-file-item .remove-file-btn {
1236
+ padding: 4px;
1237
+ cursor: pointer;
1238
+ color: var(--feedback-text-muted);
1239
+ background: transparent;
1240
+ border: none;
1241
+ line-height: 1;
1242
+ border-radius: 3px;
1243
+ transition: all 0.2s ease;
1244
+ display: flex;
1245
+ align-items: center;
1246
+ justify-content: center;
1247
+ flex-shrink: 0;
1248
+ }
1249
+
1250
+ .profound-feedback-panel .attached-file-item .remove-file-btn:hover {
1251
+ color: #e74c3c;
1252
+ background: var(--feedback-surface-muted);
1253
+ }
1254
+
1255
+ .profound-feedback-panel .attached-file-edit {
1256
+ background: none;
1257
+ border: none;
1258
+ color: #3f72ff;
1259
+ cursor: pointer;
1260
+ padding: 4px 8px;
1261
+ font-size: 13px;
1262
+ transition: opacity 0.2s ease;
1263
+ display: flex;
1264
+ align-items: center;
1265
+ gap: 4px;
1266
+ flex-shrink: 0;
1267
+ }
1268
+
1269
+ .profound-feedback-panel .attached-file-edit svg {
1270
+ stroke: currentColor;
1271
+ flex-shrink: 0;
1272
+ }
1273
+
1274
+ .profound-feedback-panel .attached-file-edit:hover {
1275
+ opacity: 0.7;
1276
+ }
1277
+
1278
+ /* Image Editor Modal */
1279
+ .profound-image-editor-modal {
1280
+ display: none;
1281
+ position: fixed;
1282
+ top: 0;
1283
+ left: 0;
1284
+ right: 0;
1285
+ bottom: 0;
1286
+ z-index: 1000001;
1287
+ align-items: center;
1288
+ justify-content: center;
1289
+ }
1290
+
1291
+ .profound-image-editor-modal .image-editor-overlay {
1292
+ position: absolute;
1293
+ top: 0;
1294
+ left: 0;
1295
+ right: 0;
1296
+ bottom: 0;
1297
+ background: rgba(0, 0, 0, 0.7);
1298
+ }
1299
+
1300
+ .profound-image-editor-modal .image-editor-content {
1301
+ position: relative;
1302
+ width: 98%;
1303
+ height: 96vh;
1304
+ background: var(--feedback-surface);
1305
+ border-radius: 8px;
1306
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
1307
+ display: flex;
1308
+ flex-direction: column;
1309
+ }
1310
+
1311
+ .profound-image-editor-modal .image-editor-header {
1312
+ padding: 16px 20px;
1313
+ border-bottom: 1px solid var(--feedback-border);
1314
+ display: flex;
1315
+ align-items: center;
1316
+ justify-content: space-between;
1317
+ }
1318
+
1319
+ .profound-image-editor-modal .image-editor-header h3 {
1320
+ margin: 0;
1321
+ font-size: 18px;
1322
+ font-weight: 600;
1323
+ }
1324
+
1325
+ .profound-image-editor-modal .image-editor-body {
1326
+ flex: 1;
1327
+ overflow: hidden;
1328
+ padding: 0;
1329
+ }
1330
+
1331
+ .profound-image-editor-modal #profound-image-editor-container {
1332
+ width: 100%;
1333
+ height: 100%;
1334
+ }
1335
+
1336
+ .profound-image-editor-modal .image-editor-footer {
1337
+ padding: 16px 20px;
1338
+ border-top: 1px solid var(--feedback-border);
1339
+ display: flex;
1340
+ gap: 12px;
1341
+ background: var(--feedback-surface-muted);
1342
+ justify-content: flex-end;
1343
+ align-items: center;
1344
+ }
1345
+
1346
+ .profound-image-editor-modal .image-editor-footer .btn-ghost {
1347
+ background: var(--feedback-surface);
1348
+ border: 1px solid var(--feedback-border);
1349
+ color: var(--feedback-text-muted);
1350
+ font-size: 15px;
1351
+ padding: 10px 24px;
1352
+ border-radius: 6px;
1353
+ font-weight: 500;
1354
+ cursor: pointer;
1355
+ }
1356
+
1357
+ .profound-image-editor-modal .image-editor-footer .btn-ghost:hover {
1358
+ background: var(--feedback-surface-muted);
1359
+ border-color: var(--feedback-border);
1360
+ }
1361
+
1362
+ .profound-image-editor-modal .image-editor-footer .btn-primary {
1363
+ background: #5865f2;
1364
+ border: none;
1365
+ padding: 10px 24px;
1366
+ font-size: 15px;
1367
+ font-weight: 500;
1368
+ border-radius: 6px;
1369
+ color: white;
1370
+ cursor: pointer;
1371
+ }
1372
+
1373
+ .profound-image-editor-modal .image-editor-footer .btn-primary:hover {
1374
+ background: #4752c4;
1375
+ }
1376
+
1377
+ /* Screenshot Loading Overlay */
1378
+ .profound-screenshot-loading {
1379
+ position: fixed;
1380
+ top: 0;
1381
+ left: 0;
1382
+ right: 0;
1383
+ bottom: 0;
1384
+ background: rgba(0, 0, 0, 0.7);
1385
+ display: flex;
1386
+ align-items: center;
1387
+ justify-content: center;
1388
+ z-index: 1000002;
1389
+ }
1390
+
1391
+ .profound-screenshot-loading .loading-content {
1392
+ background: var(--feedback-surface);
1393
+ padding: 30px 40px;
1394
+ border-radius: 8px;
1395
+ text-align: center;
1396
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
1397
+ }
1398
+
1399
+ .profound-screenshot-loading .loading-spinner {
1400
+ width: 40px;
1401
+ height: 40px;
1402
+ margin: 0 auto 15px;
1403
+ border: 4px solid #f0f0f0;
1404
+ border-top: 4px solid #3f72ff;
1405
+ border-radius: 50%;
1406
+ animation: profound-spin 0.8s linear infinite;
1407
+ }
1408
+
1409
+ .profound-screenshot-loading .loading-text {
1410
+ font-size: 14px;
1411
+ color: var(--feedback-text);
1412
+ font-weight: 500;
1413
+ }
1414
+
1415
+ @keyframes profound-spin {
1416
+ 0% { transform: rotate(0deg); }
1417
+ 100% { transform: rotate(360deg); }
1418
+ }
1419
+
1420
+ /* Screenshot Progress Bar */
1421
+ .profound-screenshot-progress {
1422
+ position: fixed;
1423
+ top: 0;
1424
+ left: 0;
1425
+ right: 0;
1426
+ height: 4px;
1427
+ background: rgba(63, 114, 255, 0.2);
1428
+ overflow: hidden;
1429
+ z-index: 1000003;
1430
+ }
1431
+
1432
+ .profound-screenshot-progress::after {
1433
+ content: '';
1434
+ position: absolute;
1435
+ top: 0;
1436
+ left: 0;
1437
+ bottom: 0;
1438
+ width: 40%;
1439
+ background: #4a7bff;
1440
+ box-shadow: 0 0 10px rgba(74, 123, 255, 0.8), 0 0 5px rgba(74, 123, 255, 0.5);
1441
+ animation: profound-indeterminate 1.2s cubic-bezier(0.65, 0.05, 0.36, 1) infinite;
1442
+ }
1443
+
1444
+ @keyframes profound-indeterminate {
1445
+ 0% { left: -40%; }
1446
+ 100% { left: 100%; }
1447
+ }
1448
+
1449
+ /* TUI Image Editor Fixes - Scoped to modal */
1450
+ .profound-image-editor-modal #profound-image-editor-container * {
1451
+ box-sizing: border-box !important;
1452
+ }
1453
+
1454
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-header {
1455
+ display: none !important;
1456
+ }
1457
+
1458
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-help-menu {
1459
+ display: block !important;
1460
+ z-index: 100 !important;
1461
+ }
1462
+
1463
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-history-item {
1464
+ display: flex !important;
1465
+ align-items: center !important;
1466
+ gap: 8px !important;
1467
+ }
1468
+
1469
+ .profound-image-editor-modal #profound-image-editor-container .history-item-icon,
1470
+ .profound-image-editor-modal #profound-image-editor-container .history-item-checkbox {
1471
+ position: relative !important;
1472
+ left: auto !important;
1473
+ top: auto !important;
1474
+ flex-shrink: 0 !important;
1475
+ }
1476
+
1477
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-controls * {
1478
+ visibility: visible !important;
1479
+ }
1480
+
1481
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-controls {
1482
+ z-index: 100 !important;
1483
+ }
1484
+
1485
+ .profound-image-editor-modal #profound-image-editor-container [tooltip-content] {
1486
+ position: relative !important;
1487
+ z-index: 10 !important;
1488
+ }
1489
+
1490
+ .profound-image-editor-modal #profound-image-editor-container [tooltip-content]::before,
1491
+ .profound-image-editor-modal #profound-image-editor-container [tooltip-content]::after {
1492
+ z-index: 20 !important;
1493
+ }
1494
+
1495
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-item {
1496
+ position: relative !important;
1497
+ z-index: 10 !important;
1498
+ }
1499
+
1500
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-item::before,
1501
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-item::after {
1502
+ z-index: 20 !important;
1503
+ }
1504
+
1505
+ .profound-image-editor-modal .image-editor-body #profound-image-editor-container {
1506
+ width: 100%;
1507
+ height: 100%;
1508
+ }
1509
+
1510
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-container {
1511
+ width: 100% !important;
1512
+ height: 100% !important;
1513
+ }
1514
+
1515
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-main-container,
1516
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-menu,
1517
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-submenu-container,
1518
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-header,
1519
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-controls,
1520
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-controls-buttons,
1521
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-controls-logo {
1522
+ visibility: visible !important;
1523
+ }
1524
+
1525
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-main {
1526
+ top: 64px !important;
1527
+ }
1528
+
1529
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-wrap {
1530
+ display: flex !important;
1531
+ justify-content: center !important;
1532
+ align-items: center !important;
1533
+ text-align: center !important;
1534
+ padding-top: 130px !important;
1535
+ }
1536
+
1537
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-canvas-container {
1538
+ width: auto !important;
1539
+ max-width: 100% !important;
1540
+ margin: 0 auto !important;
1541
+ }
1542
+
1543
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-submenu-container {
1544
+ z-index: 1000 !important;
1545
+ }
1546
+
1547
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-submenu {
1548
+ z-index: 1000 !important;
1549
+ text-align: center !important;
1550
+ }
1551
+
1552
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-submenu > div,
1553
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-submenu * {
1554
+ z-index: inherit !important;
1555
+ visibility: visible !important;
1556
+ }
1557
+
1558
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-submenu-item {
1559
+ justify-content: center !important;
1560
+ text-align: center !important;
1561
+ margin: 0 auto !important;
1562
+ display: flex !important;
1563
+ }
1564
+
1565
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-submenu > div {
1566
+ margin: 0 auto !important;
1567
+ }
1568
+
1569
+ .profound-image-editor-modal #profound-image-editor-container canvas[class*="upper-canvas"] .canvas-container .rotating-point,
1570
+ .profound-image-editor-modal #profound-image-editor-container .canvas-container .mtr {
1571
+ display: none !important;
1572
+ visibility: hidden !important;
1573
+ }
1574
+
1575
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-main,
1576
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-wrap,
1577
+ .profound-image-editor-modal #profound-image-editor-container .tui-image-editor-canvas-container,
1578
+ .profound-image-editor-modal #profound-image-editor-container .lower-canvas,
1579
+ .profound-image-editor-modal #profound-image-editor-container .upper-canvas,
1580
+ .profound-image-editor-modal #profound-image-editor-container canvas {
1581
+ z-index: 1 !important;
1582
+ }
1583
+
1584
+ /* Activity Detail Modal */
1585
+ .profound-feedback-modal {
1586
+ position: fixed;
1587
+ top: 0;
1588
+ left: 0;
1589
+ width: 100%;
1590
+ height: 100%;
1591
+ z-index: 1000001;
1592
+ display: flex;
1593
+ align-items: center;
1594
+ justify-content: center;
1595
+ }
1596
+
1597
+ .profound-feedback-modal[hidden] {
1598
+ display: none;
1599
+ }
1600
+
1601
+ .profound-feedback-modal .modal-overlay {
1602
+ position: absolute;
1603
+ top: 0;
1604
+ left: 0;
1605
+ width: 100%;
1606
+ height: 100%;
1607
+ background: rgba(0, 0, 0, 0.5);
1608
+ backdrop-filter: blur(4px);
1609
+ }
1610
+
1611
+ .profound-feedback-modal .modal-content {
1612
+ position: relative;
1613
+ background: var(--feedback-surface);
1614
+ border-radius: 8px;
1615
+ border: 1px solid var(--feedback-border);
1616
+ max-width: 800px;
1617
+ width: 90%;
1618
+ max-height: 90vh;
1619
+ overflow: hidden;
1620
+ display: flex;
1621
+ flex-direction: column;
1622
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
1623
+ transition: width 0.25s ease, height 0.25s ease, max-width 0.25s ease, max-height 0.25s ease, border-radius 0.25s ease, top 0.25s ease, left 0.25s ease;
1624
+ }
1625
+
1626
+ .profound-feedback-modal.maximized {
1627
+ padding: 0 !important;
1628
+ display: block !important;
1629
+ }
1630
+
1631
+ .profound-feedback-modal.maximized[hidden] {
1632
+ display: none !important;
1633
+ }
1634
+
1635
+ .profound-feedback-modal.maximized .modal-content {
1636
+ width: 100vw !important;
1637
+ height: 100vh !important;
1638
+ max-width: none !important;
1639
+ max-height: none !important;
1640
+ border-radius: 0;
1641
+ position: fixed;
1642
+ top: 0;
1643
+ left: 0;
1644
+ margin: 0;
1645
+ z-index: 1000001;
1646
+ transition: width 0.25s ease, height 0.25s ease, max-width 0.25s ease, max-height 0.25s ease, border-radius 0.25s ease, top 0.25s ease, left 0.25s ease;
1647
+ }
1648
+
1649
+ .profound-feedback-modal .modal-header {
1650
+ padding: 20px 24px;
1651
+ border-bottom: 1px solid var(--feedback-border);
1652
+ display: flex;
1653
+ align-items: center;
1654
+ justify-content: space-between;
1655
+ }
1656
+ .profound-feedback-modal .modal-header-actions {
1657
+ display: flex;
1658
+ align-items: center;
1659
+ gap: 8px;
1660
+ }
1661
+
1662
+ .profound-feedback-modal .modal-header h2 {
1663
+ margin: 0;
1664
+ font-size: 18px;
1665
+ font-weight: 600;
1666
+ color: var(--feedback-text);
1667
+ }
1668
+
1669
+ .profound-feedback-modal .modal-close {
1670
+ background: none;
1671
+ border: none;
1672
+ font-size: 28px;
1673
+ line-height: 1;
1674
+ color: var(--feedback-text-muted);
1675
+ cursor: pointer;
1676
+ padding: 0;
1677
+ width: 32px;
1678
+ height: 32px;
1679
+ display: flex;
1680
+ align-items: center;
1681
+ justify-content: center;
1682
+ border-radius: 4px;
1683
+ transition: background-color 0.2s ease, color 0.2s ease;
1684
+ }
1685
+
1686
+ .profound-feedback-modal .modal-close:hover {
1687
+ background: var(--feedback-surface-muted);
1688
+ color: var(--feedback-text);
1689
+ }
1690
+ .profound-feedback-modal .icon-btn {
1691
+ background: none;
1692
+ border: none;
1693
+ font-size: 20px;
1694
+ line-height: 1;
1695
+ color: var(--feedback-text-muted);
1696
+ cursor: pointer;
1697
+ padding: 0;
1698
+ width: 28px;
1699
+ height: 28px;
1700
+ display: flex;
1701
+ align-items: center;
1702
+ justify-content: center;
1703
+ border-radius: 4px;
1704
+ transition: background-color 0.2s ease, color 0.2s ease;
1705
+ }
1706
+
1707
+ .profound-feedback-modal .icon-btn:hover {
1708
+ background: var(--feedback-surface-muted);
1709
+ color: var(--feedback-text);
1710
+ }
1711
+
1712
+ .profound-feedback-modal .icon-btn.active {
1713
+ background: var(--feedback-surface-muted);
1714
+ color: var(--feedback-text);
1715
+ }
1716
+
1717
+ .profound-feedback-modal .modal-body {
1718
+ flex: 1;
1719
+ overflow-y: auto;
1720
+ padding: 24px;
1721
+ }
1722
+
1723
+ .profound-feedback-modal .modal-footer {
1724
+ padding: 16px 24px;
1725
+ border-top: 1px solid var(--feedback-border);
1726
+ display: flex;
1727
+ gap: 12px;
1728
+ justify-content: flex-end;
1729
+ }
1730
+ .profound-feedback-modal .activity-raw-json {
1731
+ margin-top: 20px;
1732
+ padding: 16px;
1733
+ border-radius: 8px;
1734
+ border: 1px solid var(--feedback-border);
1735
+ background: var(--feedback-surface-muted);
1736
+ }
1737
+
1738
+ .profound-feedback-modal .activity-raw-json-label {
1739
+ font-size: 12px;
1740
+ font-weight: 600;
1741
+ text-transform: uppercase;
1742
+ letter-spacing: 0.08em;
1743
+ color: var(--feedback-text-muted);
1744
+ margin-bottom: 8px;
1745
+ }
1746
+
1747
+ .profound-feedback-modal .activity-raw-json-content {
1748
+ margin: 0;
1749
+ font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
1750
+ font-size: 12px;
1751
+ line-height: 1.5;
1752
+ white-space: pre;
1753
+ overflow-x: auto;
1754
+ max-height: 300px;
1755
+ }
1756
+
1757
+ /* Detail Modal Content Styles */
1758
+ .profound-feedback-modal .user-instruction-detail {
1759
+ padding: 16px !important;
1760
+ background: rgba(46, 182, 125, 0.05) !important;
1761
+ border-radius: 6px !important;
1762
+ border-left: 3px solid #2eb67d !important;
1763
+ font-family: inherit !important;
1764
+ line-height: 1.6 !important;
1765
+ color: var(--feedback-text) !important;
1766
+ white-space: normal !important;
1767
+ word-wrap: break-word !important;
1768
+ overflow-wrap: break-word !important;
1769
+ }
1770
+
1771
+ .profound-feedback-modal .agent-response-detail {
1772
+ padding: 16px !important;
1773
+ background: rgba(63, 114, 255, 0.04) !important;
1774
+ border-radius: 6px !important;
1775
+ border-left: 3px solid #3f72ff !important;
1776
+ font-family: inherit !important;
1777
+ line-height: 1.6 !important;
1778
+ color: var(--feedback-text) !important;
1779
+ white-space: normal !important;
1780
+ word-wrap: break-word !important;
1781
+ overflow-wrap: break-word !important;
1782
+ }
1783
+
1784
+ .profound-feedback-modal .thinking-detail {
1785
+ font-family: inherit !important;
1786
+ line-height: 1.6 !important;
1787
+ color: var(--feedback-text) !important;
1788
+ white-space: normal !important;
1789
+ word-wrap: break-word !important;
1790
+ overflow-wrap: break-word !important;
1791
+ }
1792
+
1793
+ /* Content Typography in Modal */
1794
+ .profound-feedback-modal h1,
1795
+ .profound-feedback-modal h2,
1796
+ .profound-feedback-modal h3,
1797
+ .profound-feedback-modal h4 {
1798
+ margin: 16px 0 12px 0 !important;
1799
+ font-weight: 600 !important;
1800
+ color: var(--feedback-text) !important;
1801
+ }
1802
+
1803
+ .profound-feedback-modal p {
1804
+ margin: 0 0 12px 0 !important;
1805
+ line-height: 1.6 !important;
1806
+ }
1807
+
1808
+ .profound-feedback-modal ul,
1809
+ .profound-feedback-modal ol {
1810
+ margin: 8px 0 12px 0 !important;
1811
+ padding-left: 24px !important;
1812
+ }
1813
+
1814
+ .profound-feedback-modal li {
1815
+ margin: 4px 0 !important;
1816
+ }
1817
+
1818
+ .profound-feedback-modal pre {
1819
+ background: #2d2d2d !important;
1820
+ color: #f8f8f2 !important;
1821
+ padding: 12px !important;
1822
+ border-radius: 4px !important;
1823
+ overflow-x: auto !important;
1824
+ margin: 12px 0 !important;
1825
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 'Consolas', monospace !important;
1826
+ font-size: 13px !important;
1827
+ line-height: 1.5 !important;
1828
+ white-space: pre-wrap !important;
1829
+ word-wrap: break-word !important;
1830
+ }
1831
+
1832
+ .profound-feedback-modal code {
1833
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 'Consolas', monospace !important;
1834
+ font-size: 13px !important;
1835
+ }
1836
+
1837
+ .profound-feedback-modal :not(pre) > code {
1838
+ background: rgba(0, 0, 0, 0.06) !important;
1839
+ padding: 2px 6px !important;
1840
+ border-radius: 3px !important;
1841
+ color: #c7254e !important;
1842
+ }
1843
+
1844
+ /* Buttons in modal */
1845
+ .profound-feedback-modal .btn-ghost {
1846
+ background: transparent;
1847
+ color: var(--feedback-text-muted);
1848
+ padding: 10px 20px;
1849
+ border: none;
1850
+ border-radius: 4px;
1851
+ font-size: 14px;
1852
+ font-weight: 500;
1853
+ cursor: pointer;
1854
+ transition: all 0.2s;
1855
+ }
1856
+
1857
+ .profound-feedback-modal .btn-ghost:hover {
1858
+ background: var(--feedback-surface-muted);
1859
+ }
1860
+
1861
+ /* Error Modal */
1862
+ .profound-feedback-error-overlay {
1863
+ position: fixed;
1864
+ top: 0;
1865
+ left: 0;
1866
+ right: 0;
1867
+ bottom: 0;
1868
+ background: rgba(0, 0, 0, 0.6);
1869
+ display: flex;
1870
+ align-items: center;
1871
+ justify-content: center;
1872
+ z-index: 1000000;
1873
+ opacity: 0;
1874
+ transition: opacity 0.3s ease;
1875
+ backdrop-filter: blur(2px);
1876
+ }
1877
+
1878
+ .profound-feedback-error-overlay.show {
1879
+ opacity: 1;
1880
+ }
1881
+
1882
+ .profound-feedback-error-modal {
1883
+ background: var(--feedback-surface);
1884
+ border-radius: 12px;
1885
+ padding: 32px;
1886
+ max-width: 440px;
1887
+ width: 90%;
1888
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
1889
+ text-align: center;
1890
+ transform: scale(0.9);
1891
+ transition: transform 0.3s ease;
1892
+ }
1893
+
1894
+ .profound-feedback-error-overlay.show .profound-feedback-error-modal {
1895
+ transform: scale(1);
1896
+ }
1897
+
1898
+ .profound-feedback-error-icon {
1899
+ color: #e74c3c;
1900
+ margin-bottom: 16px;
1901
+ display: flex;
1902
+ justify-content: center;
1903
+ }
1904
+
1905
+ .profound-feedback-error-icon svg {
1906
+ width: 64px;
1907
+ height: 64px;
1908
+ }
1909
+
1910
+ .profound-feedback-error-title {
1911
+ font-size: 20px;
1912
+ font-weight: 600;
1913
+ color: var(--feedback-text);
1914
+ margin: 0 0 12px 0;
1915
+ }
1916
+
1917
+ .profound-feedback-error-message {
1918
+ font-size: 15px;
1919
+ color: var(--feedback-text);
1920
+ line-height: 1.6;
1921
+ margin: 0 0 24px 0;
1922
+ white-space: pre-wrap;
1923
+ }
1924
+
1925
+ .profound-feedback-error-button {
1926
+ background: linear-gradient(135deg, #3f72ff 0%, #3158c9 100%);
1927
+ color: white;
1928
+ border: none;
1929
+ border-radius: 8px;
1930
+ padding: 12px 32px;
1931
+ font-size: 15px;
1932
+ font-weight: 600;
1933
+ cursor: pointer;
1934
+ transition: transform 0.2s, box-shadow 0.2s;
1935
+ box-shadow: 0 4px 12px rgba(63, 114, 255, 0.3);
1936
+ }
1937
+
1938
+ .profound-feedback-error-button:hover {
1939
+ transform: translateY(-2px);
1940
+ box-shadow: 0 6px 16px rgba(63, 114, 255, 0.4);
1941
+ }
1942
+
1943
+ .profound-feedback-error-button:active {
1944
+ transform: translateY(0);
1945
+ }
1946
+
1947
+ /* Loading state for submit button */
1948
+ .profound-feedback-panel .btn-loading {
1949
+ animation: profound-pulse-loading 1.5s ease-in-out infinite;
1950
+ }
1951
+
1952
+ .profound-feedback-panel .inline-follow-up-submit.btn-loading {
1953
+ width: auto !important;
1954
+ min-width: 100px !important;
1955
+ border-radius: 18px !important;
1956
+ padding: 0 12px !important;
1957
+ font-size: 13px !important;
1958
+ /* Keep absolute positioning, but adjust position */
1959
+ right: 6px !important;
1960
+ top: 50% !important;
1961
+ transform: translateY(-50%) !important;
1962
+ }
1963
+
1964
+ @keyframes profound-pulse-loading {
1965
+ 0%, 100% { opacity: 0.8; }
1966
+ 50% { opacity: 1; }
1967
+ }
1968
+
1969
+ /* Tool Detail Styling - Scoped to Modal */
1970
+ .profound-feedback-modal .tool-detail {
1971
+ font-family: inherit;
1972
+ line-height: 1.5;
1973
+ color: var(--feedback-text);
1974
+ }
1975
+
1976
+ .profound-feedback-modal .tool-section {
1977
+ margin-bottom: 16px;
1978
+ }
1979
+
1980
+ .profound-feedback-modal .tool-section:last-child {
1981
+ margin-bottom: 0;
1982
+ }
1983
+
1984
+ .profound-feedback-modal .tool-section-header {
1985
+ font-weight: 600;
1986
+ font-size: 13px;
1987
+ color: var(--feedback-text-muted);
1988
+ text-transform: uppercase;
1989
+ letter-spacing: 0.5px;
1990
+ margin-bottom: 8px;
1991
+ }
1992
+
1993
+ .profound-feedback-modal .tool-code {
1994
+ background: var(--feedback-surface-muted) !important;
1995
+ border: 1px solid var(--feedback-border) !important;
1996
+ border-radius: 4px !important;
1997
+ padding: 12px !important;
1998
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 'Consolas', monospace !important;
1999
+ font-size: 13px !important;
2000
+ line-height: 1.5 !important;
2001
+ overflow-x: auto !important;
2002
+ color: var(--feedback-text) !important;
2003
+ margin: 0 !important;
2004
+ }
2005
+
2006
+ .profound-feedback-modal .tool-output {
2007
+ background: #2d2d2d !important;
2008
+ border: 1px solid #404040 !important;
2009
+ border-radius: 4px !important;
2010
+ padding: 12px !important;
2011
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 'Consolas', monospace !important;
2012
+ font-size: 13px !important;
2013
+ line-height: 1.5 !important;
2014
+ overflow-x: auto !important;
2015
+ color: #f8f8f2 !important;
2016
+ margin: 0 !important;
2017
+ max-height: 400px !important;
2018
+ overflow-y: auto !important;
2019
+ }
2020
+
2021
+ .profound-feedback-modal .file-path {
2022
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 'Consolas', monospace !important;
2023
+ font-size: 13px !important;
2024
+ color: #3f72ff !important;
2025
+ background: rgba(63, 114, 255, 0.08) !important;
2026
+ padding: 6px 10px !important;
2027
+ border-radius: 4px !important;
2028
+ display: inline-block !important;
2029
+ word-break: break-all !important;
2030
+ }
2031
+
2032
+ .profound-feedback-modal .error-section .tool-section-header {
2033
+ color: #ef5350 !important;
2034
+ }
2035
+
2036
+ .profound-feedback-modal .error-output {
2037
+ background: #2d1f1f !important;
2038
+ border-color: #ef5350 !important;
2039
+ color: #ff6b6b !important;
2040
+ }
2041
+
2042
+ .profound-feedback-modal .success-message {
2043
+ color: #2eb67d !important;
2044
+ font-size: 14px !important;
2045
+ padding: 8px 12px !important;
2046
+ background: rgba(46, 182, 125, 0.1) !important;
2047
+ border-radius: 4px !important;
2048
+ border-left: 3px solid #2eb67d !important;
2049
+ }
2050
+
2051
+ .profound-feedback-modal .exit-code {
2052
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 'Consolas', monospace !important;
2053
+ font-size: 24px !important;
2054
+ font-weight: bold !important;
2055
+ padding: 12px !important;
2056
+ border-radius: 4px !important;
2057
+ display: inline-block !important;
2058
+ min-width: 60px !important;
2059
+ text-align: center !important;
2060
+ }
2061
+
2062
+ .profound-feedback-modal .exit-code.success {
2063
+ color: #2eb67d !important;
2064
+ background: rgba(46, 182, 125, 0.1) !important;
2065
+ border: 2px solid #2eb67d !important;
2066
+ }
2067
+
2068
+ .profound-feedback-modal .exit-code.error {
2069
+ color: #ef5350 !important;
2070
+ background: rgba(239, 83, 80, 0.1) !important;
2071
+ border: 2px solid #ef5350 !important;
2072
+ }
2073
+
2074
+ .profound-feedback-modal .inline-code {
2075
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 'Consolas', monospace !important;
2076
+ font-size: 13px !important;
2077
+ background: rgba(0, 0, 0, 0.06) !important;
2078
+ padding: 3px 8px !important;
2079
+ border-radius: 3px !important;
2080
+ color: #c7254e !important;
2081
+ }
2082
+
2083
+ .profound-feedback-modal .muted-text {
2084
+ color: var(--feedback-text-muted) !important;
2085
+ font-style: italic !important;
2086
+ }
2087
+
2088
+ /* Diff section */
2089
+ .profound-feedback-modal .diff-section {
2090
+ position: relative;
2091
+ }
2092
+
2093
+ .profound-feedback-modal .diff-section .tool-output.old-string {
2094
+ background: #2d1f1f !important;
2095
+ border-left: 3px solid #ef5350 !important;
2096
+ }
2097
+
2098
+ .profound-feedback-modal .diff-section .tool-output.new-string {
2099
+ background: #1f2d1f !important;
2100
+ border-left: 3px solid #66bb6a !important;
2101
+ }
2102
+
2103
+ .profound-feedback-modal .diff-section .tool-output.old-string::before {
2104
+ content: '−';
2105
+ position: absolute;
2106
+ left: -16px;
2107
+ color: #ef5350;
2108
+ font-weight: bold;
2109
+ }
2110
+
2111
+ .profound-feedback-modal .diff-section .tool-output.new-string::before {
2112
+ content: '+';
2113
+ position: absolute;
2114
+ left: -16px;
2115
+ color: #66bb6a;
2116
+ font-weight: bold;
2117
+ }
2118
+
2119
+ /* Side-by-side diff for Edit tool */
2120
+ .profound-feedback-modal .edit-diff-summary {
2121
+ display: flex !important;
2122
+ align-items: center !important;
2123
+ justify-content: space-between !important;
2124
+ padding: 8px 12px !important;
2125
+ background: rgba(255, 255, 255, 0.05) !important;
2126
+ border-radius: 6px !important;
2127
+ font-size: 13px !important;
2128
+ }
2129
+
2130
+ .profound-feedback-modal .edit-diff-mode {
2131
+ color: var(--feedback-text-muted) !important;
2132
+ }
2133
+
2134
+ .profound-feedback-modal .edit-diff-stats {
2135
+ display: flex !important;
2136
+ gap: 12px !important;
2137
+ font-family: "JetBrains Mono", monospace !important;
2138
+ font-size: 12px !important;
2139
+ }
2140
+
2141
+ .profound-feedback-modal .edit-diff-removed {
2142
+ color: #ef5350 !important;
2143
+ }
2144
+
2145
+ .profound-feedback-modal .edit-diff-added {
2146
+ color: #66bb6a !important;
2147
+ }
2148
+
2149
+ .profound-feedback-modal .edit-diff-container {
2150
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
2151
+ border-radius: 6px !important;
2152
+ overflow: hidden !important;
2153
+ font-family: "JetBrains Mono", monospace !important;
2154
+ font-size: 12px !important;
2155
+ }
2156
+
2157
+ .profound-feedback-modal .edit-diff-header {
2158
+ display: flex !important;
2159
+ background: rgba(63, 114, 255, 0.08) !important;
2160
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
2161
+ }
2162
+
2163
+ .profound-feedback-modal .edit-diff-header-left,
2164
+ .profound-feedback-modal .edit-diff-header-right {
2165
+ flex: 1 !important;
2166
+ padding: 8px 14px !important;
2167
+ font-weight: 600 !important;
2168
+ font-size: 11px !important;
2169
+ text-transform: uppercase !important;
2170
+ letter-spacing: 0.5px !important;
2171
+ color: var(--feedback-text-muted) !important;
2172
+ }
2173
+
2174
+ .profound-feedback-modal .edit-diff-header-left {
2175
+ border-right: 1px solid rgba(255, 255, 255, 0.1) !important;
2176
+ background: rgba(239, 83, 80, 0.05) !important;
2177
+ color: #ef5350 !important;
2178
+ }
2179
+
2180
+ .profound-feedback-modal .edit-diff-header-right {
2181
+ background: rgba(102, 187, 106, 0.05) !important;
2182
+ color: #66bb6a !important;
2183
+ }
2184
+
2185
+ .profound-feedback-modal .edit-diff-body {
2186
+ max-height: 500px !important;
2187
+ overflow-y: auto !important;
2188
+ }
2189
+
2190
+ .profound-feedback-modal .edit-diff-row {
2191
+ display: flex !important;
2192
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
2193
+ }
2194
+
2195
+ .profound-feedback-modal .edit-diff-row:last-child {
2196
+ border-bottom: none !important;
2197
+ }
2198
+
2199
+ .profound-feedback-modal .edit-diff-side {
2200
+ flex: 1 !important;
2201
+ min-width: 0 !important;
2202
+ overflow: hidden !important;
2203
+ }
2204
+
2205
+ .profound-feedback-modal .edit-diff-left {
2206
+ border-right: 1px solid rgba(255, 255, 255, 0.1) !important;
2207
+ }
2208
+
2209
+ .profound-feedback-modal .edit-diff-line {
2210
+ display: flex !important;
2211
+ align-items: stretch !important;
2212
+ white-space: pre !important;
2213
+ min-height: 22px !important;
2214
+ }
2215
+
2216
+ .profound-feedback-modal .edit-diff-line-num {
2217
+ display: inline-block !important;
2218
+ padding: 2px 8px !important;
2219
+ text-align: right !important;
2220
+ color: var(--feedback-text-muted) !important;
2221
+ background: rgba(0, 0, 0, 0.15) !important;
2222
+ user-select: none !important;
2223
+ min-width: 45px !important;
2224
+ font-size: 11px !important;
2225
+ }
2226
+
2227
+ .profound-feedback-modal .edit-diff-prefix {
2228
+ display: inline-block !important;
2229
+ width: 16px !important;
2230
+ padding: 2px 4px !important;
2231
+ text-align: center !important;
2232
+ font-weight: bold !important;
2233
+ user-select: none !important;
2234
+ }
2235
+
2236
+ .profound-feedback-modal .edit-diff-content {
2237
+ flex: 1 !important;
2238
+ padding: 2px 8px !important;
2239
+ white-space: pre-wrap !important;
2240
+ word-break: break-all !important;
2241
+ overflow-wrap: break-word !important;
2242
+ }
2243
+
2244
+ /* Diff line states */
2245
+ .profound-feedback-modal .edit-diff-add {
2246
+ background: rgba(102, 187, 106, 0.15) !important;
2247
+ }
2248
+
2249
+ .profound-feedback-modal .edit-diff-add .edit-diff-prefix {
2250
+ color: #66bb6a !important;
2251
+ }
2252
+
2253
+ .profound-feedback-modal .edit-diff-add .edit-diff-content {
2254
+ background: rgba(102, 187, 106, 0.1) !important;
2255
+ }
2256
+
2257
+ .profound-feedback-modal .edit-diff-remove {
2258
+ background: rgba(239, 83, 80, 0.15) !important;
2259
+ }
2260
+
2261
+ .profound-feedback-modal .edit-diff-remove .edit-diff-prefix {
2262
+ color: #ef5350 !important;
2263
+ }
2264
+
2265
+ .profound-feedback-modal .edit-diff-remove .edit-diff-content {
2266
+ background: rgba(239, 83, 80, 0.1) !important;
2267
+ }
2268
+
2269
+ .profound-feedback-modal .edit-diff-context {
2270
+ background: transparent !important;
2271
+ }
2272
+
2273
+ .profound-feedback-modal .edit-diff-context .edit-diff-prefix {
2274
+ color: transparent !important;
2275
+ }
2276
+
2277
+ .profound-feedback-modal .edit-diff-empty {
2278
+ background: rgba(128, 128, 128, 0.08) !important;
2279
+ }
2280
+
2281
+ .profound-feedback-modal .edit-diff-empty .edit-diff-line-num {
2282
+ color: transparent !important;
2283
+ }
2284
+
2285
+ .profound-feedback-modal .edit-diff-empty .edit-diff-prefix {
2286
+ color: transparent !important;
2287
+ }
2288
+
2289
+ .profound-feedback-modal .edit-diff-empty .edit-diff-content {
2290
+ background: repeating-linear-gradient(
2291
+ 45deg,
2292
+ transparent,
2293
+ transparent 4px,
2294
+ rgba(128, 128, 128, 0.05) 4px,
2295
+ rgba(128, 128, 128, 0.05) 8px
2296
+ ) !important;
2297
+ }
2298
+
2299
+ .profound-feedback-modal .external-link {
2300
+ color: #3f72ff !important;
2301
+ text-decoration: none !important;
2302
+ word-break: break-all !important;
2303
+ }
2304
+
2305
+ .profound-feedback-modal .external-link:hover {
2306
+ text-decoration: underline !important;
2307
+ }
2308
+
2309
+ /* Context preview dialog */
2310
+ .profound-feedback-preview-backdrop {
2311
+ position: fixed;
2312
+ top: 0;
2313
+ left: 0;
2314
+ right: 0;
2315
+ bottom: 0;
2316
+ background: rgba(0, 0, 0, 0.55);
2317
+ backdrop-filter: blur(2px);
2318
+ z-index: 1000000;
2319
+ }
2320
+
2321
+ .profound-feedback-preview {
2322
+ position: fixed;
2323
+ top: 50%;
2324
+ left: 50%;
2325
+ transform: translate(-50%, -50%);
2326
+ width: 80%;
2327
+ max-width: 900px;
2328
+ max-height: 80vh;
2329
+ background: var(--feedback-surface);
2330
+ border: 1px solid var(--feedback-border);
2331
+ border-radius: 10px;
2332
+ box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
2333
+ z-index: 1000001;
2334
+ display: flex;
2335
+ flex-direction: column;
2336
+ color: var(--feedback-text);
2337
+ }
2338
+
2339
+ .profound-feedback-preview .preview-header {
2340
+ padding: 20px 24px;
2341
+ border-bottom: 1px solid var(--feedback-border);
2342
+ background: var(--feedback-surface);
2343
+ }
2344
+
2345
+ .profound-feedback-preview .preview-title-row {
2346
+ display: flex;
2347
+ align-items: center;
2348
+ justify-content: space-between;
2349
+ gap: 12px;
2350
+ }
2351
+
2352
+ .profound-feedback-preview .preview-title-row h3 {
2353
+ margin: 0;
2354
+ font-size: 18px;
2355
+ font-weight: 700;
2356
+ letter-spacing: -0.02em;
2357
+ }
2358
+
2359
+ .profound-feedback-preview .preview-meta {
2360
+ margin-top: 8px;
2361
+ color: var(--feedback-text-muted);
2362
+ font-size: 13px;
2363
+ }
2364
+
2365
+ .profound-feedback-preview .preview-warning {
2366
+ margin-top: 14px;
2367
+ padding: 12px 14px;
2368
+ background: rgba(244, 183, 64, 0.14);
2369
+ border-left: 4px solid #f4b740;
2370
+ border-radius: 6px;
2371
+ color: var(--feedback-text);
2372
+ }
2373
+
2374
+ .profound-feedback-preview .preview-body {
2375
+ flex: 1;
2376
+ overflow-y: auto;
2377
+ padding: 20px 24px;
2378
+ background: var(--feedback-surface-muted);
2379
+ }
2380
+
2381
+ .profound-feedback-preview .preview-section {
2382
+ margin-bottom: 24px;
2383
+ }
2384
+
2385
+ .profound-feedback-preview .preview-section:last-child {
2386
+ margin-bottom: 0;
2387
+ }
2388
+
2389
+ .profound-feedback-preview .preview-section-title {
2390
+ margin: 0 0 8px 0;
2391
+ color: var(--feedback-accent);
2392
+ font-size: 14px;
2393
+ font-weight: 700;
2394
+ }
2395
+
2396
+ .profound-feedback-preview pre {
2397
+ background: var(--feedback-surface);
2398
+ border: 1px solid var(--feedback-border);
2399
+ border-radius: 6px;
2400
+ padding: 12px;
2401
+ margin: 0;
2402
+ max-height: 300px;
2403
+ overflow: auto;
2404
+ font-size: 12px;
2405
+ line-height: 1.4;
2406
+ color: var(--feedback-text);
2407
+ }
2408
+
2409
+ .profound-feedback-preview .preview-size {
2410
+ margin-top: 6px;
2411
+ font-size: 12px;
2412
+ color: var(--feedback-text-muted);
2413
+ }
2414
+
2415
+ .profound-feedback-preview .preview-footer {
2416
+ padding: 16px 24px;
2417
+ border-top: 1px solid var(--feedback-border);
2418
+ background: var(--feedback-surface);
2419
+ display: flex;
2420
+ justify-content: flex-end;
2421
+ }
2422
+
2423
+ .profound-feedback-preview .close-preview-btn {
2424
+ padding: 10px 18px;
2425
+ background: var(--feedback-accent);
2426
+ border: none;
2427
+ color: #fff;
2428
+ border-radius: 6px;
2429
+ cursor: pointer;
2430
+ font-weight: 600;
2431
+ box-shadow: 0 10px 28px var(--feedback-button-glow);
2432
+ transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
2433
+ }
2434
+
2435
+ .profound-feedback-preview .close-preview-btn:hover {
2436
+ transform: translateY(-1px);
2437
+ box-shadow: 0 14px 34px var(--feedback-button-glow);
2438
+ }
2439
+
2440
+ .profound-feedback-preview .close-preview-btn:active {
2441
+ transform: translateY(0);
2442
+ }
2443
+
2444
+ .profound-feedback-preview .preview-close {
2445
+ background: none;
2446
+ border: none;
2447
+ font-size: 26px;
2448
+ color: var(--feedback-text-muted);
2449
+ cursor: pointer;
2450
+ padding: 0;
2451
+ width: 32px;
2452
+ height: 32px;
2453
+ border-radius: 6px;
2454
+ display: inline-flex;
2455
+ align-items: center;
2456
+ justify-content: center;
2457
+ transition: background 0.15s ease, color 0.15s ease;
2458
+ }
2459
+
2460
+ .profound-feedback-preview .preview-close:hover {
2461
+ background: var(--feedback-surface-muted);
2462
+ color: var(--feedback-text);
2463
+ }
2464
+
2465
+ /* ========================================
2466
+ QA MODE STYLES
2467
+ ======================================== */
2468
+
2469
+ /* QA Badge styling */
2470
+ .feedback-qa-badge {
2471
+ background: linear-gradient(135deg, #8e44ad 0%, #6c3483 100%) !important;
2472
+ color: white !important;
2473
+ font-weight: 600;
2474
+ }
2475
+
2476
+ /* QA Capture Form */
2477
+ .qa-capture-form {
2478
+ display: flex;
2479
+ flex-direction: column;
2480
+ gap: 12px;
2481
+ position: relative;
2482
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
2483
+ }
2484
+
2485
+ .qa-capture-form.drag-over {
2486
+ border: 2px dashed #3f72ff;
2487
+ border-radius: 6px;
2488
+ box-shadow: 0 0 0 3px rgba(63,114,255,0.2);
2489
+ background: rgba(63,114,255,0.05);
2490
+ padding: 8px;
2491
+ }
2492
+
2493
+ .qa-capture-form.drag-over::after {
2494
+ content: 'Drop files here';
2495
+ position: absolute;
2496
+ top: 50%;
2497
+ left: 50%;
2498
+ transform: translate(-50%, -50%);
2499
+ padding: 8px 16px;
2500
+ background: #3f72ff;
2501
+ color: white;
2502
+ border-radius: 6px;
2503
+ font-size: 14px;
2504
+ font-weight: 500;
2505
+ pointer-events: none;
2506
+ z-index: 10;
2507
+ }
2508
+
2509
+ .qa-form-field {
2510
+ display: flex;
2511
+ flex-direction: column;
2512
+ gap: 4px;
2513
+ }
2514
+
2515
+ .qa-form-field label {
2516
+ font-size: 12px;
2517
+ font-weight: 500;
2518
+ color: var(--feedback-text-muted);
2519
+ text-transform: uppercase;
2520
+ letter-spacing: 0.5px;
2521
+ }
2522
+
2523
+ .qa-form-field input[type="text"],
2524
+ .qa-form-field select {
2525
+ padding: 8px 12px;
2526
+ border: 1px solid var(--feedback-border);
2527
+ border-radius: 6px;
2528
+ font-size: 14px;
2529
+ background: var(--feedback-surface);
2530
+ color: var(--feedback-text);
2531
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
2532
+ }
2533
+
2534
+ .qa-form-field input[type="text"]:focus,
2535
+ .qa-form-field select:focus {
2536
+ outline: none;
2537
+ border-color: var(--feedback-accent);
2538
+ box-shadow: 0 0 0 3px rgba(63, 114, 255, 0.15);
2539
+ }
2540
+
2541
+ .qa-form-field input[type="text"]::placeholder,
2542
+ .qa-form-field textarea::placeholder {
2543
+ color: #9ca3af;
2544
+ opacity: 1;
2545
+ }
2546
+
2547
+ /* Required field asterisk */
2548
+ .qa-form-field .required {
2549
+ color: #dc2626;
2550
+ font-weight: 600;
2551
+ }
2552
+
2553
+ /* Field error messages - hidden by default */
2554
+ .qa-form-field .field-error {
2555
+ display: none;
2556
+ font-size: 12px;
2557
+ color: #dc2626;
2558
+ margin-top: 4px;
2559
+ }
2560
+
2561
+ /* Show error when field has error class */
2562
+ .qa-form-field.has-error .field-error {
2563
+ display: block;
2564
+ }
2565
+
2566
+ /* Error state for inputs and textareas */
2567
+ .qa-form-field.has-error input[type="text"],
2568
+ .qa-form-field.has-error textarea {
2569
+ border-color: #dc2626;
2570
+ box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
2571
+ }
2572
+
2573
+ .qa-form-field.has-error input[type="text"]:focus,
2574
+ .qa-form-field.has-error textarea:focus {
2575
+ border-color: #dc2626;
2576
+ box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);
2577
+ }
2578
+
2579
+ /* QA Agent Selector Field */
2580
+ .qa-agent-selector-field {
2581
+ margin-top: 12px;
2582
+ }
2583
+
2584
+ .qa-agent-selector-field > label {
2585
+ font-size: 13px;
2586
+ color: var(--feedback-text-muted);
2587
+ margin-bottom: 8px;
2588
+ display: block;
2589
+ }
2590
+
2591
+ /* Override agent-selector styles for compact widget - match home page exactly */
2592
+ .qa-agent-selector {
2593
+ display: flex;
2594
+ gap: 8px;
2595
+ justify-content: center;
2596
+ }
2597
+
2598
+ .qa-agent-selector .agent-card {
2599
+ position: relative;
2600
+ display: flex;
2601
+ align-items: center;
2602
+ gap: 1px;
2603
+ background: var(--feedback-surface);
2604
+ border: 1.5px solid var(--feedback-border);
2605
+ border-radius: 8px;
2606
+ padding: 1px;
2607
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
2608
+ user-select: none;
2609
+ }
2610
+
2611
+ .qa-agent-selector .agent-card:hover {
2612
+ transform: translateY(-1px);
2613
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
2614
+ }
2615
+
2616
+ .qa-agent-selector .agent-btn-decrement,
2617
+ .qa-agent-selector .agent-btn-increment {
2618
+ width: 16px;
2619
+ height: 28px;
2620
+ padding: 0;
2621
+ border: none;
2622
+ background: transparent;
2623
+ color: var(--feedback-text-muted);
2624
+ font-size: 14px;
2625
+ font-weight: 600;
2626
+ cursor: pointer;
2627
+ transition: all 0.15s ease;
2628
+ display: flex;
2629
+ align-items: center;
2630
+ justify-content: center;
2631
+ border-radius: 4px;
2632
+ opacity: 0.3;
2633
+ outline: none;
2634
+ }
2635
+
2636
+ .qa-agent-selector .agent-btn-decrement:hover,
2637
+ .qa-agent-selector .agent-btn-increment:hover {
2638
+ opacity: 1;
2639
+ background: rgba(0, 0, 0, 0.04);
2640
+ }
2641
+
2642
+ .qa-agent-selector .agent-btn-decrement:active,
2643
+ .qa-agent-selector .agent-btn-increment:active {
2644
+ transform: scale(0.9);
2645
+ }
2646
+
2647
+ .qa-agent-selector .agent-icon {
2648
+ display: flex;
2649
+ align-items: center;
2650
+ justify-content: center;
2651
+ width: 28px;
2652
+ height: 28px;
2653
+ transition: all 0.2s ease;
2654
+ cursor: pointer;
2655
+ border-radius: 6px;
2656
+ }
2657
+
2658
+ .qa-agent-selector .agent-icon:hover {
2659
+ background: rgba(0, 0, 0, 0.03);
2660
+ }
2661
+
2662
+ .qa-agent-selector .agent-icon svg {
2663
+ width: 16px;
2664
+ height: 16px;
2665
+ opacity: 0.5;
2666
+ transition: all 0.2s ease;
2667
+ }
2668
+
2669
+ /* Count Badge - positioned on card, hidden by default */
2670
+ .qa-agent-selector .agent-count-badge {
2671
+ position: absolute;
2672
+ top: -4px;
2673
+ right: -4px;
2674
+ min-width: 16px;
2675
+ height: 16px;
2676
+ padding: 0 4px;
2677
+ border-radius: 8px;
2678
+ background: var(--feedback-text);
2679
+ color: white;
2680
+ font-size: 10px;
2681
+ font-weight: 700;
2682
+ display: flex;
2683
+ align-items: center;
2684
+ justify-content: center;
2685
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
2686
+ transition: all 0.2s ease;
2687
+ opacity: 0;
2688
+ transform: scale(0.8);
2689
+ }
2690
+
2691
+ /* Badge hidden when count is 0 */
2692
+ .qa-agent-selector .agent-card[data-count="0"] .agent-count-badge {
2693
+ opacity: 0;
2694
+ transform: scale(0.8);
2695
+ }
2696
+
2697
+ /* Active agent card styles - Claude */
2698
+ .qa-agent-selector .agent-card[data-agent="claude"]:not([data-count="0"]) {
2699
+ background: linear-gradient(135deg, rgba(217, 119, 87, 0.1) 0%, rgba(217, 119, 87, 0.05) 100%);
2700
+ border-color: rgba(217, 119, 87, 0.4);
2701
+ }
2702
+
2703
+ .qa-agent-selector .agent-card[data-agent="claude"]:not([data-count="0"]) .agent-icon svg {
2704
+ opacity: 1;
2705
+ color: #D97757;
2706
+ }
2707
+
2708
+ .qa-agent-selector .agent-card[data-agent="claude"]:not([data-count="0"]) .agent-btn-decrement,
2709
+ .qa-agent-selector .agent-card[data-agent="claude"]:not([data-count="0"]) .agent-btn-increment {
2710
+ color: #D97757;
2711
+ opacity: 0.6;
2712
+ }
2713
+
2714
+ .qa-agent-selector .agent-card[data-agent="claude"]:not([data-count="0"]) .agent-btn-decrement:hover,
2715
+ .qa-agent-selector .agent-card[data-agent="claude"]:not([data-count="0"]) .agent-btn-increment:hover {
2716
+ opacity: 1;
2717
+ background: rgba(217, 119, 87, 0.1);
2718
+ }
2719
+
2720
+ .qa-agent-selector .agent-card[data-agent="claude"]:not([data-count="0"]) .agent-count-badge {
2721
+ background: #D97757;
2722
+ opacity: 1;
2723
+ transform: scale(1);
2724
+ }
2725
+
2726
+ /* Active agent card styles - Codex */
2727
+ .qa-agent-selector .agent-card[data-agent="codex"]:not([data-count="0"]) {
2728
+ background: linear-gradient(135deg, rgba(16, 163, 127, 0.1) 0%, rgba(16, 163, 127, 0.05) 100%);
2729
+ border-color: rgba(16, 163, 127, 0.4);
2730
+ }
2731
+
2732
+ .qa-agent-selector .agent-card[data-agent="codex"]:not([data-count="0"]) .agent-icon svg {
2733
+ opacity: 1;
2734
+ color: #10a37f;
2735
+ }
2736
+
2737
+ .qa-agent-selector .agent-card[data-agent="codex"]:not([data-count="0"]) .agent-btn-decrement,
2738
+ .qa-agent-selector .agent-card[data-agent="codex"]:not([data-count="0"]) .agent-btn-increment {
2739
+ color: #10a37f;
2740
+ opacity: 0.6;
2741
+ }
2742
+
2743
+ .qa-agent-selector .agent-card[data-agent="codex"]:not([data-count="0"]) .agent-btn-decrement:hover,
2744
+ .qa-agent-selector .agent-card[data-agent="codex"]:not([data-count="0"]) .agent-btn-increment:hover {
2745
+ opacity: 1;
2746
+ background: rgba(16, 163, 127, 0.1);
2747
+ }
2748
+
2749
+ .qa-agent-selector .agent-card[data-agent="codex"]:not([data-count="0"]) .agent-count-badge {
2750
+ background: #10a37f;
2751
+ opacity: 1;
2752
+ transform: scale(1);
2753
+ }
2754
+
2755
+ /* Active agent card styles - Gemini */
2756
+ .qa-agent-selector .agent-card[data-agent="gemini"]:not([data-count="0"]) {
2757
+ background: linear-gradient(135deg, rgba(66, 133, 244, 0.1) 0%, rgba(66, 133, 244, 0.05) 100%);
2758
+ border-color: rgba(66, 133, 244, 0.4);
2759
+ }
2760
+
2761
+ .qa-agent-selector .agent-card[data-agent="gemini"]:not([data-count="0"]) .agent-icon svg {
2762
+ opacity: 1;
2763
+ color: #4285f4;
2764
+ }
2765
+
2766
+ .qa-agent-selector .agent-card[data-agent="gemini"]:not([data-count="0"]) .agent-btn-decrement,
2767
+ .qa-agent-selector .agent-card[data-agent="gemini"]:not([data-count="0"]) .agent-btn-increment {
2768
+ color: #4285f4;
2769
+ opacity: 0.6;
2770
+ }
2771
+
2772
+ .qa-agent-selector .agent-card[data-agent="gemini"]:not([data-count="0"]) .agent-btn-decrement:hover,
2773
+ .qa-agent-selector .agent-card[data-agent="gemini"]:not([data-count="0"]) .agent-btn-increment:hover {
2774
+ opacity: 1;
2775
+ background: rgba(66, 133, 244, 0.1);
2776
+ }
2777
+
2778
+ .qa-agent-selector .agent-card[data-agent="gemini"]:not([data-count="0"]) .agent-count-badge {
2779
+ background: #4285f4;
2780
+ opacity: 1;
2781
+ transform: scale(1);
2782
+ }
2783
+
2784
+ /* Hover effects for specific agents */
2785
+ .qa-agent-selector .agent-card[data-agent="claude"]:hover {
2786
+ border-color: rgba(217, 119, 87, 0.6);
2787
+ box-shadow: 0 4px 16px rgba(217, 119, 87, 0.15);
2788
+ }
2789
+
2790
+ .qa-agent-selector .agent-card[data-agent="codex"]:hover {
2791
+ border-color: rgba(16, 163, 127, 0.6);
2792
+ box-shadow: 0 4px 16px rgba(16, 163, 127, 0.15);
2793
+ }
2794
+
2795
+ .qa-agent-selector .agent-card[data-agent="gemini"]:hover {
2796
+ border-color: rgba(66, 133, 244, 0.6);
2797
+ box-shadow: 0 4px 16px rgba(66, 133, 244, 0.15);
2798
+ }
2799
+
2800
+ /* Agent Field */
2801
+ .qa-agent-field select {
2802
+ width: 100%;
2803
+ }
2804
+
2805
+ /* Submit Button */
2806
+ .qa-submit-btn {
2807
+ margin-top: 12px;
2808
+ padding: 12px 16px;
2809
+ font-size: 14px;
2810
+ font-weight: 600;
2811
+ border: none;
2812
+ border-radius: 8px;
2813
+ cursor: pointer;
2814
+ background: linear-gradient(135deg, var(--feedback-accent) 0%, #2563eb 100%);
2815
+ color: white;
2816
+ transition: transform 0.1s ease, box-shadow 0.15s ease, opacity 0.15s ease;
2817
+ }
2818
+
2819
+ .qa-submit-btn:hover {
2820
+ box-shadow: 0 4px 12px rgba(63, 114, 255, 0.3);
2821
+ transform: translateY(-1px);
2822
+ }
2823
+
2824
+ .qa-submit-btn:active {
2825
+ transform: translateY(0);
2826
+ }
2827
+
2828
+ .qa-submit-btn:disabled {
2829
+ opacity: 0.6;
2830
+ cursor: not-allowed;
2831
+ transform: none;
2832
+ }
2833
+
2834
+ .qa-submit-btn.btn-loading {
2835
+ opacity: 0.8;
2836
+ }
2837
+
2838
+ /* QA Button Styling */
2839
+ .profound-qa-btn {
2840
+ background: linear-gradient(135deg, #8e44ad 0%, #6c3483 100%);
2841
+ }
2842
+
2843
+ .profound-qa-btn:hover {
2844
+ background: linear-gradient(135deg, #9b59b6 0%, #7d3c98 100%);
2845
+ box-shadow: 0 6px 16px rgba(142, 68, 173, 0.5);
2846
+ }
2847
+
2848
+ /* ========================================
2849
+ Approve Dialog Styles
2850
+ ======================================== */
2851
+
2852
+ /* Approve button in header */
2853
+ .profound-feedback-panel .feedback-approve-btn {
2854
+ background: none;
2855
+ border: none;
2856
+ color: var(--feedback-text-muted);
2857
+ cursor: pointer;
2858
+ padding: 4px;
2859
+ height: auto;
2860
+ display: inline-flex;
2861
+ align-items: center;
2862
+ justify-content: center;
2863
+ border-radius: 50%;
2864
+ transition: background 0.2s, border-color 0.2s, opacity 0.2s, color 0.2s;
2865
+ opacity: 0.8;
2866
+ }
2867
+
2868
+ .profound-feedback-panel .feedback-approve-btn:hover:not(:disabled) {
2869
+ background: rgba(46, 182, 125, 0.15);
2870
+ color: #2eb67d;
2871
+ opacity: 1;
2872
+ }
2873
+
2874
+ .profound-feedback-panel .feedback-approve-btn:disabled {
2875
+ opacity: 0.4;
2876
+ cursor: not-allowed;
2877
+ }
2878
+
2879
+ .profound-feedback-panel .feedback-approve-btn svg {
2880
+ width: 18px;
2881
+ height: 18px;
2882
+ flex-shrink: 0;
2883
+ }
2884
+
2885
+ /* Approve Modal Specific Styles */
2886
+ .profound-approve-modal .modal-content {
2887
+ max-width: 560px;
2888
+ }
2889
+
2890
+ .profound-approve-modal .modal-section {
2891
+ margin-bottom: 20px;
2892
+ }
2893
+
2894
+ .profound-approve-modal .modal-section:last-child {
2895
+ margin-bottom: 0;
2896
+ }
2897
+
2898
+ .profound-approve-modal .modal-section label {
2899
+ display: block;
2900
+ margin-bottom: 8px;
2901
+ font-weight: 500;
2902
+ color: var(--feedback-text);
2903
+ font-size: 14px;
2904
+ }
2905
+
2906
+ .profound-approve-modal .modal-info {
2907
+ display: flex;
2908
+ gap: 16px;
2909
+ align-items: center;
2910
+ padding: 12px 16px;
2911
+ background: rgba(63, 114, 255, 0.05);
2912
+ border-radius: 6px;
2913
+ border: 1px solid var(--feedback-border);
2914
+ }
2915
+
2916
+ .profound-approve-modal .modal-repo {
2917
+ font-weight: 600;
2918
+ color: var(--feedback-text);
2919
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 'Consolas', monospace;
2920
+ font-size: 14px;
2921
+ }
2922
+
2923
+ .profound-approve-modal .modal-stats {
2924
+ color: var(--feedback-text-muted);
2925
+ font-size: 13px;
2926
+ }
2927
+
2928
+ .profound-approve-modal .modal-branches {
2929
+ margin-top: 12px;
2930
+ padding: 10px 16px;
2931
+ background: rgba(63, 114, 255, 0.08);
2932
+ border-radius: 6px;
2933
+ border-left: 3px solid var(--feedback-accent);
2934
+ }
2935
+
2936
+ .profound-approve-modal .branch-info {
2937
+ font-size: 13px;
2938
+ color: var(--feedback-text);
2939
+ }
2940
+
2941
+ .profound-approve-modal .branch-info code {
2942
+ background: rgba(0, 0, 0, 0.15);
2943
+ padding: 2px 6px;
2944
+ border-radius: 3px;
2945
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 'Consolas', monospace;
2946
+ font-size: 12px;
2947
+ color: var(--feedback-accent);
2948
+ font-weight: 500;
2949
+ }
2950
+
2951
+ .profound-approve-modal .branch-list {
2952
+ margin-top: 8px;
2953
+ display: flex;
2954
+ flex-direction: column;
2955
+ gap: 4px;
2956
+ }
2957
+
2958
+ .profound-approve-modal .branch-item {
2959
+ font-size: 13px;
2960
+ color: var(--feedback-text);
2961
+ }
2962
+
2963
+ .profound-approve-modal .branch-item strong {
2964
+ font-weight: 600;
2965
+ margin-right: 4px;
2966
+ }
2967
+
2968
+ .profound-approve-modal .commit-message-input {
2969
+ width: 100%;
2970
+ min-height: 120px;
2971
+ padding: 12px;
2972
+ border: 1px solid var(--feedback-border);
2973
+ border-radius: 6px;
2974
+ background: var(--feedback-surface-muted);
2975
+ color: var(--feedback-text);
2976
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 'Consolas', monospace;
2977
+ font-size: 14px;
2978
+ line-height: 1.5;
2979
+ resize: vertical;
2980
+ transition: border-color 0.2s ease;
2981
+ box-sizing: border-box;
2982
+ }
2983
+
2984
+ .profound-approve-modal .commit-message-input:focus {
2985
+ outline: none;
2986
+ border-color: var(--feedback-accent);
2987
+ }
2988
+
2989
+ .profound-approve-modal .commit-message-input::placeholder {
2990
+ color: var(--feedback-text-muted);
2991
+ }
2992
+
2993
+ .profound-approve-modal .checkbox-label {
2994
+ display: flex;
2995
+ align-items: center;
2996
+ gap: 8px;
2997
+ cursor: pointer;
2998
+ user-select: none;
2999
+ margin-bottom: 6px;
3000
+ font-weight: 400 !important;
3001
+ }
3002
+
3003
+ .profound-approve-modal .checkbox-label input[type="checkbox"] {
3004
+ width: 16px;
3005
+ height: 16px;
3006
+ margin: 0;
3007
+ cursor: pointer;
3008
+ accent-color: var(--feedback-accent);
3009
+ }
3010
+
3011
+ .profound-approve-modal .checkbox-label span {
3012
+ color: var(--feedback-text);
3013
+ font-size: 14px;
3014
+ font-weight: 400;
3015
+ }
3016
+
3017
+ .profound-approve-modal .new-branch-container {
3018
+ margin-top: 8px;
3019
+ margin-left: 26px;
3020
+ }
3021
+
3022
+ .profound-approve-modal .new-branch-input {
3023
+ width: 100%;
3024
+ padding: 10px 12px;
3025
+ border: 1px solid var(--feedback-border);
3026
+ border-radius: 6px;
3027
+ background: var(--feedback-surface-muted);
3028
+ color: var(--feedback-text);
3029
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', 'Consolas', monospace;
3030
+ font-size: 14px;
3031
+ box-sizing: border-box;
3032
+ }
3033
+
3034
+ .profound-approve-modal .new-branch-input:focus {
3035
+ outline: none;
3036
+ border-color: var(--feedback-accent);
3037
+ }
3038
+
3039
+ .profound-approve-modal .new-branch-input::placeholder {
3040
+ color: var(--feedback-text-muted);
3041
+ }
3042
+
3043
+ .profound-approve-modal .field-hint {
3044
+ margin-top: 6px;
3045
+ font-size: 12px;
3046
+ color: var(--feedback-text-muted);
3047
+ }
3048
+
3049
+ .profound-approve-modal .approve-modal-warning {
3050
+ display: flex;
3051
+ align-items: flex-start;
3052
+ gap: 10px;
3053
+ padding: 12px 14px;
3054
+ margin-bottom: 16px;
3055
+ background: rgba(244, 183, 64, 0.14);
3056
+ border: 1px solid #f4b740;
3057
+ border-radius: 6px;
3058
+ color: var(--feedback-text);
3059
+ font-size: 14px;
3060
+ }
3061
+
3062
+ .profound-approve-modal .approve-modal-warning .warning-icon {
3063
+ display: inline-flex;
3064
+ align-items: center;
3065
+ justify-content: center;
3066
+ width: 24px;
3067
+ height: 24px;
3068
+ border-radius: 50%;
3069
+ background: #f4b740;
3070
+ color: var(--feedback-surface);
3071
+ font-weight: 700;
3072
+ font-size: 14px;
3073
+ line-height: 1;
3074
+ flex-shrink: 0;
3075
+ }
3076
+
3077
+ .profound-approve-modal .approve-modal-error {
3078
+ display: flex;
3079
+ align-items: flex-start;
3080
+ gap: 10px;
3081
+ padding: 12px 14px;
3082
+ margin-bottom: 16px;
3083
+ background: rgba(239, 68, 68, 0.14);
3084
+ border: 1px solid #ef4444;
3085
+ border-radius: 6px;
3086
+ color: var(--feedback-text);
3087
+ font-size: 14px;
3088
+ }
3089
+
3090
+ .profound-approve-modal .approve-modal-error .error-icon {
3091
+ display: inline-flex;
3092
+ align-items: center;
3093
+ justify-content: center;
3094
+ width: 24px;
3095
+ height: 24px;
3096
+ border-radius: 50%;
3097
+ background: white;
3098
+ color: #ef4444;
3099
+ font-weight: 700;
3100
+ font-size: 14px;
3101
+ line-height: 1;
3102
+ flex-shrink: 0;
3103
+ border: 2px solid #ef4444;
3104
+ }
3105
+
3106
+ .profound-approve-modal .approve-modal-warning[hidden],
3107
+ .profound-approve-modal .approve-modal-error[hidden] {
3108
+ display: none;
3109
+ }
3110
+
3111
+ .profound-approve-modal .btn-primary {
3112
+ background: linear-gradient(135deg, #2eb67d 0%, #25a268 100%);
3113
+ color: white;
3114
+ border: none;
3115
+ padding: 10px 20px;
3116
+ border-radius: 6px;
3117
+ font-size: 14px;
3118
+ font-weight: 500;
3119
+ cursor: pointer;
3120
+ min-width: 140px;
3121
+ transition: all 0.2s;
3122
+ }
3123
+
3124
+ .profound-approve-modal .btn-primary:hover:not(:disabled) {
3125
+ box-shadow: 0 4px 12px rgba(46, 182, 125, 0.3);
3126
+ transform: translateY(-1px);
3127
+ }
3128
+
3129
+ .profound-approve-modal .btn-primary:disabled {
3130
+ opacity: 0.6;
3131
+ cursor: not-allowed;
3132
+ transform: none;
3133
+ }