claude-code-workflow 6.0.5 → 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 (117) 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/src/cli.js +7 -0
  68. package/ccw/src/commands/tool.js +181 -0
  69. package/ccw/src/core/dashboard-generator.js +18 -3
  70. package/ccw/src/core/lite-scanner.js +35 -11
  71. package/ccw/src/core/server.js +531 -46
  72. package/ccw/src/templates/dashboard-css/01-base.css +161 -0
  73. package/ccw/src/templates/dashboard-css/02-session.css +726 -0
  74. package/ccw/src/templates/dashboard-css/03-tasks.css +512 -0
  75. package/ccw/src/templates/dashboard-css/04-lite-tasks.css +843 -0
  76. package/ccw/src/templates/dashboard-css/05-context.css +2206 -0
  77. package/ccw/src/templates/dashboard-css/06-cards.css +1570 -0
  78. package/ccw/src/templates/dashboard-css/07-managers.css +936 -0
  79. package/ccw/src/templates/dashboard-css/08-review.css +1266 -0
  80. package/ccw/src/templates/dashboard-css/09-explorer.css +1397 -0
  81. package/ccw/src/templates/dashboard-js/components/global-notifications.js +219 -0
  82. package/ccw/src/templates/dashboard-js/components/hook-manager.js +10 -0
  83. package/ccw/src/templates/dashboard-js/components/mcp-manager.js +11 -1
  84. package/ccw/src/templates/dashboard-js/components/navigation.js +11 -5
  85. package/ccw/src/templates/dashboard-js/components/tabs-context.js +20 -20
  86. package/ccw/src/templates/dashboard-js/components/tabs-other.js +11 -11
  87. package/ccw/src/templates/dashboard-js/components/theme.js +29 -1
  88. package/ccw/src/templates/dashboard-js/main.js +4 -0
  89. package/ccw/src/templates/dashboard-js/state.js +5 -0
  90. package/ccw/src/templates/dashboard-js/views/explorer.js +852 -0
  91. package/ccw/src/templates/dashboard-js/views/home.js +13 -9
  92. package/ccw/src/templates/dashboard-js/views/hook-manager.js +8 -5
  93. package/ccw/src/templates/dashboard-js/views/lite-tasks.js +21 -16
  94. package/ccw/src/templates/dashboard-js/views/mcp-manager.js +90 -19
  95. package/ccw/src/templates/dashboard-js/views/project-overview.js +15 -11
  96. package/ccw/src/templates/dashboard-js/views/review-session.js +3 -3
  97. package/ccw/src/templates/dashboard-js/views/session-detail.js +38 -28
  98. package/ccw/src/templates/dashboard.html +129 -28
  99. package/ccw/src/tools/classify-folders.js +204 -0
  100. package/ccw/src/tools/convert-tokens-to-css.js +250 -0
  101. package/ccw/src/tools/detect-changed-modules.js +288 -0
  102. package/ccw/src/tools/discover-design-files.js +134 -0
  103. package/ccw/src/tools/edit-file.js +266 -0
  104. package/ccw/src/tools/generate-module-docs.js +416 -0
  105. package/ccw/src/tools/get-modules-by-depth.js +308 -0
  106. package/ccw/src/tools/index.js +176 -0
  107. package/ccw/src/tools/ui-generate-preview.js +327 -0
  108. package/ccw/src/tools/ui-instantiate-prototypes.js +301 -0
  109. package/ccw/src/tools/update-module-claude.js +380 -0
  110. package/package.json +1 -1
  111. package/.claude/skills/command-guide/reference/commands/workflow/status.md +0 -352
  112. package/ccw/src/core/server.js.bak +0 -385
  113. package/ccw/src/core/server_original.bak +0 -385
  114. package/ccw/src/templates/dashboard.css +0 -8187
  115. package/ccw/src/templates/dashboard_tailwind.html +0 -42
  116. package/ccw/src/templates/dashboard_test.html +0 -37
  117. package/ccw/src/templates/tailwind-base.css +0 -212
