claude-code-workflow 6.0.4 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/.claude/agents/action-planning-agent.md +1 -1
  2. package/.claude/agents/cli-execution-agent.md +269 -269
  3. package/.claude/agents/cli-explore-agent.md +182 -182
  4. package/.claude/agents/context-search-agent.md +582 -582
  5. package/.claude/agents/memory-bridge.md +93 -93
  6. package/.claude/commands/cli/cli-init.md +1 -1
  7. package/.claude/commands/memory/docs-full-cli.md +471 -471
  8. package/.claude/commands/memory/docs-related-cli.md +386 -386
  9. package/.claude/commands/memory/docs.md +615 -615
  10. package/.claude/commands/memory/load.md +1 -1
  11. package/.claude/commands/memory/update-full.md +332 -332
  12. package/.claude/commands/memory/update-related.md +5 -5
  13. package/.claude/commands/workflow/init.md +1 -1
  14. package/.claude/commands/workflow/lite-fix.md +621 -621
  15. package/.claude/commands/workflow/lite-plan.md +592 -592
  16. package/.claude/commands/workflow/tools/context-gather.md +434 -434
  17. package/.claude/commands/workflow/ui-design/generate.md +504 -504
  18. package/.claude/commands/workflow/ui-design/import-from-code.md +537 -537
  19. package/.claude/scripts/classify-folders.sh +4 -0
  20. package/.claude/scripts/convert_tokens_to_css.sh +4 -0
  21. package/.claude/scripts/detect_changed_modules.sh +5 -1
  22. package/.claude/scripts/discover-design-files.sh +87 -83
  23. package/.claude/scripts/generate_module_docs.sh +717 -713
  24. package/.claude/scripts/get_modules_by_depth.sh +5 -1
  25. package/.claude/scripts/ui-generate-preview.sh +4 -0
  26. package/.claude/scripts/ui-instantiate-prototypes.sh +4 -0
  27. package/.claude/scripts/update_module_claude.sh +4 -0
  28. package/.claude/skills/command-guide/index/all-commands.json +1 -12
  29. package/.claude/skills/command-guide/index/by-category.json +1 -12
  30. package/.claude/skills/command-guide/index/by-use-case.json +1 -12
  31. package/.claude/skills/command-guide/index/essential-commands.json +1 -12
  32. package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +127 -71
  33. package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +269 -269
  34. package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +182 -182
  35. package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +18 -38
  36. package/.claude/skills/command-guide/reference/agents/context-search-agent.md +582 -577
  37. package/.claude/skills/command-guide/reference/agents/memory-bridge.md +93 -93
  38. package/.claude/skills/command-guide/reference/commands/cli/cli-init.md +1 -1
  39. package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +471 -471
  40. package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +386 -386
  41. package/.claude/skills/command-guide/reference/commands/memory/docs.md +615 -610
  42. package/.claude/skills/command-guide/reference/commands/memory/load.md +1 -1
  43. package/.claude/skills/command-guide/reference/commands/memory/update-full.md +332 -332
  44. package/.claude/skills/command-guide/reference/commands/memory/update-related.md +5 -5
  45. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/artifacts.md +299 -451
  46. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +14 -37
  47. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/synthesis.md +252 -350
  48. package/.claude/skills/command-guide/reference/commands/workflow/init.md +2 -2
  49. package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +52 -0
  50. package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +621 -602
  51. package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +46 -36
  52. package/.claude/skills/command-guide/reference/commands/workflow/review-fix.md +18 -58
  53. package/.claude/skills/command-guide/reference/commands/workflow/review-module-cycle.md +22 -52
  54. package/.claude/skills/command-guide/reference/commands/workflow/review-session-cycle.md +19 -48
  55. package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +25 -5
  56. package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +1 -1
  57. package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +7 -7
  58. package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +434 -434
  59. package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +151 -11
  60. package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +4 -4
  61. package/.claude/skills/command-guide/reference/commands/workflow/tools/test-task-generate.md +1 -1
  62. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/generate.md +504 -504
  63. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +537 -537
  64. package/.claude/workflows/context-search-strategy.md +77 -77
  65. package/.claude/workflows/tool-strategy.md +90 -71
  66. package/.claude/workflows/workflow-architecture.md +1 -1
  67. package/ccw/package.json +6 -6
  68. package/ccw/src/cli.js +16 -0
  69. package/ccw/src/commands/stop.js +101 -0
  70. package/ccw/src/commands/tool.js +181 -0
  71. package/ccw/src/core/dashboard-generator.js +18 -3
  72. package/ccw/src/core/lite-scanner.js +35 -11
  73. package/ccw/src/core/server.js +583 -17
  74. package/ccw/src/templates/dashboard-css/01-base.css +161 -0
  75. package/ccw/src/templates/dashboard-css/02-session.css +726 -0
  76. package/ccw/src/templates/dashboard-css/03-tasks.css +512 -0
  77. package/ccw/src/templates/dashboard-css/04-lite-tasks.css +843 -0
  78. package/ccw/src/templates/dashboard-css/05-context.css +2206 -0
  79. package/ccw/src/templates/dashboard-css/06-cards.css +1570 -0
  80. package/ccw/src/templates/dashboard-css/07-managers.css +936 -0
  81. package/ccw/src/templates/dashboard-css/08-review.css +1266 -0
  82. package/ccw/src/templates/dashboard-css/09-explorer.css +1397 -0
  83. package/ccw/src/templates/dashboard-js/components/global-notifications.js +219 -0
  84. package/ccw/src/templates/dashboard-js/components/hook-manager.js +10 -0
  85. package/ccw/src/templates/dashboard-js/components/mcp-manager.js +24 -2
  86. package/ccw/src/templates/dashboard-js/components/navigation.js +11 -5
  87. package/ccw/src/templates/dashboard-js/components/tabs-context.js +20 -20
  88. package/ccw/src/templates/dashboard-js/components/tabs-other.js +11 -11
  89. package/ccw/src/templates/dashboard-js/components/theme.js +29 -1
  90. package/ccw/src/templates/dashboard-js/main.js +4 -0
  91. package/ccw/src/templates/dashboard-js/state.js +5 -0
  92. package/ccw/src/templates/dashboard-js/views/explorer.js +852 -0
  93. package/ccw/src/templates/dashboard-js/views/home.js +13 -9
  94. package/ccw/src/templates/dashboard-js/views/hook-manager.js +8 -5
  95. package/ccw/src/templates/dashboard-js/views/lite-tasks.js +21 -16
  96. package/ccw/src/templates/dashboard-js/views/mcp-manager.js +148 -8
  97. package/ccw/src/templates/dashboard-js/views/project-overview.js +15 -11
  98. package/ccw/src/templates/dashboard-js/views/review-session.js +3 -3
  99. package/ccw/src/templates/dashboard-js/views/session-detail.js +38 -28
  100. package/ccw/src/templates/dashboard.html +129 -28
  101. package/ccw/src/tools/classify-folders.js +204 -0
  102. package/ccw/src/tools/convert-tokens-to-css.js +250 -0
  103. package/ccw/src/tools/detect-changed-modules.js +288 -0
  104. package/ccw/src/tools/discover-design-files.js +134 -0
  105. package/ccw/src/tools/edit-file.js +266 -0
  106. package/ccw/src/tools/generate-module-docs.js +416 -0
  107. package/ccw/src/tools/get-modules-by-depth.js +308 -0
  108. package/ccw/src/tools/index.js +176 -0
  109. package/ccw/src/tools/ui-generate-preview.js +327 -0
  110. package/ccw/src/tools/ui-instantiate-prototypes.js +301 -0
  111. package/ccw/src/tools/update-module-claude.js +380 -0
  112. package/ccw/src/utils/browser-launcher.js +15 -4
  113. package/package.json +1 -1
  114. package/.claude/skills/command-guide/reference/commands/workflow/status.md +0 -352
  115. package/ccw/src/core/server.js.bak +0 -385
  116. package/ccw/src/core/server_original.bak +0 -385
  117. package/ccw/src/templates/dashboard.css +0 -8114
  118. package/ccw/src/templates/dashboard_tailwind.html +0 -42
  119. package/ccw/src/templates/dashboard_test.html +0 -37
  120. package/ccw/src/templates/tailwind-base.css +0 -212