@@ -0,0 +1,1570 @@
1
+ /* ===================================
2
+ Context Package Card UI (New)
3
+ =================================== */
4
+ .ctx-header-card {
5
+ background: hsl(var(--card));
6
+ border: 1px solid hsl(var(--border));
7
+ border-radius: 0.5rem;
8
+ padding: 1rem 1.25rem;
9
+ margin-bottom: 1rem;
10
+ }
11
+
12
+ .ctx-header-content {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: space-between;
16
+ }
17
+
18
+ .ctx-card {
19
+ background: hsl(var(--card));
20
+ border: 1px solid hsl(var(--border));
21
+ border-radius: 0.5rem;
22
+ margin-bottom: 1rem;
23
+ overflow: hidden;
24
+ }
25
+
26
+ .ctx-card-warning {
27
+ border-color: hsl(var(--warning) / 0.5);
28
+ }
29
+
30
+ .ctx-card-header {
31
+ display: flex;
32
+ align-items: center;
33
+ gap: 0.5rem;
34
+ padding: 0.875rem 1rem;
35
+ background: hsl(var(--muted) / 0.3);
36
+ border-bottom: 1px solid hsl(var(--border));
37
+ }
38
+
39
+ .ctx-card-icon {
40
+ font-size: 1rem;
41
+ }
42
+
43
+ .ctx-card-title {
44
+ font-size: 0.9rem;
45
+ font-weight: 600;
46
+ color: hsl(var(--foreground));
47
+ margin: 0;
48
+ flex: 1;
49
+ }
50
+
51
+ .ctx-card-body {
52
+ padding: 1rem;
53
+ }
54
+
55
+ .ctx-count-badge {
56
+ padding: 0.125rem 0.5rem;
57
+ background: hsl(var(--muted));
58
+ border-radius: 9999px;
59
+ font-size: 0.7rem;
60
+ color: hsl(var(--muted-foreground));
61
+ }
62
+
63
+ /* Metadata styles - Horizontal chip layout */
64
+ .ctx-meta-row {
65
+ display: flex;
66
+ flex-wrap: wrap;
67
+ gap: 1rem;
68
+ margin-top: 0.75rem;
69
+ padding: 0.75rem;
70
+ background: hsl(var(--muted) / 0.2);
71
+ border-radius: 0.5rem;
72
+ }
73
+
74
+ .ctx-meta-chip {
75
+ display: flex;
76
+ align-items: center;
77
+ gap: 0.5rem;
78
+ }
79
+
80
+ .ctx-meta-chip-label {
81
+ font-size: 0.65rem;
82
+ font-weight: 600;
83
+ color: hsl(var(--muted-foreground));
84
+ letter-spacing: 0.05em;
85
+ }
86
+
87
+ .ctx-meta-chip-value {
88
+ font-size: 0.8rem;
89
+ color: hsl(var(--foreground));
90
+ }
91
+
92
+ code.ctx-meta-chip-value {
93
+ font-family: var(--font-mono);
94
+ background: hsl(var(--background));
95
+ padding: 0.25rem 0.5rem;
96
+ border-radius: 0.25rem;
97
+ border: 1px solid hsl(var(--border) / 0.5);
98
+ }
99
+
100
+ .ctx-keywords-row {
101
+ display: flex;
102
+ flex-wrap: wrap;
103
+ gap: 0.375rem;
104
+ margin-top: 0.75rem;
105
+ }
106
+
107
+ /* Legacy grid - keep for backwards compatibility */
108
+ .ctx-meta-grid {
109
+ display: grid;
110
+ grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
111
+ gap: 0.75rem;
112
+ margin-top: 0.75rem;
113
+ }
114
+
115
+ .ctx-meta-item {
116
+ display: flex;
117
+ flex-direction: column;
118
+ gap: 0.25rem;
119
+ }
120
+
121
+ .ctx-meta-value-code {
122
+ font-size: 0.75rem;
123
+ font-family: var(--font-mono);
124
+ color: hsl(var(--primary));
125
+ background: hsl(var(--muted) / 0.5);
126
+ padding: 0.25rem 0.5rem;
127
+ border-radius: 0.25rem;
128
+ word-break: break-all;
129
+ }
130
+
131
+ .ctx-complexity-badge {
132
+ padding: 0.25rem 0.625rem;
133
+ border-radius: 0.25rem;
134
+ font-size: 0.7rem;
135
+ font-weight: 600;
136
+ text-transform: uppercase;
137
+ display: inline-block;
138
+ }
139
+
140
+ .ctx-complexity-low {
141
+ background: hsl(var(--success) / 0.15);
142
+ color: hsl(142 76% 36%);
143
+ }
144
+
145
+ .ctx-complexity-medium {
146
+ background: hsl(var(--warning) / 0.15);
147
+ color: hsl(38 92% 40%);
148
+ }
149
+
150
+ .ctx-complexity-high {
151
+ background: hsl(var(--destructive) / 0.15);
152
+ color: hsl(0 84% 50%);
153
+ }
154
+
155
+ /* Pattern tags */
156
+ .ctx-pattern-tags {
157
+ display: flex;
158
+ flex-wrap: wrap;
159
+ gap: 0.5rem;
160
+ }
161
+
162
+ .ctx-pattern-tag {
163
+ padding: 0.375rem 0.75rem;
164
+ background: hsl(var(--primary) / 0.1);
165
+ border: 1px solid hsl(var(--primary) / 0.2);
166
+ color: hsl(var(--primary));
167
+ border-radius: 0.375rem;
168
+ font-size: 0.8rem;
169
+ font-weight: 500;
170
+ }
171
+
172
+ /* Tech Stack section */
173
+ .ctx-stack-section {
174
+ display: flex;
175
+ flex-wrap: wrap;
176
+ align-items: center;
177
+ gap: 0.5rem;
178
+ padding: 0.5rem 0;
179
+ border-bottom: 1px solid hsl(var(--border) / 0.5);
180
+ }
181
+
182
+ .ctx-stack-section:last-child {
183
+ border-bottom: none;
184
+ }
185
+
186
+ .ctx-stack-tags {
187
+ display: flex;
188
+ flex-wrap: wrap;
189
+ gap: 0.375rem;
190
+ }
191
+
192
+ .ctx-lang-tag {
193
+ padding: 0.25rem 0.625rem;
194
+ background: hsl(217 91% 60% / 0.15);
195
+ color: hsl(217 91% 50%);
196
+ border-radius: 0.25rem;
197
+ font-size: 0.75rem;
198
+ font-weight: 500;
199
+ }
200
+
201
+ .ctx-framework-tag {
202
+ padding: 0.25rem 0.625rem;
203
+ background: hsl(142 76% 36% / 0.15);
204
+ color: hsl(142 76% 30%);
205
+ border-radius: 0.25rem;
206
+ font-size: 0.75rem;
207
+ font-weight: 500;
208
+ }
209
+
210
+ .ctx-frontend-tag {
211
+ padding: 0.25rem 0.625rem;
212
+ background: hsl(280 68% 60% / 0.15);
213
+ color: hsl(280 68% 45%);
214
+ border-radius: 0.25rem;
215
+ font-size: 0.75rem;
216
+ font-weight: 500;
217
+ }
218
+
219
+ .ctx-backend-tag {
220
+ padding: 0.25rem 0.625rem;
221
+ background: hsl(24 95% 53% / 0.15);
222
+ color: hsl(24 95% 40%);
223
+ border-radius: 0.25rem;
224
+ font-size: 0.75rem;
225
+ font-weight: 500;
226
+ }
227
+
228
+ .ctx-lib-tag {
229
+ padding: 0.25rem 0.625rem;
230
+ background: hsl(var(--muted));
231
+ color: hsl(var(--foreground));
232
+ border-radius: 0.25rem;
233
+ font-size: 0.75rem;
234
+ }
235
+
236
+ /* Conventions section */
237
+ .ctx-conv-section {
238
+ padding: 0.5rem 0;
239
+ border-bottom: 1px solid hsl(var(--border) / 0.5);
240
+ }
241
+
242
+ .ctx-conv-section:last-child {
243
+ border-bottom: none;
244
+ }
245
+
246
+ .ctx-conv-label {
247
+ font-size: 0.75rem;
248
+ font-weight: 600;
249
+ color: hsl(var(--muted-foreground));
250
+ text-transform: uppercase;
251
+ display: block;
252
+ margin-bottom: 0.5rem;
253
+ }
254
+
255
+ .ctx-conv-items {
256
+ display: grid;
257
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
258
+ gap: 0.5rem;
259
+ }
260
+
261
+ .ctx-conv-item {
262
+ display: flex;
263
+ flex-direction: column;
264
+ gap: 0.125rem;
265
+ padding: 0.5rem;
266
+ background: hsl(var(--muted) / 0.3);
267
+ border-radius: 0.25rem;
268
+ }
269
+
270
+ .ctx-conv-key {
271
+ font-size: 0.7rem;
272
+ font-weight: 600;
273
+ color: hsl(var(--primary));
274
+ text-transform: capitalize;
275
+ }
276
+
277
+ .ctx-conv-value {
278
+ font-size: 0.75rem;
279
+ color: hsl(var(--foreground));
280
+ }
281
+
282
+ /* Assets section - New Card Grid Layout */
283
+ .ctx-assets-category {
284
+ margin-bottom: 1rem;
285
+ }
286
+
287
+ .ctx-assets-category:last-child {
288
+ margin-bottom: 0;
289
+ }
290
+
291
+ .ctx-assets-cat-header {
292
+ display: flex;
293
+ align-items: center;
294
+ gap: 0.5rem;
295
+ margin-bottom: 0.75rem;
296
+ padding-bottom: 0.5rem;
297
+ border-bottom: 1px solid hsl(var(--border) / 0.3);
298
+ }
299
+
300
+ .ctx-assets-cat-icon {
301
+ font-size: 1rem;
302
+ }
303
+
304
+ .ctx-assets-cat-title {
305
+ font-size: 0.85rem;
306
+ font-weight: 600;
307
+ color: hsl(var(--foreground));
308
+ flex: 1;
309
+ }
310
+
311
+ .ctx-assets-cat-count {
312
+ padding: 0.125rem 0.5rem;
313
+ background: hsl(var(--primary) / 0.1);
314
+ color: hsl(var(--primary));
315
+ border-radius: 9999px;
316
+ font-size: 0.7rem;
317
+ font-weight: 600;
318
+ }
319
+
320
+ .ctx-assets-card-grid {
321
+ display: flex;
322
+ flex-direction: column;
323
+ gap: 0.5rem;
324
+ }
325
+
326
+ .ctx-asset-card {
327
+ display: flex;
328
+ align-items: center;
329
+ gap: 0.75rem;
330
+ }
331
+
332
+ .ctx-asset-card-path {
333
+ display: inline-block;
334
+ font-size: 0.8rem;
335
+ font-weight: 400;
336
+ color: hsl(var(--foreground));
337
+ padding: 0.5rem 0.75rem;
338
+ background: hsl(var(--muted) / 0.3);
339
+ border: 1px solid hsl(var(--border) / 0.5);
340
+ border-radius: 0.375rem;
341
+ }
342
+
343
+ .ctx-asset-card-badge {
344
+ flex-shrink: 0;
345
+ padding: 0.25rem 0.625rem;
346
+ border-radius: 9999px;
347
+ font-size: 0.75rem;
348
+ font-weight: 500;
349
+ text-transform: capitalize;
350
+ white-space: nowrap;
351
+ }
352
+
353
+ .ctx-relevance-badge {
354
+ background: hsl(142 76% 36% / 0.12);
355
+ color: hsl(142 76% 30%);
356
+ border: 1px solid hsl(142 76% 36% / 0.2);
357
+ }
358
+
359
+ .ctx-role-badge {
360
+ background: hsl(217 91% 60% / 0.1);
361
+ color: hsl(217 91% 45%);
362
+ border: 1px solid hsl(217 91% 60% / 0.2);
363
+ }
364
+
365
+ .ctx-test-badge {
366
+ background: hsl(280 68% 60% / 0.1);
367
+ color: hsl(280 68% 45%);
368
+ border: 1px solid hsl(280 68% 60% / 0.2);
369
+ }
370
+
371
+ /* Legacy list styles - keep for backwards compatibility */
372
+ .ctx-assets-section {
373
+ padding: 0.75rem 0;
374
+ border-bottom: 1px solid hsl(var(--border) / 0.5);
375
+ }
376
+
377
+ .ctx-assets-section:last-child {
378
+ border-bottom: none;
379
+ }
380
+
381
+ .ctx-assets-header {
382
+ display: flex;
383
+ align-items: center;
384
+ gap: 0.5rem;
385
+ margin-bottom: 0.5rem;
386
+ }
387
+
388
+ .ctx-assets-icon {
389
+ font-size: 0.875rem;
390
+ }
391
+
392
+ .ctx-assets-label {
393
+ font-size: 0.8rem;
394
+ font-weight: 600;
395
+ color: hsl(var(--foreground));
396
+ flex: 1;
397
+ }
398
+
399
+ .ctx-assets-count {
400
+ padding: 0.125rem 0.5rem;
401
+ background: hsl(var(--muted));
402
+ border-radius: 9999px;
403
+ font-size: 0.65rem;
404
+ color: hsl(var(--muted-foreground));
405
+ }
406
+
407
+ .ctx-assets-list {
408
+ display: flex;
409
+ flex-direction: column;
410
+ gap: 0.375rem;
411
+ }
412
+
413
+ .ctx-asset-item {
414
+ display: flex;
415
+ align-items: center;
416
+ justify-content: space-between;
417
+ gap: 0.5rem;
418
+ padding: 0.375rem 0.5rem;
419
+ background: hsl(var(--muted) / 0.3);
420
+ border-radius: 0.25rem;
421
+ }
422
+
423
+ .ctx-asset-path {
424
+ font-size: 0.7rem;
425
+ color: hsl(var(--foreground));
426
+ font-family: var(--font-mono);
427
+ flex: 1;
428
+ overflow: hidden;
429
+ text-overflow: ellipsis;
430
+ white-space: nowrap;
431
+ }
432
+
433
+ .ctx-asset-relevance {
434
+ padding: 0.125rem 0.375rem;
435
+ background: var(--rel-color);
436
+ color: white;
437
+ border-radius: 0.25rem;
438
+ font-size: 0.6rem;
439
+ font-weight: 600;
440
+ }
441
+
442
+ .ctx-asset-role {
443
+ padding: 0.125rem 0.375rem;
444
+ border-radius: 0.25rem;
445
+ font-size: 0.6rem;
446
+ font-weight: 500;
447
+ text-transform: capitalize;
448
+ }
449
+
450
+ .ctx-role-primary {
451
+ background: hsl(var(--primary) / 0.15);
452
+ color: hsl(var(--primary));
453
+ }
454
+
455
+ .ctx-role-secondary {
456
+ background: hsl(var(--muted));
457
+ color: hsl(var(--muted-foreground));
458
+ }
459
+
460
+ .ctx-test-count {
461
+ padding: 0.125rem 0.375rem;
462
+ background: hsl(142 76% 36% / 0.15);
463
+ color: hsl(142 76% 30%);
464
+ border-radius: 0.25rem;
465
+ font-size: 0.6rem;
466
+ font-weight: 500;
467
+ }
468
+
469
+ .ctx-assets-more {
470
+ font-size: 0.7rem;
471
+ color: hsl(var(--muted-foreground));
472
+ text-align: center;
473
+ padding: 0.25rem;
474
+ }
475
+
476
+ /* Dependencies section */
477
+ .ctx-deps-section {
478
+ padding: 0.75rem 0;
479
+ border-bottom: 1px solid hsl(var(--border) / 0.5);
480
+ }
481
+
482
+ .ctx-deps-section:last-child {
483
+ border-bottom: none;
484
+ }
485
+
486
+ .ctx-deps-header {
487
+ display: flex;
488
+ align-items: center;
489
+ gap: 0.5rem;
490
+ margin-bottom: 0.5rem;
491
+ }
492
+
493
+ .ctx-deps-label {
494
+ font-size: 0.8rem;
495
+ font-weight: 600;
496
+ color: hsl(var(--foreground));
497
+ flex: 1;
498
+ }
499
+
500
+ .ctx-deps-count {
501
+ padding: 0.125rem 0.5rem;
502
+ background: hsl(var(--muted));
503
+ border-radius: 9999px;
504
+ font-size: 0.65rem;
505
+ color: hsl(var(--muted-foreground));
506
+ }
507
+
508
+ .ctx-deps-list {
509
+ display: flex;
510
+ flex-direction: column;
511
+ gap: 0.375rem;
512
+ }
513
+
514
+ .ctx-dep-item {
515
+ display: flex;
516
+ align-items: center;
517
+ gap: 0.5rem;
518
+ padding: 0.375rem 0.5rem;
519
+ background: hsl(var(--muted) / 0.3);
520
+ border-radius: 0.25rem;
521
+ font-size: 0.7rem;
522
+ }
523
+
524
+ .ctx-dep-from,
525
+ .ctx-dep-to {
526
+ font-family: var(--font-mono);
527
+ color: hsl(var(--foreground));
528
+ flex: 1;
529
+ overflow: hidden;
530
+ text-overflow: ellipsis;
531
+ white-space: nowrap;
532
+ }
533
+
534
+ .ctx-dep-arrow {
535
+ color: hsl(var(--muted-foreground));
536
+ }
537
+
538
+ .ctx-dep-type {
539
+ padding: 0.125rem 0.375rem;
540
+ background: hsl(var(--muted));
541
+ border-radius: 0.25rem;
542
+ font-size: 0.6rem;
543
+ color: hsl(var(--muted-foreground));
544
+ }
545
+
546
+ .ctx-deps-packages {
547
+ display: flex;
548
+ flex-wrap: wrap;
549
+ gap: 0.375rem;
550
+ }
551
+
552
+ .ctx-pkg-tag {
553
+ padding: 0.25rem 0.5rem;
554
+ background: hsl(var(--muted));
555
+ border-radius: 0.25rem;
556
+ font-size: 0.7rem;
557
+ font-family: var(--font-mono);
558
+ color: hsl(var(--foreground));
559
+ }
560
+
561
+ .ctx-deps-more {
562
+ font-size: 0.7rem;
563
+ color: hsl(var(--muted-foreground));
564
+ text-align: center;
565
+ padding: 0.25rem;
566
+ }
567
+
568
+ /* Test context section */
569
+ .ctx-test-stats {
570
+ display: flex;
571
+ gap: 1rem;
572
+ margin-bottom: 0.75rem;
573
+ }
574
+
575
+ .ctx-stat-box {
576
+ display: flex;
577
+ flex-direction: column;
578
+ align-items: center;
579
+ padding: 0.75rem 1rem;
580
+ background: hsl(var(--muted) / 0.3);
581
+ border-radius: 0.375rem;
582
+ min-width: 80px;
583
+ }
584
+
585
+ .ctx-stat-value {
586
+ font-size: 1.25rem;
587
+ font-weight: 700;
588
+ color: hsl(var(--primary));
589
+ }
590
+
591
+ .ctx-stat-label {
592
+ font-size: 0.65rem;
593
+ color: hsl(var(--muted-foreground));
594
+ text-transform: uppercase;
595
+ letter-spacing: 0.05em;
596
+ }
597
+
598
+ .ctx-test-frameworks {
599
+ display: flex;
600
+ gap: 0.75rem;
601
+ flex-wrap: wrap;
602
+ }
603
+
604
+ .ctx-fw-card {
605
+ display: flex;
606
+ flex-direction: column;
607
+ gap: 0.25rem;
608
+ padding: 0.5rem 0.75rem;
609
+ border-radius: 0.375rem;
610
+ min-width: 100px;
611
+ }
612
+
613
+ .ctx-fw-installed {
614
+ background: hsl(142 76% 36% / 0.1);
615
+ border: 1px solid hsl(142 76% 36% / 0.3);
616
+ }
617
+
618
+ .ctx-fw-missing {
619
+ background: hsl(var(--destructive) / 0.1);
620
+ border: 1px solid hsl(var(--destructive) / 0.3);
621
+ }
622
+
623
+ .ctx-fw-type {
624
+ font-size: 0.65rem;
625
+ font-weight: 600;
626
+ color: hsl(var(--muted-foreground));
627
+ text-transform: uppercase;
628
+ }
629
+
630
+ .ctx-fw-name {
631
+ font-size: 0.8rem;
632
+ font-weight: 500;
633
+ color: hsl(var(--foreground));
634
+ }
635
+
636
+ /* Conflict/Risk section */
637
+ .ctx-risk-badge {
638
+ padding: 0.25rem 0.625rem;
639
+ border-radius: 0.25rem;
640
+ font-size: 0.65rem;
641
+ font-weight: 700;
642
+ }
643
+
644
+ .ctx-risk-low {
645
+ background: hsl(142 76% 36%);
646
+ color: white;
647
+ }
648
+
649
+ .ctx-risk-medium {
650
+ background: hsl(38 92% 50%);
651
+ color: white;
652
+ }
653
+
654
+ .ctx-risk-high {
655
+ background: hsl(0 84% 50%);
656
+ color: white;
657
+ }
658
+
659
+ .ctx-mitigation {
660
+ padding: 0.75rem;
661
+ background: hsl(var(--muted) / 0.3);
662
+ border-radius: 0.375rem;
663
+ margin-bottom: 0.75rem;
664
+ }
665
+
666
+ .ctx-mitigation-label {
667
+ font-size: 0.7rem;
668
+ font-weight: 600;
669
+ color: hsl(var(--muted-foreground));
670
+ text-transform: uppercase;
671
+ display: block;
672
+ margin-bottom: 0.375rem;
673
+ }
674
+
675
+ .ctx-mitigation-text {
676
+ font-size: 0.8rem;
677
+ color: hsl(var(--foreground));
678
+ margin: 0;
679
+ line-height: 1.5;
680
+ }
681
+
682
+ .ctx-risk-section {
683
+ margin-bottom: 0.75rem;
684
+ }
685
+
686
+ .ctx-risk-label {
687
+ font-size: 0.7rem;
688
+ font-weight: 600;
689
+ color: hsl(var(--muted-foreground));
690
+ text-transform: uppercase;
691
+ display: block;
692
+ margin-bottom: 0.375rem;
693
+ }
694
+
695
+ .ctx-risk-list {
696
+ margin: 0;
697
+ padding-left: 1.25rem;
698
+ font-size: 0.8rem;
699
+ color: hsl(var(--foreground));
700
+ }
701
+
702
+ .ctx-risk-list li {
703
+ margin-bottom: 0.25rem;
704
+ }
705
+
706
+ .ctx-affected {
707
+ margin-top: 0.75rem;
708
+ }
709
+
710
+ .ctx-affected-label {
711
+ font-size: 0.7rem;
712
+ font-weight: 600;
713
+ color: hsl(var(--muted-foreground));
714
+ text-transform: uppercase;
715
+ display: block;
716
+ margin-bottom: 0.375rem;
717
+ }
718
+
719
+ .ctx-affected-tags {
720
+ display: flex;
721
+ flex-wrap: wrap;
722
+ gap: 0.375rem;
723
+ }
724
+
725
+ .ctx-affected-tag {
726
+ padding: 0.25rem 0.5rem;
727
+ background: hsl(var(--warning) / 0.15);
728
+ color: hsl(38 92% 40%);
729
+ border-radius: 0.25rem;
730
+ font-size: 0.75rem;
731
+ font-family: var(--font-mono);
732
+ }
733
+
734
+ /* Mitigation Strategy List */
735
+ .ctx-mitigation-list {
736
+ margin: 0;
737
+ padding-left: 1.5rem;
738
+ font-size: 0.8rem;
739
+ color: hsl(var(--foreground));
740
+ line-height: 1.6;
741
+ }
742
+
743
+ .ctx-mitigation-list li {
744
+ margin-bottom: 0.5rem;
745
+ padding-left: 0.25rem;
746
+ }
747
+
748
+ .ctx-mitigation-list li:last-child {
749
+ margin-bottom: 0;
750
+ }
751
+
752
+ /* Dependencies Table */
753
+ .ctx-deps-table {
754
+ border: 1px solid hsl(var(--border) / 0.5);
755
+ border-radius: 0.5rem;
756
+ overflow: hidden;
757
+ }
758
+
759
+ .ctx-deps-table-header {
760
+ display: grid;
761
+ grid-template-columns: 1fr auto 1fr;
762
+ gap: 1rem;
763
+ padding: 0.625rem 1rem;
764
+ background: hsl(var(--muted) / 0.4);
765
+ border-bottom: 1px solid hsl(var(--border) / 0.5);
766
+ }
767
+
768
+ .ctx-deps-table-header span {
769
+ font-size: 0.7rem;
770
+ font-weight: 600;
771
+ color: hsl(var(--muted-foreground));
772
+ text-transform: uppercase;
773
+ letter-spacing: 0.05em;
774
+ }
775
+
776
+ .ctx-deps-table-header .ctx-deps-col-from {
777
+ text-align: left;
778
+ }
779
+
780
+ .ctx-deps-table-header .ctx-deps-col-type {
781
+ text-align: center;
782
+ }
783
+
784
+ .ctx-deps-table-header .ctx-deps-col-to {
785
+ text-align: center;
786
+ }
787
+
788
+ .ctx-deps-table-body {
789
+ max-height: 400px;
790
+ overflow-y: auto;
791
+ }
792
+
793
+ .ctx-deps-row {
794
+ display: grid;
795
+ grid-template-columns: 1fr auto 1fr;
796
+ gap: 1rem;
797
+ padding: 0.5rem 1rem;
798
+ border-bottom: 1px solid hsl(var(--border) / 0.3);
799
+ align-items: center;
800
+ text-align: center;
801
+ }
802
+
803
+ .ctx-deps-row:last-child {
804
+ border-bottom: none;
805
+ }
806
+
807
+ .ctx-deps-row:hover {
808
+ background: hsl(var(--muted) / 0.2);
809
+ }
810
+
811
+ .ctx-deps-col-from {
812
+ font-size: 0.8rem;
813
+ color: hsl(var(--foreground));
814
+ word-break: break-word;
815
+ text-align: left;
816
+ }
817
+
818
+ .ctx-deps-col-to {
819
+ font-size: 0.8rem;
820
+ color: hsl(var(--foreground));
821
+ word-break: break-word;
822
+ text-align: center;
823
+ }
824
+
825
+ .ctx-deps-col-type {
826
+ text-align: center;
827
+ }
828
+
829
+ .ctx-deps-type-badge {
830
+ display: inline-block;
831
+ padding: 0.25rem 0.625rem;
832
+ border-radius: 9999px;
833
+ font-size: 0.7rem;
834
+ font-weight: 500;
835
+ white-space: nowrap;
836
+ background: hsl(var(--muted));
837
+ color: hsl(var(--muted-foreground));
838
+ }
839
+
840
+ .ctx-deps-type-composition {
841
+ background: hsl(217 91% 60% / 0.15);
842
+ color: hsl(217 91% 45%);
843
+ }
844
+
845
+ .ctx-deps-type-inheritance {
846
+ background: hsl(142 76% 36% / 0.15);
847
+ color: hsl(142 76% 30%);
848
+ }
849
+
850
+ .ctx-deps-type-produces,
851
+ .ctx-deps-type-provides {
852
+ background: hsl(280 68% 60% / 0.15);
853
+ color: hsl(280 68% 45%);
854
+ }
855
+
856
+ .ctx-deps-type-consumes {
857
+ background: hsl(38 92% 50% / 0.15);
858
+ color: hsl(38 92% 40%);
859
+ }
860
+
861
+ .ctx-deps-type-config-dependency {
862
+ background: hsl(0 84% 60% / 0.12);
863
+ color: hsl(0 84% 45%);
864
+ }
865
+
866
+ .ctx-flow-target code {
867
+ font-size: 0.7rem;
868
+ color: hsl(var(--foreground));
869
+ word-break: break-all;
870
+ }
871
+
872
+ /* Gray text consistency - unified label style */
873
+ .ctx-meta-label,
874
+ .ctx-stack-label,
875
+ .ctx-conv-label,
876
+ .ctx-mitigation-label,
877
+ .ctx-risk-label,
878
+ .ctx-affected-label {
879
+ font-size: 0.7rem;
880
+ font-weight: 600;
881
+ color: hsl(var(--muted-foreground));
882
+ text-transform: uppercase;
883
+ letter-spacing: 0.05em;
884
+ }
885
+
886
+ /* ===================================
887
+ Lite Task Drawer Cards
888
+ =================================== */
889
+ .lite-card {
890
+ background: hsl(var(--card));
891
+ border: 1px solid hsl(var(--border));
892
+ border-radius: 0.5rem;
893
+ margin-bottom: 1rem;
894
+ overflow: hidden;
895
+ }
896
+
897
+ .lite-card-header {
898
+ display: flex;
899
+ align-items: center;
900
+ gap: 0.5rem;
901
+ padding: 0.75rem 1rem;
902
+ background: hsl(var(--muted) / 0.3);
903
+ border-bottom: 1px solid hsl(var(--border));
904
+ }
905
+
906
+ .lite-card-icon {
907
+ font-size: 1rem;
908
+ }
909
+
910
+ .lite-card-title {
911
+ font-size: 0.85rem;
912
+ font-weight: 600;
913
+ color: hsl(var(--foreground));
914
+ margin: 0;
915
+ flex: 1;
916
+ }
917
+
918
+ .lite-count-badge {
919
+ padding: 0.125rem 0.5rem;
920
+ background: hsl(var(--primary) / 0.15);
921
+ color: hsl(var(--primary));
922
+ border-radius: 9999px;
923
+ font-size: 0.7rem;
924
+ font-weight: 600;
925
+ }
926
+
927
+ .lite-card-body {
928
+ padding: 1rem;
929
+ }
930
+
931
+ /* Description */
932
+ .lite-description {
933
+ margin: 0;
934
+ font-size: 0.85rem;
935
+ line-height: 1.6;
936
+ color: hsl(var(--foreground));
937
+ }
938
+
939
+ /* Scope */
940
+ .lite-scope-box {
941
+ padding: 0.625rem 0.875rem;
942
+ background: hsl(var(--muted) / 0.5);
943
+ border-radius: 0.375rem;
944
+ border-left: 3px solid hsl(var(--primary));
945
+ }
946
+
947
+ .lite-scope-box code {
948
+ font-size: 0.8rem;
949
+ color: hsl(var(--foreground));
950
+ word-break: break-all;
951
+ }
952
+
953
+ /* Acceptance Checklist */
954
+ .lite-checklist {
955
+ list-style: none;
956
+ margin: 0;
957
+ padding: 0;
958
+ }
959
+
960
+ .lite-check-item {
961
+ display: flex;
962
+ align-items: flex-start;
963
+ gap: 0.625rem;
964
+ padding: 0.5rem 0;
965
+ border-bottom: 1px solid hsl(var(--border) / 0.5);
966
+ }
967
+
968
+ .lite-check-item:last-child {
969
+ border-bottom: none;
970
+ padding-bottom: 0;
971
+ }
972
+
973
+ .lite-check-icon {
974
+ flex-shrink: 0;
975
+ width: 1.25rem;
976
+ height: 1.25rem;
977
+ display: flex;
978
+ align-items: center;
979
+ justify-content: center;
980
+ border: 2px solid hsl(var(--muted-foreground) / 0.4);
981
+ border-radius: 50%;
982
+ font-size: 0.7rem;
983
+ color: hsl(var(--muted-foreground));
984
+ }
985
+
986
+ .lite-check-text {
987
+ font-size: 0.8rem;
988
+ line-height: 1.5;
989
+ color: hsl(var(--foreground));
990
+ }
991
+
992
+ /* Reference */
993
+ .lite-ref-section {
994
+ padding: 0.5rem 0;
995
+ border-bottom: 1px solid hsl(var(--border) / 0.5);
996
+ }
997
+
998
+ .lite-ref-section:last-child {
999
+ border-bottom: none;
1000
+ padding-bottom: 0;
1001
+ }
1002
+
1003
+ .lite-ref-label {
1004
+ font-size: 0.7rem;
1005
+ font-weight: 600;
1006
+ color: hsl(var(--primary));
1007
+ text-transform: uppercase;
1008
+ display: block;
1009
+ margin-bottom: 0.375rem;
1010
+ }
1011
+
1012
+ .lite-ref-value {
1013
+ font-size: 0.8rem;
1014
+ color: hsl(var(--foreground));
1015
+ line-height: 1.5;
1016
+ }
1017
+
1018
+ .lite-ref-files {
1019
+ display: flex;
1020
+ flex-direction: column;
1021
+ gap: 0.375rem;
1022
+ }
1023
+
1024
+ .lite-file-tag {
1025
+ display: block;
1026
+ padding: 0.375rem 0.625rem;
1027
+ background: hsl(var(--muted) / 0.5);
1028
+ border-radius: 0.25rem;
1029
+ font-size: 0.75rem;
1030
+ color: hsl(var(--foreground));
1031
+ }
1032
+
1033
+ /* Dependencies */
1034
+ .lite-deps-tags {
1035
+ display: flex;
1036
+ flex-wrap: wrap;
1037
+ gap: 0.375rem;
1038
+ }
1039
+
1040
+ .lite-dep-tag {
1041
+ padding: 0.25rem 0.625rem;
1042
+ background: hsl(var(--warning) / 0.15);
1043
+ color: hsl(38 92% 40%);
1044
+ border-radius: 0.25rem;
1045
+ font-size: 0.75rem;
1046
+ font-weight: 500;
1047
+ }
1048
+
1049
+ /* Implementation Steps */
1050
+ .lite-impl-steps {
1051
+ display: flex;
1052
+ flex-direction: column;
1053
+ gap: 0;
1054
+ }
1055
+
1056
+ .lite-impl-step {
1057
+ display: flex;
1058
+ gap: 0.875rem;
1059
+ padding: 0.75rem 0;
1060
+ border-bottom: 1px solid hsl(var(--border) / 0.5);
1061
+ }
1062
+
1063
+ .lite-impl-step:last-child {
1064
+ border-bottom: none;
1065
+ padding-bottom: 0;
1066
+ }
1067
+
1068
+ .lite-step-num {
1069
+ flex-shrink: 0;
1070
+ width: 1.75rem;
1071
+ height: 1.75rem;
1072
+ display: flex;
1073
+ align-items: center;
1074
+ justify-content: center;
1075
+ background: hsl(var(--primary));
1076
+ color: white;
1077
+ border-radius: 0.375rem;
1078
+ font-size: 0.75rem;
1079
+ font-weight: 700;
1080
+ }
1081
+
1082
+ .lite-step-content {
1083
+ flex: 1;
1084
+ min-width: 0;
1085
+ }
1086
+
1087
+ .lite-step-text {
1088
+ margin: 0;
1089
+ font-size: 0.8rem;
1090
+ line-height: 1.5;
1091
+ color: hsl(var(--foreground));
1092
+ }
1093
+
1094
+ /* Modification Points */
1095
+ .lite-mod-points {
1096
+ display: flex;
1097
+ flex-direction: column;
1098
+ gap: 0.75rem;
1099
+ }
1100
+
1101
+ .lite-mod-card {
1102
+ padding: 0.875rem 1rem;
1103
+ background: hsl(var(--background));
1104
+ border: 1px solid hsl(var(--border));
1105
+ border-left: 3px solid hsl(var(--primary));
1106
+ border-radius: 0.375rem;
1107
+ }
1108
+
1109
+ .lite-mod-header {
1110
+ margin-bottom: 0.5rem;
1111
+ }
1112
+
1113
+ .lite-mod-file {
1114
+ font-size: 0.75rem;
1115
+ font-weight: 500;
1116
+ color: hsl(var(--primary));
1117
+ word-break: break-all;
1118
+ }
1119
+
1120
+ .lite-mod-target {
1121
+ display: flex;
1122
+ gap: 0.5rem;
1123
+ margin-bottom: 0.375rem;
1124
+ font-size: 0.75rem;
1125
+ }
1126
+
1127
+ .lite-mod-label {
1128
+ color: hsl(var(--muted-foreground));
1129
+ font-weight: 500;
1130
+ }
1131
+
1132
+ .lite-mod-value {
1133
+ color: hsl(var(--foreground));
1134
+ }
1135
+
1136
+ .lite-mod-change {
1137
+ font-size: 0.8rem;
1138
+ line-height: 1.5;
1139
+ color: hsl(var(--foreground));
1140
+ padding-top: 0.375rem;
1141
+ border-top: 1px solid hsl(var(--border) / 0.5);
1142
+ }
1143
+
1144
+ /* ==========================================
1145
+ SESSION TASK DRAWER STYLES
1146
+ ========================================== */
1147
+
1148
+ /* Pre-Analysis Step Meta */
1149
+ .lite-step-meta {
1150
+ display: flex;
1151
+ align-items: center;
1152
+ gap: 0.5rem;
1153
+ margin-top: 0.375rem;
1154
+ font-size: 0.75rem;
1155
+ }
1156
+
1157
+ .lite-step-label {
1158
+ color: hsl(var(--muted-foreground));
1159
+ font-weight: 500;
1160
+ }
1161
+
1162
+ .lite-step-value {
1163
+ color: hsl(var(--foreground));
1164
+ }
1165
+
1166
+ .lite-step-commands {
1167
+ display: flex;
1168
+ flex-wrap: wrap;
1169
+ gap: 0.375rem;
1170
+ margin-top: 0.5rem;
1171
+ }
1172
+
1173
+ .lite-cmd-tag {
1174
+ display: inline-block;
1175
+ padding: 0.25rem 0.625rem;
1176
+ background: hsl(var(--muted));
1177
+ border-radius: 0.25rem;
1178
+ font-size: 0.7rem;
1179
+ color: hsl(var(--foreground));
1180
+ font-family: var(--font-mono);
1181
+ }
1182
+
1183
+ /* Session Implementation Steps */
1184
+ .session-impl-steps {
1185
+ display: flex;
1186
+ flex-direction: column;
1187
+ gap: 1rem;
1188
+ }
1189
+
1190
+ .session-impl-step {
1191
+ background: hsl(var(--background));
1192
+ border: 1px solid hsl(var(--border));
1193
+ border-radius: 0.5rem;
1194
+ overflow: hidden;
1195
+ }
1196
+
1197
+ .session-step-header {
1198
+ display: flex;
1199
+ align-items: center;
1200
+ gap: 0.75rem;
1201
+ padding: 0.75rem 1rem;
1202
+ background: hsl(var(--muted) / 0.3);
1203
+ border-bottom: 1px solid hsl(var(--border) / 0.5);
1204
+ }
1205
+
1206
+ .session-step-title {
1207
+ flex: 1;
1208
+ font-size: 0.85rem;
1209
+ font-weight: 600;
1210
+ color: hsl(var(--foreground));
1211
+ }
1212
+
1213
+ .session-step-desc {
1214
+ padding: 0.75rem 1rem;
1215
+ font-size: 0.8rem;
1216
+ line-height: 1.6;
1217
+ color: hsl(var(--muted-foreground));
1218
+ border-bottom: 1px solid hsl(var(--border) / 0.3);
1219
+ }
1220
+
1221
+ .session-step-section {
1222
+ padding: 0.75rem 1rem;
1223
+ border-bottom: 1px solid hsl(var(--border) / 0.3);
1224
+ }
1225
+
1226
+ .session-step-section:last-child {
1227
+ border-bottom: none;
1228
+ }
1229
+
1230
+ .session-section-label {
1231
+ display: flex;
1232
+ align-items: center;
1233
+ gap: 0.5rem;
1234
+ margin-bottom: 0.625rem;
1235
+ font-size: 0.75rem;
1236
+ font-weight: 600;
1237
+ color: hsl(var(--muted-foreground));
1238
+ }
1239
+
1240
+ .session-section-icon {
1241
+ font-size: 0.875rem;
1242
+ }
1243
+
1244
+ /* Session Modifications List */
1245
+ .session-mods-list {
1246
+ display: flex;
1247
+ flex-direction: column;
1248
+ gap: 0.375rem;
1249
+ }
1250
+
1251
+ .session-mod-item {
1252
+ display: flex;
1253
+ flex-direction: column;
1254
+ gap: 0.25rem;
1255
+ }
1256
+
1257
+ .session-mod-change {
1258
+ font-size: 0.75rem;
1259
+ color: hsl(var(--muted-foreground));
1260
+ padding-left: 0.5rem;
1261
+ border-left: 2px solid hsl(var(--border));
1262
+ }
1263
+
1264
+ /* Session Logic Flow */
1265
+ .session-flow-list {
1266
+ display: flex;
1267
+ flex-direction: column;
1268
+ gap: 0.5rem;
1269
+ }
1270
+
1271
+ .session-flow-item {
1272
+ display: flex;
1273
+ align-items: flex-start;
1274
+ gap: 0.625rem;
1275
+ }
1276
+
1277
+ .session-flow-num {
1278
+ flex-shrink: 0;
1279
+ width: 1.25rem;
1280
+ height: 1.25rem;
1281
+ display: flex;
1282
+ align-items: center;
1283
+ justify-content: center;
1284
+ background: hsl(var(--primary) / 0.15);
1285
+ color: hsl(var(--primary));
1286
+ border-radius: 50%;
1287
+ font-size: 0.65rem;
1288
+ font-weight: 700;
1289
+ }
1290
+
1291
+ .session-flow-text {
1292
+ font-size: 0.8rem;
1293
+ line-height: 1.5;
1294
+ color: hsl(var(--foreground));
1295
+ }
1296
+
1297
+ /* Session Step Dependencies */
1298
+ .session-step-deps {
1299
+ display: flex;
1300
+ align-items: center;
1301
+ gap: 0.75rem;
1302
+ padding: 0.625rem 1rem;
1303
+ background: hsl(var(--warning) / 0.05);
1304
+ }
1305
+
1306
+ .session-deps-label {
1307
+ font-size: 0.75rem;
1308
+ font-weight: 500;
1309
+ color: hsl(var(--muted-foreground));
1310
+ }
1311
+
1312
+ /* Session Files List */
1313
+ .session-files-list {
1314
+ display: flex;
1315
+ flex-direction: column;
1316
+ gap: 0.375rem;
1317
+ }
1318
+
1319
+ .session-file-item {
1320
+ display: flex;
1321
+ align-items: center;
1322
+ gap: 0.625rem;
1323
+ padding: 0.625rem 0.875rem;
1324
+ background: hsl(var(--muted) / 0.3);
1325
+ border: 1px solid hsl(var(--border) / 0.5);
1326
+ border-radius: 0.375rem;
1327
+ text-decoration: none;
1328
+ transition: all 0.15s ease;
1329
+ }
1330
+
1331
+ .session-file-item:hover {
1332
+ background: hsl(var(--muted) / 0.5);
1333
+ border-color: hsl(var(--primary) / 0.5);
1334
+ }
1335
+
1336
+ .session-file-icon {
1337
+ font-size: 0.875rem;
1338
+ flex-shrink: 0;
1339
+ }
1340
+
1341
+ .session-file-path {
1342
+ flex: 1;
1343
+ font-size: 0.8rem;
1344
+ color: hsl(var(--foreground));
1345
+ word-break: break-all;
1346
+ }
1347
+
1348
+ .session-file-action {
1349
+ flex-shrink: 0;
1350
+ font-size: 0.75rem;
1351
+ color: hsl(var(--primary));
1352
+ opacity: 0;
1353
+ transition: opacity 0.15s ease;
1354
+ }
1355
+
1356
+ .session-file-item:hover .session-file-action {
1357
+ opacity: 1;
1358
+ }
1359
+
1360
+ /* Session Test Commands */
1361
+ .session-test-commands {
1362
+ display: flex;
1363
+ flex-direction: column;
1364
+ gap: 0.5rem;
1365
+ }
1366
+
1367
+ .session-test-item {
1368
+ display: flex;
1369
+ flex-direction: column;
1370
+ gap: 0.25rem;
1371
+ padding: 0.625rem 0.875rem;
1372
+ background: hsl(var(--muted) / 0.2);
1373
+ border: 1px solid hsl(var(--border) / 0.5);
1374
+ border-radius: 0.375rem;
1375
+ }
1376
+
1377
+ .session-test-label {
1378
+ font-size: 0.7rem;
1379
+ font-weight: 600;
1380
+ color: hsl(var(--primary));
1381
+ text-transform: uppercase;
1382
+ }
1383
+
1384
+ .session-test-cmd {
1385
+ font-size: 0.8rem;
1386
+ color: hsl(var(--foreground));
1387
+ background: hsl(var(--muted) / 0.5);
1388
+ padding: 0.375rem 0.5rem;
1389
+ border-radius: 0.25rem;
1390
+ font-family: var(--font-mono);
1391
+ word-break: break-all;
1392
+ }
1393
+
1394
+ /* ==========================================
1395
+ TASK STATUS MANAGEMENT
1396
+ ========================================== */
1397
+
1398
+ /* Bulk Actions - Inside toolbar */
1399
+ .task-bulk-actions {
1400
+ display: flex;
1401
+ align-items: center;
1402
+ gap: 0.5rem;
1403
+ flex-wrap: wrap;
1404
+ }
1405
+
1406
+ .bulk-label {
1407
+ font-size: 0.75rem;
1408
+ font-weight: 600;
1409
+ color: hsl(var(--muted-foreground));
1410
+ text-transform: uppercase;
1411
+ margin-right: 0.5rem;
1412
+ }
1413
+
1414
+ .bulk-action-btn {
1415
+ display: inline-flex;
1416
+ align-items: center;
1417
+ gap: 0.375rem;
1418
+ padding: 0.375rem 0.75rem;
1419
+ background: hsl(var(--background));
1420
+ border: 1px solid hsl(var(--border));
1421
+ border-radius: 0.375rem;
1422
+ font-size: 0.75rem;
1423
+ font-weight: 500;
1424
+ color: hsl(var(--foreground));
1425
+ cursor: pointer;
1426
+ transition: all 0.15s ease;
1427
+ }
1428
+
1429
+ .bulk-action-btn:hover {
1430
+ background: hsl(var(--muted));
1431
+ border-color: hsl(var(--primary) / 0.5);
1432
+ }
1433
+
1434
+ .bulk-action-btn.completed {
1435
+ background: hsl(142 76% 36% / 0.1);
1436
+ border-color: hsl(142 76% 36% / 0.3);
1437
+ color: hsl(142 76% 30%);
1438
+ }
1439
+
1440
+ .bulk-action-btn.completed:hover {
1441
+ background: hsl(142 76% 36% / 0.2);
1442
+ }
1443
+
1444
+ .bulk-icon {
1445
+ font-size: 0.8rem;
1446
+ }
1447
+
1448
+ .bulk-divider {
1449
+ width: 1px;
1450
+ height: 1.5rem;
1451
+ background: hsl(var(--border));
1452
+ margin: 0 0.25rem;
1453
+ }
1454
+
1455
+ /* Task Status Control */
1456
+ .task-status-control {
1457
+ flex-shrink: 0;
1458
+ }
1459
+
1460
+ .task-status-select {
1461
+ padding: 0.375rem 0.625rem;
1462
+ font-size: 0.75rem;
1463
+ font-weight: 600;
1464
+ border: 1px solid hsl(var(--border));
1465
+ border-radius: 0.375rem;
1466
+ background: hsl(var(--background));
1467
+ color: hsl(var(--foreground));
1468
+ cursor: pointer;
1469
+ transition: all 0.15s ease;
1470
+ min-width: 120px;
1471
+ }
1472
+
1473
+ .task-status-select:hover {
1474
+ border-color: hsl(var(--primary) / 0.5);
1475
+ }
1476
+
1477
+ .task-status-select:focus {
1478
+ outline: none;
1479
+ border-color: hsl(var(--primary));
1480
+ box-shadow: 0 0 0 2px hsl(var(--primary) / 0.2);
1481
+ }
1482
+
1483
+ .task-status-select.pending {
1484
+ background: hsl(var(--muted) / 0.3);
1485
+ color: hsl(var(--muted-foreground));
1486
+ }
1487
+
1488
+ .task-status-select.in_progress {
1489
+ background: hsl(38 92% 50% / 0.15);
1490
+ border-color: hsl(38 92% 50% / 0.3);
1491
+ color: hsl(38 92% 35%);
1492
+ }
1493
+
1494
+ .task-status-select.completed {
1495
+ background: hsl(142 76% 36% / 0.15);
1496
+ border-color: hsl(142 76% 36% / 0.3);
1497
+ color: hsl(142 76% 30%);
1498
+ }
1499
+
1500
+ /* Toast Notifications */
1501
+ .status-toast {
1502
+ position: fixed;
1503
+ bottom: 2rem;
1504
+ left: 50%;
1505
+ transform: translateX(-50%);
1506
+ padding: 0.75rem 1.5rem;
1507
+ border-radius: 0.5rem;
1508
+ font-size: 0.85rem;
1509
+ font-weight: 500;
1510
+ z-index: 10000;
1511
+ animation: toastSlideUp 0.3s ease;
1512
+ box-shadow: 0 4px 12px hsl(0 0% 0% / 0.15);
1513
+ }
1514
+
1515
+ .status-toast.success {
1516
+ background: hsl(142 76% 36%);
1517
+ color: white;
1518
+ }
1519
+
1520
+ .status-toast.error {
1521
+ background: hsl(0 72% 51%);
1522
+ color: white;
1523
+ }
1524
+
1525
+ .status-toast.info {
1526
+ background: hsl(var(--primary));
1527
+ color: white;
1528
+ }
1529
+
1530
+ .status-toast.fade-out {
1531
+ animation: toastFadeOut 0.3s ease forwards;
1532
+ }
1533
+
1534
+ @keyframes toastSlideUp {
1535
+ from {
1536
+ opacity: 0;
1537
+ transform: translateX(-50%) translateY(1rem);
1538
+ }
1539
+ to {
1540
+ opacity: 1;
1541
+ transform: translateX(-50%) translateY(0);
1542
+ }
1543
+ }
1544
+
1545
+ @keyframes toastFadeOut {
1546
+ to {
1547
+ opacity: 0;
1548
+ transform: translateX(-50%) translateY(-1rem);
1549
+ }
1550
+ }
1551
+
1552
+ /* Task Item Header Adjustments */
1553
+ .detail-task-item .task-item-header {
1554
+ display: flex;
1555
+ align-items: center;
1556
+ gap: 0.75rem;
1557
+ }
1558
+
1559
+ .detail-task-item .task-title {
1560
+ flex: 1;
1561
+ min-width: 0;
1562
+ overflow: hidden;
1563
+ text-overflow: ellipsis;
1564
+ white-space: nowrap;
1565
+ }
1566
+
1567
+ .detail-task-item .task-title:hover {
1568
+ color: hsl(var(--primary));
1569
+ }
1570
+