@@ -0,0 +1,843 @@
1
+ /* ===================================
2
+ Lite Task Detail Page Additions
3
+ =================================== */
4
+
5
+ /* Path Tags */
6
+ .path-tags {
7
+ display: flex;
8
+ flex-wrap: wrap;
9
+ gap: 0.5rem;
10
+ }
11
+
12
+ .path-tag {
13
+ padding: 0.25rem 0.5rem;
14
+ background: hsl(var(--muted));
15
+ border-radius: 0.25rem;
16
+ font-family: var(--font-mono);
17
+ font-size: 0.8rem;
18
+ color: hsl(var(--foreground));
19
+ }
20
+
21
+ /* JSON Content */
22
+ .json-content {
23
+ background: hsl(var(--muted));
24
+ padding: 1rem;
25
+ border-radius: 0.5rem;
26
+ overflow-x: auto;
27
+ font-size: 0.75rem;
28
+ line-height: 1.6;
29
+ color: hsl(var(--foreground));
30
+ max-height: 500px;
31
+ overflow-y: auto;
32
+ white-space: pre-wrap;
33
+ word-break: break-word;
34
+ }
35
+
36
+ /* Button View JSON */
37
+ .btn-view-json {
38
+ padding: 0.25rem 0.5rem;
39
+ background: hsl(var(--muted));
40
+ border: 1px solid hsl(var(--border));
41
+ border-radius: 0.25rem;
42
+ font-size: 0.7rem;
43
+ font-family: var(--font-mono);
44
+ color: hsl(var(--muted-foreground));
45
+ cursor: pointer;
46
+ transition: all 0.15s;
47
+ }
48
+
49
+ .btn-view-json:hover {
50
+ background: hsl(var(--hover));
51
+ color: hsl(var(--foreground));
52
+ }
53
+
54
+ /* Context Fields */
55
+ .context-fields {
56
+ display: flex;
57
+ flex-direction: column;
58
+ gap: 1rem;
59
+ }
60
+
61
+ .context-section {
62
+ padding: 1rem;
63
+ background: hsl(var(--muted) / 0.3);
64
+ border: 1px solid hsl(var(--border));
65
+ border-radius: 0.5rem;
66
+ }
67
+
68
+ .context-section-title {
69
+ font-size: 1rem;
70
+ font-weight: 600;
71
+ color: hsl(var(--foreground));
72
+ margin-bottom: 0.75rem;
73
+ padding-bottom: 0.5rem;
74
+ border-bottom: 1px solid hsl(var(--border));
75
+ }
76
+
77
+ .context-field {
78
+ display: flex;
79
+ flex-direction: column;
80
+ gap: 0.25rem;
81
+ }
82
+
83
+ .context-label {
84
+ font-size: 0.75rem;
85
+ font-weight: 600;
86
+ color: hsl(var(--muted-foreground));
87
+ text-transform: uppercase;
88
+ letter-spacing: 0.025em;
89
+ }
90
+
91
+ .context-value {
92
+ font-size: 0.875rem;
93
+ color: hsl(var(--foreground));
94
+ line-height: 1.6;
95
+ }
96
+
97
+ .context-field label {
98
+ display: block;
99
+ font-size: 0.75rem;
100
+ font-weight: 600;
101
+ color: hsl(var(--muted-foreground));
102
+ margin-bottom: 0.5rem;
103
+ text-transform: uppercase;
104
+ }
105
+
106
+ .context-field p {
107
+ margin: 0;
108
+ font-size: 0.875rem;
109
+ color: hsl(var(--foreground));
110
+ line-height: 1.5;
111
+ }
112
+
113
+ .context-field ul {
114
+ margin: 0;
115
+ padding-left: 1.25rem;
116
+ font-size: 0.875rem;
117
+ color: hsl(var(--foreground));
118
+ }
119
+
120
+ .context-field ul li {
121
+ margin-bottom: 0.25rem;
122
+ }
123
+
124
+ /* Modification Points */
125
+ .mod-points {
126
+ display: flex;
127
+ flex-direction: column;
128
+ gap: 0.5rem;
129
+ }
130
+
131
+ .mod-point {
132
+ padding: 0.5rem;
133
+ background: hsl(var(--card));
134
+ border: 1px solid hsl(var(--border));
135
+ border-radius: 0.25rem;
136
+ }
137
+
138
+ .mod-target {
139
+ font-size: 0.75rem;
140
+ color: hsl(var(--muted-foreground));
141
+ margin-left: 0.5rem;
142
+ }
143
+
144
+ .mod-change {
145
+ margin: 0.5rem 0 0 0;
146
+ font-size: 0.8rem;
147
+ color: hsl(var(--foreground));
148
+ }
149
+
150
+ /* Implementation Steps */
151
+ .impl-steps {
152
+ margin: 0;
153
+ padding-left: 1.25rem;
154
+ font-size: 0.875rem;
155
+ color: hsl(var(--foreground));
156
+ }
157
+
158
+ .impl-steps li {
159
+ margin-bottom: 0.5rem;
160
+ line-height: 1.5;
161
+ }
162
+
163
+ /* Implementation Steps List (Drawer) */
164
+ .impl-steps-list {
165
+ display: flex;
166
+ flex-direction: column;
167
+ gap: 1rem;
168
+ }
169
+
170
+ .impl-step-item {
171
+ background: hsl(var(--muted) / 0.3);
172
+ border: 1px solid hsl(var(--border));
173
+ border-radius: 0.5rem;
174
+ padding: 1rem;
175
+ transition: border-color 0.2s;
176
+ }
177
+
178
+ .impl-step-item:hover {
179
+ border-color: hsl(var(--primary) / 0.5);
180
+ }
181
+
182
+ .impl-step-header {
183
+ display: flex;
184
+ align-items: center;
185
+ gap: 0.75rem;
186
+ margin-bottom: 0.5rem;
187
+ }
188
+
189
+ .impl-step-number {
190
+ display: inline-flex;
191
+ align-items: center;
192
+ justify-content: center;
193
+ min-width: 1.75rem;
194
+ height: 1.75rem;
195
+ padding: 0 0.5rem;
196
+ background: hsl(var(--primary));
197
+ color: hsl(var(--primary-foreground));
198
+ border-radius: 0.375rem;
199
+ font-size: 0.75rem;
200
+ font-weight: 600;
201
+ white-space: nowrap;
202
+ }
203
+
204
+ .impl-step-title {
205
+ font-weight: 600;
206
+ font-size: 0.9rem;
207
+ color: hsl(var(--foreground));
208
+ flex: 1;
209
+ }
210
+
211
+ .impl-step-desc {
212
+ font-size: 0.85rem;
213
+ color: hsl(var(--muted-foreground));
214
+ line-height: 1.5;
215
+ margin-bottom: 0.75rem;
216
+ padding-left: 2.5rem;
217
+ }
218
+
219
+ .impl-step-columns {
220
+ display: grid;
221
+ grid-template-columns: 1fr 1fr;
222
+ gap: 1rem;
223
+ margin-top: 0.75rem;
224
+ padding-top: 0.75rem;
225
+ border-top: 1px solid hsl(var(--border));
226
+ }
227
+
228
+ .impl-step-mods,
229
+ .impl-step-flow {
230
+ font-size: 0.8rem;
231
+ }
232
+
233
+ .impl-step-mods strong,
234
+ .impl-step-flow strong {
235
+ display: block;
236
+ font-size: 0.7rem;
237
+ text-transform: uppercase;
238
+ letter-spacing: 0.05em;
239
+ color: hsl(var(--muted-foreground));
240
+ margin-bottom: 0.5rem;
241
+ }
242
+
243
+ .impl-step-mods ul,
244
+ .impl-step-flow ol {
245
+ margin: 0;
246
+ padding-left: 1.25rem;
247
+ color: hsl(var(--foreground));
248
+ }
249
+
250
+ .impl-step-mods li,
251
+ .impl-step-flow li {
252
+ margin-bottom: 0.375rem;
253
+ line-height: 1.4;
254
+ }
255
+
256
+ .impl-step-mods code {
257
+ font-size: 0.75rem;
258
+ padding: 0.125rem 0.375rem;
259
+ background: hsl(var(--muted));
260
+ border-radius: 0.25rem;
261
+ color: hsl(var(--primary));
262
+ }
263
+
264
+ .impl-step-deps {
265
+ margin-top: 0.75rem;
266
+ padding-top: 0.5rem;
267
+ border-top: 1px dashed hsl(var(--border));
268
+ font-size: 0.75rem;
269
+ color: hsl(var(--muted-foreground));
270
+ }
271
+
272
+ .dep-badge {
273
+ display: inline-block;
274
+ padding: 0.125rem 0.5rem;
275
+ background: hsl(var(--muted));
276
+ border-radius: 0.25rem;
277
+ font-size: 0.7rem;
278
+ margin-left: 0.25rem;
279
+ }
280
+
281
+ /* Field Groups */
282
+ .field-group {
283
+ display: flex;
284
+ flex-direction: column;
285
+ gap: 0.5rem;
286
+ }
287
+
288
+ .field-row {
289
+ display: flex;
290
+ gap: 0.5rem;
291
+ font-size: 0.875rem;
292
+ }
293
+
294
+ .field-label {
295
+ font-weight: 500;
296
+ color: hsl(var(--muted-foreground));
297
+ min-width: 100px;
298
+ }
299
+
300
+ .field-value {
301
+ color: hsl(var(--foreground));
302
+ flex: 1;
303
+ }
304
+
305
+ .json-value-null {
306
+ color: hsl(var(--muted-foreground));
307
+ font-style: italic;
308
+ }
309
+
310
+ .json-value-boolean {
311
+ color: hsl(220 80% 60%);
312
+ }
313
+
314
+ .json-value-number {
315
+ color: hsl(142 71% 45%);
316
+ }
317
+
318
+ .json-value-string {
319
+ color: hsl(var(--foreground));
320
+ }
321
+
322
+ /* Array Items */
323
+ .array-value {
324
+ display: flex;
325
+ flex-wrap: wrap;
326
+ gap: 0.375rem;
327
+ }
328
+
329
+ .array-item {
330
+ padding: 0.125rem 0.375rem;
331
+ background: hsl(var(--muted));
332
+ border-radius: 0.25rem;
333
+ font-size: 0.8rem;
334
+ }
335
+
336
+ .array-item.path-item {
337
+ font-family: var(--font-mono);
338
+ background: hsl(var(--accent));
339
+ }
340
+
341
+ /* Nested Array */
342
+ .nested-array {
343
+ display: flex;
344
+ flex-direction: column;
345
+ gap: 0.5rem;
346
+ margin-top: 0.25rem;
347
+ }
348
+
349
+ .array-object {
350
+ padding: 0.5rem;
351
+ background: hsl(var(--card));
352
+ border: 1px solid hsl(var(--border));
353
+ border-radius: 0.25rem;
354
+ }
355
+
356
+ .array-object-header {
357
+ font-size: 0.7rem;
358
+ font-weight: 600;
359
+ color: hsl(var(--muted-foreground));
360
+ margin-bottom: 0.25rem;
361
+ }
362
+
363
+ /* Collapsible Sections */
364
+ .collapsible-section {
365
+ border-top: 1px solid hsl(var(--border));
366
+ }
367
+
368
+ .collapsible-header {
369
+ display: flex;
370
+ align-items: center;
371
+ gap: 0.5rem;
372
+ padding: 0.75rem 1rem;
373
+ cursor: pointer;
374
+ transition: background 0.15s;
375
+ }
376
+
377
+ .collapsible-header:hover {
378
+ background: hsl(var(--hover));
379
+ }
380
+
381
+ .collapse-icon {
382
+ font-size: 0.75rem;
383
+ color: hsl(var(--muted-foreground));
384
+ transition: transform 0.2s;
385
+ }
386
+
387
+ .collapsible-header.expanded .collapse-icon {
388
+ transform: rotate(90deg);
389
+ }
390
+
391
+ .section-label {
392
+ font-size: 0.75rem;
393
+ font-weight: 600;
394
+ color: hsl(var(--foreground));
395
+ text-transform: uppercase;
396
+ }
397
+
398
+ .section-preview {
399
+ flex: 1;
400
+ font-size: 0.75rem;
401
+ color: hsl(var(--muted-foreground));
402
+ text-align: right;
403
+ overflow: hidden;
404
+ text-overflow: ellipsis;
405
+ white-space: nowrap;
406
+ }
407
+
408
+ .collapsible-content {
409
+ padding: 1rem;
410
+ background: hsl(var(--muted));
411
+ }
412
+
413
+ .collapsible-content.collapsed {
414
+ display: none;
415
+ }
416
+
417
+ /* Summary Tab */
418
+ .summary-tab-content {
419
+ display: flex;
420
+ flex-direction: column;
421
+ gap: 1rem;
422
+ }
423
+
424
+ .summary-item-collapsible {
425
+ border: 1px solid hsl(var(--border));
426
+ border-radius: 0.5rem;
427
+ overflow: hidden;
428
+ }
429
+
430
+ .summary-collapsible-header {
431
+ display: flex;
432
+ align-items: center;
433
+ gap: 0.5rem;
434
+ padding: 0.75rem 1rem;
435
+ background: hsl(var(--card));
436
+ cursor: pointer;
437
+ transition: background 0.15s;
438
+ }
439
+
440
+ .summary-collapsible-header:hover {
441
+ background: hsl(var(--hover));
442
+ }
443
+
444
+ .summary-name {
445
+ font-weight: 600;
446
+ color: hsl(var(--foreground));
447
+ }
448
+
449
+ .summary-preview {
450
+ flex: 1;
451
+ font-size: 0.75rem;
452
+ color: hsl(var(--muted-foreground));
453
+ overflow: hidden;
454
+ text-overflow: ellipsis;
455
+ white-space: nowrap;
456
+ }
457
+
458
+ .summary-collapsible-content {
459
+ padding: 1rem;
460
+ background: hsl(var(--muted));
461
+ }
462
+
463
+ .summary-collapsible-content.collapsed {
464
+ display: none;
465
+ }
466
+
467
+ .summary-content-pre {
468
+ margin: 0;
469
+ white-space: pre-wrap;
470
+ word-break: break-word;
471
+ font-size: 0.8rem;
472
+ line-height: 1.6;
473
+ }
474
+
475
+ /* Summary Item Direct (No collapse) */
476
+ .summary-item-direct {
477
+ border: 1px solid hsl(var(--border));
478
+ border-radius: 0.5rem;
479
+ padding: 1rem;
480
+ background: hsl(var(--card));
481
+ }
482
+
483
+ .summary-item-direct .summary-content-pre {
484
+ margin-top: 0.5rem;
485
+ padding: 0.75rem;
486
+ background: hsl(var(--muted));
487
+ border-radius: 0.375rem;
488
+ }
489
+
490
+ .markdown-content {
491
+ background: hsl(var(--muted));
492
+ padding: 1rem;
493
+ border-radius: 0.5rem;
494
+ overflow-x: auto;
495
+ font-size: 0.8rem;
496
+ line-height: 1.6;
497
+ color: hsl(var(--foreground));
498
+ max-height: 600px;
499
+ overflow-y: auto;
500
+ white-space: pre-wrap;
501
+ word-break: break-word;
502
+ margin: 0;
503
+ }
504
+
505
+ /* JSON Modal */
506
+ .json-modal-overlay {
507
+ position: fixed;
508
+ inset: 0;
509
+ background: rgba(0, 0, 0, 0.5);
510
+ display: flex;
511
+ align-items: center;
512
+ justify-content: center;
513
+ z-index: 100;
514
+ opacity: 0;
515
+ transition: opacity 0.2s;
516
+ }
517
+
518
+ .json-modal-overlay.active {
519
+ opacity: 1;
520
+ }
521
+
522
+ .json-modal {
523
+ background: hsl(var(--card));
524
+ border-radius: 0.5rem;
525
+ width: 90%;
526
+ max-width: 700px;
527
+ max-height: 80vh;
528
+ display: flex;
529
+ flex-direction: column;
530
+ box-shadow: 0 8px 24px rgb(0 0 0 / 0.2);
531
+ }
532
+
533
+ .json-modal-header {
534
+ display: flex;
535
+ align-items: center;
536
+ justify-content: space-between;
537
+ padding: 1rem;
538
+ border-bottom: 1px solid hsl(var(--border));
539
+ }
540
+
541
+ .json-modal-title {
542
+ display: flex;
543
+ align-items: center;
544
+ gap: 0.5rem;
545
+ font-weight: 600;
546
+ color: hsl(var(--foreground));
547
+ }
548
+
549
+ .json-modal-close {
550
+ width: 2rem;
551
+ height: 2rem;
552
+ display: flex;
553
+ align-items: center;
554
+ justify-content: center;
555
+ background: none;
556
+ border: none;
557
+ font-size: 1.5rem;
558
+ color: hsl(var(--muted-foreground));
559
+ cursor: pointer;
560
+ border-radius: 0.25rem;
561
+ }
562
+
563
+ .json-modal-close:hover {
564
+ background: hsl(var(--hover));
565
+ color: hsl(var(--foreground));
566
+ }
567
+
568
+ .json-modal-body {
569
+ flex: 1;
570
+ overflow: auto;
571
+ padding: 1rem;
572
+ }
573
+
574
+ .json-modal-content {
575
+ margin: 0;
576
+ white-space: pre-wrap;
577
+ word-break: break-word;
578
+ font-size: 0.75rem;
579
+ line-height: 1.6;
580
+ color: hsl(var(--foreground));
581
+ }
582
+
583
+ .json-modal-footer {
584
+ padding: 1rem;
585
+ border-top: 1px solid hsl(var(--border));
586
+ display: flex;
587
+ justify-content: flex-end;
588
+ }
589
+
590
+ .btn-copy-json {
591
+ padding: 0.5rem 1rem;
592
+ background: hsl(var(--primary));
593
+ color: hsl(var(--primary-foreground));
594
+ border: none;
595
+ border-radius: 0.375rem;
596
+ font-size: 0.875rem;
597
+ cursor: pointer;
598
+ transition: opacity 0.15s;
599
+ }
600
+
601
+ .btn-copy-json:hover {
602
+ opacity: 0.9;
603
+ }
604
+
605
+ /* Flowchart Fallback */
606
+ .flowchart-fallback {
607
+ display: flex;
608
+ align-items: center;
609
+ justify-content: center;
610
+ height: 200px;
611
+ color: hsl(var(--muted-foreground));
612
+ font-size: 0.875rem;
613
+ }
614
+
615
+ /* ===================================
616
+ Markdown Modal
617
+ =================================== */
618
+ .markdown-modal.hidden {
619
+ display: none;
620
+ }
621
+
622
+ .md-tab-btn {
623
+ color: hsl(var(--muted-foreground));
624
+ }
625
+
626
+ .md-tab-btn.active {
627
+ background: hsl(var(--background));
628
+ color: hsl(var(--foreground));
629
+ font-weight: 500;
630
+ }
631
+
632
+ .md-tab-btn:hover:not(.active) {
633
+ color: hsl(var(--foreground));
634
+ }
635
+
636
+ /* Markdown Preview Prose Styles */
637
+ .markdown-preview {
638
+ color: hsl(var(--foreground));
639
+ line-height: 1.7;
640
+ }
641
+
642
+ .markdown-preview h1,
643
+ .markdown-preview h2,
644
+ .markdown-preview h3,
645
+ .markdown-preview h4,
646
+ .markdown-preview h5,
647
+ .markdown-preview h6 {
648
+ color: hsl(var(--foreground));
649
+ font-weight: 600;
650
+ margin-top: 1.5em;
651
+ margin-bottom: 0.5em;
652
+ line-height: 1.3;
653
+ }
654
+
655
+ .markdown-preview h1 { font-size: 1.75rem; border-bottom: 1px solid hsl(var(--border)); padding-bottom: 0.3em; }
656
+ .markdown-preview h2 { font-size: 1.5rem; border-bottom: 1px solid hsl(var(--border)); padding-bottom: 0.3em; }
657
+ .markdown-preview h3 { font-size: 1.25rem; }
658
+ .markdown-preview h4 { font-size: 1.1rem; }
659
+
660
+ .markdown-preview p {
661
+ margin-bottom: 1em;
662
+ }
663
+
664
+ .markdown-preview ul,
665
+ .markdown-preview ol {
666
+ margin-bottom: 1em;
667
+ padding-left: 1.5em;
668
+ }
669
+
670
+ .markdown-preview li {
671
+ margin-bottom: 0.25em;
672
+ }
673
+
674
+ .markdown-preview code {
675
+ background: hsl(var(--muted));
676
+ padding: 0.125rem 0.375rem;
677
+ border-radius: 0.25rem;
678
+ font-size: 0.875em;
679
+ color: hsl(var(--primary));
680
+ }
681
+
682
+ .markdown-preview pre {
683
+ background: hsl(var(--muted));
684
+ padding: 1rem;
685
+ border-radius: 0.5rem;
686
+ overflow-x: auto;
687
+ margin-bottom: 1em;
688
+ }
689
+
690
+ .markdown-preview pre code {
691
+ background: none;
692
+ padding: 0;
693
+ color: hsl(var(--foreground));
694
+ }
695
+
696
+ .markdown-preview blockquote {
697
+ border-left: 3px solid hsl(var(--primary));
698
+ padding-left: 1rem;
699
+ margin-left: 0;
700
+ margin-bottom: 1em;
701
+ color: hsl(var(--muted-foreground));
702
+ font-style: italic;
703
+ }
704
+
705
+ .markdown-preview table {
706
+ width: 100%;
707
+ border-collapse: collapse;
708
+ margin-bottom: 1em;
709
+ }
710
+
711
+ .markdown-preview th,
712
+ .markdown-preview td {
713
+ border: 1px solid hsl(var(--border));
714
+ padding: 0.5rem 0.75rem;
715
+ text-align: left;
716
+ }
717
+
718
+ .markdown-preview th {
719
+ background: hsl(var(--muted));
720
+ font-weight: 600;
721
+ }
722
+
723
+ .markdown-preview a {
724
+ color: hsl(var(--primary));
725
+ text-decoration: underline;
726
+ }
727
+
728
+ .markdown-preview hr {
729
+ border: none;
730
+ border-top: 1px solid hsl(var(--border));
731
+ margin: 1.5em 0;
732
+ }
733
+
734
+ /* View Details Button */
735
+ .btn-view-details {
736
+ display: inline-flex;
737
+ align-items: center;
738
+ gap: 0.375rem;
739
+ padding: 0.375rem 0.75rem;
740
+ background: hsl(var(--primary));
741
+ color: hsl(var(--primary-foreground));
742
+ border: none;
743
+ border-radius: 0.375rem;
744
+ font-size: 0.8rem;
745
+ cursor: pointer;
746
+ transition: opacity 0.15s;
747
+ }
748
+
749
+ .btn-view-details:hover {
750
+ opacity: 0.9;
751
+ }
752
+
753
+ .summary-item-card {
754
+ background: hsl(var(--muted) / 0.3);
755
+ border: 1px solid hsl(var(--border));
756
+ border-radius: 0.5rem;
757
+ padding: 1rem;
758
+ margin-bottom: 0.75rem;
759
+ }
760
+
761
+ .summary-item-header {
762
+ display: flex;
763
+ align-items: center;
764
+ justify-content: space-between;
765
+ gap: 1rem;
766
+ }
767
+
768
+ .summary-item-name {
769
+ font-weight: 500;
770
+ color: hsl(var(--foreground));
771
+ display: flex;
772
+ align-items: center;
773
+ gap: 0.5rem;
774
+ }
775
+
776
+ .summary-item-title {
777
+ font-weight: 600;
778
+ font-size: 0.95rem;
779
+ color: hsl(var(--foreground));
780
+ margin: 0;
781
+ }
782
+
783
+ .summary-item-preview {
784
+ font-size: 0.8rem;
785
+ color: hsl(var(--muted-foreground));
786
+ margin-top: 0.5rem;
787
+ line-height: 1.5;
788
+ }
789
+
790
+ .summary-preview-text {
791
+ margin: 0;
792
+ padding: 0.75rem;
793
+ background: hsl(var(--muted) / 0.5);
794
+ border-radius: 0.25rem;
795
+ font-size: 0.75rem;
796
+ line-height: 1.4;
797
+ white-space: pre-wrap;
798
+ word-break: break-word;
799
+ max-height: 80px;
800
+ overflow: hidden;
801
+ }
802
+
803
+ .impl-plan-card {
804
+ background: hsl(var(--muted) / 0.3);
805
+ border: 1px solid hsl(var(--border));
806
+ border-radius: 0.5rem;
807
+ padding: 1rem;
808
+ }
809
+
810
+ .impl-plan-header {
811
+ display: flex;
812
+ align-items: center;
813
+ justify-content: space-between;
814
+ margin-bottom: 0.75rem;
815
+ }
816
+
817
+ .impl-plan-title {
818
+ font-weight: 600;
819
+ color: hsl(var(--foreground));
820
+ display: flex;
821
+ align-items: center;
822
+ gap: 0.5rem;
823
+ }
824
+
825
+ .impl-plan-preview {
826
+ font-size: 0.8rem;
827
+ color: hsl(var(--muted-foreground));
828
+ line-height: 1.5;
829
+ }
830
+
831
+ .impl-plan-preview-text {
832
+ margin: 0;
833
+ padding: 0.75rem;
834
+ background: hsl(var(--muted) / 0.5);
835
+ border-radius: 0.25rem;
836
+ font-size: 0.75rem;
837
+ line-height: 1.4;
838
+ white-space: pre-wrap;
839
+ word-break: break-word;
840
+ max-height: 100px;
841
+ overflow: hidden;
842
+ }
843
+