codexmate 0.0.21 → 0.0.23

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 (115) hide show
  1. package/README.md +390 -284
  2. package/README.zh.md +322 -0
  3. package/cli/agents-files.js +224 -162
  4. package/cli/archive-helpers.js +446 -446
  5. package/cli/auth-profiles.js +359 -359
  6. package/cli/builtin-proxy.js +1044 -580
  7. package/cli/claude-proxy.js +998 -998
  8. package/cli/config-bootstrap.js +384 -384
  9. package/cli/config-health.js +338 -338
  10. package/cli/openai-bridge.js +950 -0
  11. package/cli/openclaw-config.js +629 -629
  12. package/cli/session-usage.concurrent.js +28 -0
  13. package/cli/session-usage.js +112 -0
  14. package/cli/session-usage.models.js +176 -0
  15. package/cli/skills.js +1141 -1141
  16. package/cli/zip-commands.js +510 -510
  17. package/cli.js +13214 -13129
  18. package/lib/cli-file-utils.js +151 -151
  19. package/lib/cli-models-utils.js +419 -419
  20. package/lib/cli-network-utils.js +164 -164
  21. package/lib/cli-path-utils.js +69 -69
  22. package/lib/cli-session-utils.js +121 -121
  23. package/lib/cli-sessions.js +386 -386
  24. package/lib/cli-utils.js +155 -155
  25. package/lib/download-artifacts.js +77 -77
  26. package/lib/mcp-stdio.js +440 -440
  27. package/lib/task-orchestrator.js +869 -869
  28. package/lib/text-diff.js +303 -303
  29. package/lib/workflow-engine.js +340 -340
  30. package/package.json +74 -74
  31. package/res/json5.min.js +1 -1
  32. package/res/logo.png +0 -0
  33. package/res/vue.global.prod.js +13 -13
  34. package/web-ui/app.js +626 -530
  35. package/web-ui/index.html +34 -33
  36. package/web-ui/logic.agents-diff.mjs +386 -386
  37. package/web-ui/logic.claude.mjs +168 -168
  38. package/web-ui/logic.mjs +5 -5
  39. package/web-ui/logic.runtime.mjs +128 -124
  40. package/web-ui/logic.sessions.mjs +614 -581
  41. package/web-ui/modules/api.mjs +90 -90
  42. package/web-ui/modules/app.computed.dashboard.mjs +126 -113
  43. package/web-ui/modules/app.computed.index.mjs +17 -15
  44. package/web-ui/modules/app.computed.main-tabs.mjs +202 -195
  45. package/web-ui/modules/app.computed.session.mjs +653 -507
  46. package/web-ui/modules/app.constants.mjs +15 -15
  47. package/web-ui/modules/app.methods.agents.mjs +544 -493
  48. package/web-ui/modules/app.methods.claude-config.mjs +174 -174
  49. package/web-ui/modules/app.methods.codex-config.mjs +795 -640
  50. package/web-ui/modules/app.methods.index.mjs +92 -88
  51. package/web-ui/modules/app.methods.install.mjs +177 -149
  52. package/web-ui/modules/app.methods.navigation.mjs +662 -619
  53. package/web-ui/modules/app.methods.openclaw-core.mjs +814 -814
  54. package/web-ui/modules/app.methods.openclaw-editing.mjs +372 -372
  55. package/web-ui/modules/app.methods.openclaw-persist.mjs +369 -369
  56. package/web-ui/modules/app.methods.providers.mjs +404 -363
  57. package/web-ui/modules/app.methods.runtime.mjs +323 -323
  58. package/web-ui/modules/app.methods.session-actions.mjs +537 -520
  59. package/web-ui/modules/app.methods.session-browser.mjs +691 -626
  60. package/web-ui/modules/app.methods.session-timeline.mjs +448 -448
  61. package/web-ui/modules/app.methods.session-trash.mjs +422 -422
  62. package/web-ui/modules/app.methods.startup-claude.mjs +417 -412
  63. package/web-ui/modules/app.methods.task-orchestration.mjs +556 -471
  64. package/web-ui/modules/config-mode.computed.mjs +126 -126
  65. package/web-ui/modules/config-template-confirm-pref.mjs +33 -0
  66. package/web-ui/modules/i18n.mjs +1823 -0
  67. package/web-ui/modules/plugins.computed.mjs +3 -0
  68. package/web-ui/modules/plugins.methods.mjs +3 -0
  69. package/web-ui/modules/plugins.storage.mjs +11 -0
  70. package/web-ui/modules/sessions-filters-url.mjs +85 -0
  71. package/web-ui/modules/skills.computed.mjs +107 -107
  72. package/web-ui/modules/skills.methods.mjs +481 -481
  73. package/web-ui/partials/index/layout-footer.html +13 -13
  74. package/web-ui/partials/index/layout-header.html +461 -402
  75. package/web-ui/partials/index/modal-config-template-agents.html +175 -125
  76. package/web-ui/partials/index/modal-confirm-toast.html +32 -32
  77. package/web-ui/partials/index/modal-health-check.html +72 -72
  78. package/web-ui/partials/index/modal-openclaw-config.html +280 -280
  79. package/web-ui/partials/index/modal-skills.html +200 -184
  80. package/web-ui/partials/index/modals-basic.html +165 -156
  81. package/web-ui/partials/index/panel-config-claude.html +159 -126
  82. package/web-ui/partials/index/panel-config-codex.html +255 -237
  83. package/web-ui/partials/index/panel-config-openclaw.html +78 -78
  84. package/web-ui/partials/index/panel-docs.html +147 -130
  85. package/web-ui/partials/index/panel-market.html +174 -174
  86. package/web-ui/partials/index/panel-orchestration.html +388 -397
  87. package/web-ui/partials/index/panel-plugins.html +273 -0
  88. package/web-ui/partials/index/panel-sessions.html +298 -292
  89. package/web-ui/partials/index/panel-settings.html +258 -190
  90. package/web-ui/partials/index/panel-usage.html +353 -213
  91. package/web-ui/session-helpers.mjs +573 -559
  92. package/web-ui/source-bundle.cjs +233 -233
  93. package/web-ui/styles/base-theme.css +264 -271
  94. package/web-ui/styles/controls-forms.css +369 -360
  95. package/web-ui/styles/docs-panel.css +247 -182
  96. package/web-ui/styles/feedback.css +108 -108
  97. package/web-ui/styles/health-check-dialog.css +144 -144
  98. package/web-ui/styles/layout-shell.css +602 -376
  99. package/web-ui/styles/modals-core.css +464 -464
  100. package/web-ui/styles/navigation-panels.css +390 -348
  101. package/web-ui/styles/openclaw-structured.css +266 -266
  102. package/web-ui/styles/plugins-panel.css +523 -0
  103. package/web-ui/styles/responsive.css +456 -450
  104. package/web-ui/styles/sessions-list.css +400 -400
  105. package/web-ui/styles/sessions-preview.css +411 -411
  106. package/web-ui/styles/sessions-toolbar-trash.css +268 -243
  107. package/web-ui/styles/sessions-usage.css +879 -628
  108. package/web-ui/styles/settings-panel.css +166 -0
  109. package/web-ui/styles/skills-list.css +303 -296
  110. package/web-ui/styles/skills-market.css +406 -335
  111. package/web-ui/styles/task-orchestration.css +822 -776
  112. package/web-ui/styles/titles-cards.css +408 -408
  113. package/web-ui/styles.css +20 -18
  114. package/web-ui.html +17 -17
  115. package/README.en.md +0 -349
@@ -1,776 +1,822 @@
1
- .task-layout-grid {
2
- display: grid;
3
- gap: 16px;
4
- margin-bottom: 16px;
5
- }
6
-
7
- .task-layout-grid-primary {
8
- grid-template-columns: minmax(0, 1fr);
9
- }
10
-
11
- .task-layout-grid-secondary {
12
- grid-template-columns: minmax(0, 1fr);
13
- }
14
-
15
- .task-hero-card,
16
- .task-compose-flow-card,
17
- .task-sidebar-card,
18
- .task-plan-card,
19
- .task-workbench-card,
20
- .task-template-block,
21
- .task-readiness-card,
22
- .task-action-help,
23
- .task-empty-state {
24
- min-width: 0;
25
- border: 1px solid var(--color-border-soft);
26
- border-radius: 18px;
27
- background: var(--color-surface);
28
- box-shadow: var(--shadow-subtle);
29
- }
30
-
31
- .task-hero-card {
32
- padding: 18px;
33
- margin-bottom: 16px;
34
- background: linear-gradient(180deg, rgba(199, 116, 98, 0.10) 0%, rgba(199, 116, 98, 0.03) 100%), var(--color-surface);
35
- }
36
-
37
- .task-hero-main {
38
- display: flex;
39
- align-items: flex-start;
40
- justify-content: space-between;
41
- gap: 16px;
42
- }
43
-
44
- .task-hero-kicker {
45
- font-size: 11px;
46
- font-weight: 700;
47
- letter-spacing: 0.08em;
48
- text-transform: uppercase;
49
- color: var(--color-text-secondary);
50
- margin-bottom: 8px;
51
- }
52
-
53
- .task-hero-copy {
54
- margin-top: 8px;
55
- max-width: 760px;
56
- line-height: 1.65;
57
- }
58
-
59
- .task-hero-actions {
60
- flex: 0 0 auto;
61
- flex-wrap: nowrap;
62
- align-self: flex-start;
63
- }
64
-
65
- .task-hero-actions > .btn-tool-compact {
66
- min-width: 108px;
67
- }
68
-
69
- .task-hero-actions > .btn-tool + .btn-tool,
70
- .task-hero-actions > .btn-tool-compact + .btn-tool,
71
- .task-hero-actions > .btn-tool + .btn-tool-compact,
72
- .task-hero-actions > .btn-tool-compact + .btn-tool-compact {
73
- margin-top: 0;
74
- }
75
-
76
- .task-hero-meta-strip {
77
- display: flex;
78
- flex-wrap: wrap;
79
- gap: 8px;
80
- margin-top: 14px;
81
- }
82
-
83
- .task-hero-meta {
84
- display: inline-flex;
85
- align-items: center;
86
- gap: 6px;
87
- min-height: 34px;
88
- padding: 0 12px;
89
- border-radius: 999px;
90
- background: rgba(255, 255, 255, 0.56);
91
- border: 1px solid rgba(199, 116, 98, 0.14);
92
- color: var(--color-text-secondary);
93
- font-size: 12px;
94
- font-weight: 600;
95
- }
96
-
97
- .task-hero-meta strong {
98
- color: var(--color-text-primary);
99
- }
100
-
101
- .task-compose-flow-card,
102
- .task-sidebar-card,
103
- .task-plan-card,
104
- .task-workbench-card {
105
- padding: 18px;
106
- }
107
-
108
- .task-flow-section + .task-flow-section,
109
- .task-sidebar-group + .task-sidebar-group {
110
- margin-top: 18px;
111
- padding-top: 18px;
112
- border-top: 1px solid var(--color-border-soft);
113
- }
114
-
115
- .task-flow-section-compact {
116
- margin-top: 0;
117
- }
118
-
119
- .task-flow-head {
120
- display: flex;
121
- align-items: flex-start;
122
- gap: 12px;
123
- margin-bottom: 14px;
124
- }
125
-
126
- .task-flow-step {
127
- width: 28px;
128
- height: 28px;
129
- border-radius: 999px;
130
- background: var(--color-brand-light);
131
- color: var(--color-brand-dark);
132
- font-size: 13px;
133
- font-weight: 700;
134
- display: inline-flex;
135
- align-items: center;
136
- justify-content: center;
137
- flex: 0 0 auto;
138
- }
139
-
140
- .task-flow-title,
141
- .task-sidebar-title,
142
- .task-readiness-title,
143
- .task-empty-title,
144
- .task-template-label {
145
- font-size: 14px;
146
- font-weight: 700;
147
- color: var(--color-text-primary);
148
- }
149
-
150
- .task-flow-copy,
151
- .task-readiness-copy,
152
- .task-field-hint,
153
- .task-empty-copy,
154
- .task-action-help-item {
155
- font-size: 12px;
156
- line-height: 1.6;
157
- color: var(--color-text-secondary);
158
- }
159
-
160
- .task-template-block {
161
- padding: 12px 14px;
162
- background: var(--color-surface-alt);
163
- }
164
-
165
- .task-template-panel {
166
- margin-bottom: 14px;
167
- padding: 12px 14px;
168
- border: 1px solid var(--color-border-soft);
169
- border-radius: 16px;
170
- background: var(--color-surface-alt);
171
- }
172
-
173
- .task-template-chip-group,
174
- .task-workflow-suggestions {
175
- display: flex;
176
- flex-wrap: wrap;
177
- gap: 8px;
178
- margin-top: 10px;
179
- }
180
-
181
- .task-template-chip,
182
- .task-workflow-chip,
183
- .task-workbench-tab {
184
- border: 1px solid var(--color-border);
185
- background: var(--color-surface);
186
- color: var(--color-text-primary);
187
- border-radius: 999px;
188
- padding: 7px 12px;
189
- font-size: 12px;
190
- font-weight: 600;
191
- cursor: pointer;
192
- transition:
193
- background var(--transition-fast) var(--ease-smooth),
194
- border-color var(--transition-fast) var(--ease-smooth),
195
- color var(--transition-fast) var(--ease-smooth),
196
- box-shadow var(--transition-fast) var(--ease-smooth);
197
- }
198
-
199
- .task-template-chip:hover,
200
- .task-workflow-chip:hover,
201
- .task-workbench-tab:hover {
202
- background: var(--color-brand-light);
203
- border-color: var(--color-brand);
204
- color: var(--color-brand-dark);
205
- }
206
-
207
- .task-workflow-chip {
208
- display: inline-flex;
209
- align-items: center;
210
- gap: 8px;
211
- }
212
-
213
- .task-workflow-chip small {
214
- color: var(--color-text-secondary);
215
- font-size: 11px;
216
- }
217
-
218
- .task-composer-grid {
219
- display: grid;
220
- grid-template-columns: repeat(2, minmax(0, 1fr));
221
- gap: 12px;
222
- }
223
-
224
- .task-composer-grid-primary {
225
- grid-template-columns: minmax(0, 1fr);
226
- }
227
-
228
- .task-composer-grid-compact {
229
- grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
230
- align-items: stretch;
231
- }
232
-
233
- .task-field-wide {
234
- grid-column: 1 / -1;
235
- }
236
-
237
- .task-goal-field {
238
- padding: 16px;
239
- border-radius: 16px;
240
- background: var(--color-surface-alt);
241
- border: 1px solid var(--color-border-soft);
242
- }
243
-
244
- .task-textarea,
245
- .task-log-block {
246
- width: 100%;
247
- min-height: 92px;
248
- resize: vertical;
249
- padding: 10px 12px;
250
- border-radius: 12px;
251
- border: 1px solid var(--color-border);
252
- background: var(--color-surface);
253
- color: var(--color-text-primary);
254
- font: inherit;
255
- box-sizing: border-box;
256
- }
257
-
258
- .task-textarea-goal {
259
- min-height: 132px;
260
- font-size: 14px;
261
- line-height: 1.65;
262
- }
263
-
264
- .task-toggle-card {
265
- padding: 14px;
266
- border-radius: 16px;
267
- border: 1px solid var(--color-border-soft);
268
- background: var(--color-surface-alt);
269
- }
270
-
271
- .task-toggle-stack {
272
- display: flex;
273
- flex-direction: column;
274
- gap: 10px;
275
- margin-top: 8px;
276
- }
277
-
278
- .task-toggle-inline {
279
- display: flex;
280
- flex-wrap: wrap;
281
- gap: 12px;
282
- margin-top: 8px;
283
- }
284
-
285
- .task-toggle-card-inline {
286
- min-height: 100%;
287
- }
288
-
289
- .task-toggle {
290
- display: inline-flex;
291
- align-items: center;
292
- gap: 8px;
293
- color: var(--color-text-secondary);
294
- font-size: 13px;
295
- }
296
-
297
- .task-config-strip {
298
- display: flex;
299
- flex-wrap: wrap;
300
- gap: 10px;
301
- }
302
-
303
- .task-config-strip-vertical {
304
- flex-direction: column;
305
- }
306
-
307
- .task-config-pill {
308
- display: inline-flex;
309
- align-items: center;
310
- min-height: 34px;
311
- padding: 0 12px;
312
- border-radius: 999px;
313
- background: var(--color-surface-alt);
314
- border: 1px solid var(--color-border);
315
- color: var(--color-text-secondary);
316
- font-size: 12px;
317
- font-weight: 600;
318
- }
319
-
320
- .task-readiness-card,
321
- .task-action-help,
322
- .task-empty-state,
323
- .task-stage-card {
324
- padding: 14px;
325
- background: var(--color-surface-alt);
326
- }
327
-
328
- .task-draft-overview,
329
- .task-draft-inline,
330
- .task-advanced-panel {
331
- margin-top: 14px;
332
- padding: 14px;
333
- border: 1px solid var(--color-border-soft);
334
- border-radius: 16px;
335
- background: var(--color-surface-alt);
336
- }
337
-
338
- .task-draft-inline {
339
- display: flex;
340
- flex-direction: column;
341
- gap: 12px;
342
- }
343
-
344
- .task-draft-inline-head {
345
- display: flex;
346
- align-items: center;
347
- gap: 10px;
348
- flex-wrap: wrap;
349
- }
350
-
351
- .task-draft-inline-copy {
352
- min-width: 0;
353
- }
354
-
355
- .task-draft-overview-head {
356
- display: flex;
357
- align-items: flex-start;
358
- justify-content: space-between;
359
- gap: 12px;
360
- }
361
-
362
- .task-checklist-inline {
363
- display: grid;
364
- grid-template-columns: repeat(2, minmax(0, 1fr));
365
- gap: 10px;
366
- margin-top: 12px;
367
- }
368
-
369
- .task-check-chip {
370
- display: flex;
371
- flex-direction: column;
372
- gap: 4px;
373
- padding: 12px;
374
- border-radius: 14px;
375
- border: 1px solid var(--color-border);
376
- background: var(--color-surface);
377
- }
378
-
379
- .task-check-chip strong {
380
- font-size: 12px;
381
- color: var(--color-text-primary);
382
- }
383
-
384
- .task-check-chip span {
385
- font-size: 12px;
386
- line-height: 1.5;
387
- color: var(--color-text-secondary);
388
- }
389
-
390
- .task-check-chip.done {
391
- border-color: rgba(81, 154, 91, 0.24);
392
- background: rgba(81, 154, 91, 0.08);
393
- }
394
-
395
- .task-draft-overview .task-config-strip {
396
- margin-top: 12px;
397
- }
398
-
399
- .task-advanced-panel[open] {
400
- box-shadow: var(--shadow-subtle);
401
- }
402
-
403
- .task-advanced-summary {
404
- cursor: pointer;
405
- font-size: 13px;
406
- font-weight: 700;
407
- color: var(--color-text-primary);
408
- list-style: none;
409
- }
410
-
411
- .task-advanced-summary::-webkit-details-marker {
412
- display: none;
413
- }
414
-
415
- .task-advanced-panel > .task-composer-grid,
416
- .task-advanced-panel > .selector-grid {
417
- margin-top: 12px;
418
- }
419
-
420
- .task-readiness-head {
421
- display: flex;
422
- align-items: flex-start;
423
- justify-content: space-between;
424
- gap: 12px;
425
- }
426
-
427
- .task-readiness-grid {
428
- display: grid;
429
- grid-template-columns: repeat(2, minmax(0, 1fr));
430
- gap: 10px;
431
- margin-top: 12px;
432
- }
433
-
434
- .task-readiness-item {
435
- display: flex;
436
- flex-direction: column;
437
- gap: 4px;
438
- padding: 12px;
439
- border-radius: 14px;
440
- border: 1px solid var(--color-border);
441
- background: var(--color-surface);
442
- }
443
-
444
- .task-readiness-item strong {
445
- font-size: 12px;
446
- color: var(--color-text-primary);
447
- }
448
-
449
- .task-readiness-item span {
450
- font-size: 12px;
451
- color: var(--color-text-secondary);
452
- line-height: 1.5;
453
- }
454
-
455
- .task-readiness-item.done {
456
- border-color: rgba(81, 154, 91, 0.24);
457
- background: rgba(81, 154, 91, 0.08);
458
- }
459
-
460
- .task-action-row,
461
- .task-plan-summary-strip,
462
- .task-detail-summary-strip {
463
- display: flex;
464
- flex-wrap: wrap;
465
- gap: 10px;
466
- }
467
-
468
- .task-action-row-prominent {
469
- align-items: center;
470
- margin-top: 4px;
471
- }
472
-
473
- .task-action-row > .btn-tool,
474
- .task-section-header .settings-tab-actions > .btn-tool-compact,
475
- .task-action-row-right > .btn-tool,
476
- .task-detail-toolbar > .btn-tool-compact {
477
- min-height: 38px;
478
- height: 38px;
479
- display: inline-flex;
480
- align-items: center;
481
- justify-content: center;
482
- box-sizing: border-box;
483
- }
484
-
485
- .task-action-preview {
486
- min-width: 110px;
487
- }
488
-
489
- .task-action-row-right {
490
- display: flex;
491
- flex-wrap: wrap;
492
- gap: 10px;
493
- }
494
-
495
- .task-action-row-right-prominent > .btn-tool {
496
- min-width: 110px;
497
- }
498
-
499
- .task-action-help-prominent,
500
- .task-action-help-sidebar {
501
- display: flex;
502
- flex-direction: column;
503
- gap: 8px;
504
- margin-top: 12px;
505
- }
506
-
507
- .task-section-header {
508
- align-items: center;
509
- justify-content: space-between;
510
- gap: 12px;
511
- }
512
-
513
- .task-section-header > :first-child {
514
- flex: 1 1 auto;
515
- min-width: 0;
516
- }
517
-
518
- .task-header-actions,
519
- .task-section-header .settings-tab-actions,
520
- .task-detail-toolbar {
521
- display: flex;
522
- flex-wrap: wrap;
523
- gap: 8px;
524
- align-items: center;
525
- justify-content: flex-end;
526
- margin-left: auto;
527
- }
528
-
529
- .task-workbench-tabs {
530
- display: flex;
531
- flex-wrap: wrap;
532
- gap: 8px;
533
- margin-top: 14px;
534
- }
535
-
536
- .task-workbench-tab.active {
537
- background: var(--color-brand-light);
538
- border-color: var(--color-brand);
539
- color: var(--color-brand-dark);
540
- box-shadow: var(--shadow-subtle);
541
- }
542
-
543
- .task-workbench-panel {
544
- margin-top: 14px;
545
- }
546
-
547
- .task-action-caption {
548
- margin-top: 12px;
549
- font-size: 12px;
550
- line-height: 1.6;
551
- color: var(--color-text-secondary);
552
- }
553
-
554
- .task-stage-empty {
555
- display: flex;
556
- align-items: center;
557
- justify-content: space-between;
558
- gap: 16px;
559
- }
560
-
561
- .task-stage-strip {
562
- display: flex;
563
- flex-wrap: wrap;
564
- gap: 8px;
565
- justify-content: flex-end;
566
- }
567
-
568
- .task-stage-pill {
569
- padding: 8px 12px;
570
- border-radius: 999px;
571
- border: 1px solid var(--color-border-soft);
572
- background: var(--color-surface);
573
- font-size: 12px;
574
- font-weight: 600;
575
- color: var(--color-text-secondary);
576
- }
577
-
578
- .task-plan-summary-item {
579
- min-width: 120px;
580
- padding: 12px;
581
- border-radius: 14px;
582
- border: 1px solid var(--color-border);
583
- background: var(--color-surface-alt);
584
- display: flex;
585
- flex-direction: column;
586
- gap: 4px;
587
- }
588
-
589
- .task-plan-summary-label {
590
- font-size: 11px;
591
- color: var(--color-text-muted);
592
- text-transform: uppercase;
593
- letter-spacing: 0.06em;
594
- }
595
-
596
- .task-wave-list,
597
- .task-node-list,
598
- .task-runtime-list,
599
- .task-warning-list,
600
- .task-issues-list {
601
- display: flex;
602
- flex-direction: column;
603
- gap: 10px;
604
- margin-top: 12px;
605
- }
606
-
607
- .task-wave-card,
608
- .task-node-card,
609
- .task-runtime-item,
610
- .task-warning-item,
611
- .task-issue-item {
612
- border: 1px solid var(--color-border);
613
- border-radius: 14px;
614
- background: var(--color-surface-alt);
615
- }
616
-
617
- .task-wave-card,
618
- .task-node-card {
619
- padding: 14px;
620
- }
621
-
622
- .task-warning-item,
623
- .task-issue-item {
624
- padding: 10px 12px;
625
- font-size: 13px;
626
- }
627
-
628
- .task-warning-item {
629
- color: var(--color-text-secondary);
630
- background: rgba(255, 244, 220, 0.7);
631
- }
632
-
633
- .task-issue-item {
634
- color: #8f2d21;
635
- background: rgba(255, 232, 228, 0.75);
636
- }
637
-
638
- .task-wave-title,
639
- .task-node-title,
640
- .task-runtime-item-title {
641
- font-weight: 700;
642
- color: var(--color-text-primary);
643
- }
644
-
645
- .task-wave-nodes,
646
- .task-node-meta,
647
- .task-node-deps,
648
- .task-runtime-item-meta,
649
- .task-runtime-item-summary {
650
- font-size: 12px;
651
- color: var(--color-text-secondary);
652
- line-height: 1.55;
653
- }
654
-
655
- .task-node-head,
656
- .task-runtime-item,
657
- .task-runtime-item-actions {
658
- display: flex;
659
- align-items: flex-start;
660
- justify-content: space-between;
661
- gap: 10px;
662
- }
663
-
664
- .task-runtime-item {
665
- width: 100%;
666
- padding: 14px;
667
- cursor: default;
668
- text-align: left;
669
- }
670
-
671
- .task-runtime-item.clickable {
672
- cursor: pointer;
673
- }
674
-
675
- .task-runtime-item.active {
676
- border-color: rgba(199, 116, 98, 0.3);
677
- background: var(--color-brand-light);
678
- }
679
-
680
- .task-runtime-item-main {
681
- min-width: 0;
682
- flex: 1;
683
- display: flex;
684
- flex-direction: column;
685
- gap: 4px;
686
- }
687
-
688
- .task-runtime-item-actions {
689
- flex-direction: row;
690
- align-items: center;
691
- justify-content: flex-end;
692
- flex-wrap: nowrap;
693
- flex: 0 0 auto;
694
- }
695
-
696
- .task-runtime-item-actions .btn-mini {
697
- min-width: 72px;
698
- min-height: 30px;
699
- height: 30px;
700
- display: inline-flex;
701
- align-items: center;
702
- justify-content: center;
703
- box-sizing: border-box;
704
- }
705
-
706
- .pill.success {
707
- background: rgba(81, 154, 91, 0.14);
708
- color: #285d31;
709
- }
710
-
711
- .pill.warn {
712
- background: rgba(214, 153, 58, 0.16);
713
- color: #7a5110;
714
- }
715
-
716
- .pill.error {
717
- background: rgba(194, 73, 63, 0.16);
718
- color: #8f2d21;
719
- }
720
-
721
- .pill.neutral {
722
- background: rgba(116, 126, 138, 0.14);
723
- color: #45515e;
724
- }
725
-
726
- .task-log-block {
727
- margin: 10px 0 0;
728
- min-height: 120px;
729
- white-space: pre-wrap;
730
- word-break: break-word;
731
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
732
- font-size: 12px;
733
- line-height: 1.55;
734
- }
735
-
736
- @media (max-width: 1200px) {
737
- .task-layout-grid-primary,
738
- .task-layout-grid-secondary {
739
- grid-template-columns: 1fr;
740
- }
741
- }
742
-
743
- @media (max-width: 720px) {
744
- .task-composer-grid,
745
- .task-readiness-grid,
746
- .task-checklist-inline,
747
- .task-composer-grid-compact {
748
- grid-template-columns: 1fr;
749
- }
750
-
751
- .task-hero-main,
752
- .task-flow-head,
753
- .task-draft-overview-head,
754
- .task-stage-empty,
755
- .task-readiness-head,
756
- .task-section-header,
757
- .task-node-head,
758
- .task-runtime-item,
759
- .task-runtime-item-actions {
760
- flex-direction: column;
761
- align-items: stretch;
762
- }
763
-
764
- .task-header-actions,
765
- .task-section-header .settings-tab-actions,
766
- .task-detail-toolbar,
767
- .task-action-row-right {
768
- margin-left: 0;
769
- width: 100%;
770
- justify-content: flex-start;
771
- }
772
-
773
- .task-hero-actions {
774
- flex-wrap: wrap;
775
- }
776
- }
1
+ .task-layout-grid {
2
+ display: grid;
3
+ gap: 16px;
4
+ margin-bottom: 16px;
5
+ }
6
+
7
+ .task-layout-grid-primary {
8
+ grid-template-columns: minmax(0, 1fr);
9
+ }
10
+
11
+ .task-layout-grid-secondary {
12
+ grid-template-columns: minmax(0, 1fr);
13
+ }
14
+
15
+ .task-hero-card,
16
+ .task-compose-flow-card,
17
+ .task-sidebar-card,
18
+ .task-plan-card,
19
+ .task-workbench-card,
20
+ .task-template-block,
21
+ .task-readiness-card,
22
+ .task-action-help,
23
+ .task-empty-state {
24
+ min-width: 0;
25
+ border: 1px solid var(--color-border-soft);
26
+ border-radius: 18px;
27
+ background: var(--color-surface);
28
+ box-shadow: var(--shadow-subtle);
29
+ }
30
+
31
+ .task-hero-card {
32
+ padding: 18px;
33
+ margin-bottom: 16px;
34
+ background: linear-gradient(180deg, rgba(199, 116, 98, 0.10) 0%, rgba(199, 116, 98, 0.03) 100%), var(--color-surface);
35
+ }
36
+
37
+ .task-hero-main {
38
+ display: flex;
39
+ align-items: flex-start;
40
+ justify-content: space-between;
41
+ gap: 16px;
42
+ }
43
+
44
+ .task-hero-kicker {
45
+ font-size: 11px;
46
+ font-weight: 700;
47
+ letter-spacing: 0.08em;
48
+ text-transform: uppercase;
49
+ color: var(--color-text-secondary);
50
+ margin-bottom: 8px;
51
+ }
52
+
53
+ .task-hero-copy {
54
+ margin-top: 8px;
55
+ max-width: 760px;
56
+ line-height: 1.65;
57
+ }
58
+
59
+ .task-hero-actions {
60
+ flex: 0 0 auto;
61
+ flex-wrap: nowrap;
62
+ align-self: flex-start;
63
+ }
64
+
65
+ .task-hero-actions > .btn-tool + .btn-tool,
66
+ .task-hero-actions > .btn-tool-compact + .btn-tool,
67
+ .task-hero-actions > .btn-tool + .btn-tool-compact,
68
+ .task-hero-actions > .btn-tool-compact + .btn-tool-compact {
69
+ margin-top: 0;
70
+ }
71
+
72
+ .task-section-header .task-header-actions > .btn-tool + .btn-tool,
73
+ .task-section-header .task-header-actions > .btn-tool-compact + .btn-tool,
74
+ .task-section-header .task-header-actions > .btn-tool + .btn-tool-compact,
75
+ .task-section-header .task-header-actions > .btn-tool-compact + .btn-tool-compact {
76
+ margin-top: 0;
77
+ }
78
+
79
+ .task-action-row > .btn-tool + .btn-tool,
80
+ .task-action-row > .btn-tool-compact + .btn-tool,
81
+ .task-action-row > .btn-tool + .btn-tool-compact,
82
+ .task-action-row > .btn-tool-compact + .btn-tool-compact,
83
+ .task-action-row-right > .btn-tool + .btn-tool,
84
+ .task-action-row-right > .btn-tool-compact + .btn-tool,
85
+ .task-action-row-right > .btn-tool + .btn-tool-compact,
86
+ .task-action-row-right > .btn-tool-compact + .btn-tool-compact {
87
+ margin-top: 0;
88
+ }
89
+
90
+ .task-detail-toolbar > .btn-tool + .btn-tool,
91
+ .task-detail-toolbar > .btn-tool-compact + .btn-tool,
92
+ .task-detail-toolbar > .btn-tool + .btn-tool-compact,
93
+ .task-detail-toolbar > .btn-tool-compact + .btn-tool-compact {
94
+ margin-top: 0;
95
+ }
96
+
97
+ .task-hero-meta-strip {
98
+ display: flex;
99
+ flex-wrap: wrap;
100
+ gap: 8px;
101
+ margin-top: 14px;
102
+ }
103
+
104
+ .task-hero-meta {
105
+ display: inline-flex;
106
+ align-items: center;
107
+ gap: 6px;
108
+ min-height: 34px;
109
+ padding: 0 12px;
110
+ border-radius: 999px;
111
+ background: rgba(255, 255, 255, 0.56);
112
+ border: 1px solid rgba(199, 116, 98, 0.14);
113
+ color: var(--color-text-secondary);
114
+ font-size: 12px;
115
+ font-weight: 600;
116
+ }
117
+
118
+ .task-hero-meta strong {
119
+ color: var(--color-text-primary);
120
+ }
121
+
122
+ .task-compose-flow-card,
123
+ .task-sidebar-card,
124
+ .task-plan-card,
125
+ .task-workbench-card {
126
+ padding: 18px;
127
+ }
128
+
129
+ .task-flow-section + .task-flow-section,
130
+ .task-sidebar-group + .task-sidebar-group {
131
+ margin-top: 18px;
132
+ padding-top: 18px;
133
+ border-top: 1px solid var(--color-border-soft);
134
+ }
135
+
136
+ .task-flow-section-compact {
137
+ margin-top: 0;
138
+ }
139
+
140
+ .task-flow-head {
141
+ display: flex;
142
+ align-items: flex-start;
143
+ gap: 12px;
144
+ margin-bottom: 14px;
145
+ }
146
+
147
+ .task-flow-step {
148
+ width: 28px;
149
+ height: 28px;
150
+ border-radius: 999px;
151
+ background: var(--color-brand-light);
152
+ color: var(--color-brand-dark);
153
+ font-size: 13px;
154
+ font-weight: 700;
155
+ display: inline-flex;
156
+ align-items: center;
157
+ justify-content: center;
158
+ flex: 0 0 auto;
159
+ }
160
+
161
+ .task-flow-title,
162
+ .task-sidebar-title,
163
+ .task-readiness-title,
164
+ .task-empty-title,
165
+ .task-template-label {
166
+ font-size: 14px;
167
+ font-weight: 700;
168
+ color: var(--color-text-primary);
169
+ }
170
+
171
+ .task-flow-copy,
172
+ .task-readiness-copy,
173
+ .task-field-hint,
174
+ .task-empty-copy,
175
+ .task-action-help-item {
176
+ font-size: 12px;
177
+ line-height: 1.6;
178
+ color: var(--color-text-secondary);
179
+ }
180
+
181
+ .task-template-block {
182
+ padding: 12px 14px;
183
+ background: var(--color-surface-alt);
184
+ }
185
+
186
+ .task-template-panel {
187
+ margin-bottom: 14px;
188
+ padding: 12px 14px;
189
+ border: 1px solid var(--color-border-soft);
190
+ border-radius: 16px;
191
+ background: var(--color-surface-alt);
192
+ }
193
+
194
+ .task-template-chip-group,
195
+ .task-workflow-suggestions {
196
+ display: flex;
197
+ flex-wrap: wrap;
198
+ gap: 8px;
199
+ margin-top: 10px;
200
+ }
201
+
202
+ .task-template-chip,
203
+ .task-workflow-chip,
204
+ .task-workbench-tab {
205
+ border: 1px solid var(--color-border);
206
+ background: var(--color-surface);
207
+ color: var(--color-text-primary);
208
+ border-radius: 999px;
209
+ padding: 7px 12px;
210
+ font-size: 12px;
211
+ font-weight: 600;
212
+ cursor: pointer;
213
+ transition:
214
+ background var(--transition-fast) var(--ease-smooth),
215
+ border-color var(--transition-fast) var(--ease-smooth),
216
+ color var(--transition-fast) var(--ease-smooth),
217
+ box-shadow var(--transition-fast) var(--ease-smooth);
218
+ }
219
+
220
+ .task-template-chip:hover,
221
+ .task-workflow-chip:hover,
222
+ .task-workbench-tab:hover {
223
+ background: var(--color-brand-light);
224
+ border-color: var(--color-brand);
225
+ color: var(--color-brand-dark);
226
+ }
227
+
228
+ .task-workflow-chip {
229
+ display: inline-flex;
230
+ align-items: center;
231
+ gap: 8px;
232
+ }
233
+
234
+ .task-workflow-chip small {
235
+ color: var(--color-text-secondary);
236
+ font-size: 11px;
237
+ }
238
+
239
+ .task-composer-grid {
240
+ display: grid;
241
+ grid-template-columns: repeat(2, minmax(0, 1fr));
242
+ gap: 12px;
243
+ }
244
+
245
+ .task-composer-grid-primary {
246
+ grid-template-columns: minmax(0, 1fr);
247
+ }
248
+
249
+ .task-composer-grid-compact {
250
+ grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
251
+ align-items: stretch;
252
+ }
253
+
254
+ .task-composer-grid-inline {
255
+ grid-template-columns: repeat(2, minmax(0, 1fr));
256
+ }
257
+
258
+ .task-field-wide {
259
+ grid-column: 1 / -1;
260
+ }
261
+
262
+ .task-goal-field {
263
+ padding: 16px;
264
+ border-radius: 16px;
265
+ background: var(--color-surface-alt);
266
+ border: 1px solid var(--color-border-soft);
267
+ }
268
+
269
+ .task-textarea,
270
+ .task-log-block {
271
+ width: 100%;
272
+ min-height: 92px;
273
+ resize: vertical;
274
+ padding: 10px 12px;
275
+ border-radius: 12px;
276
+ border: 1px solid var(--color-border);
277
+ background: var(--color-surface);
278
+ color: var(--color-text-primary);
279
+ font: inherit;
280
+ box-sizing: border-box;
281
+ }
282
+
283
+ .task-textarea-goal {
284
+ min-height: 132px;
285
+ font-size: 14px;
286
+ line-height: 1.65;
287
+ }
288
+
289
+ .task-toggle-card {
290
+ padding: 14px;
291
+ border-radius: 16px;
292
+ border: 1px solid var(--color-border-soft);
293
+ background: var(--color-surface-alt);
294
+ }
295
+
296
+ .task-toggle-stack {
297
+ display: flex;
298
+ flex-direction: column;
299
+ gap: 10px;
300
+ margin-top: 8px;
301
+ }
302
+
303
+ .task-toggle-inline {
304
+ display: flex;
305
+ flex-wrap: wrap;
306
+ gap: 12px;
307
+ margin-top: 8px;
308
+ }
309
+
310
+ .task-toggle-card-inline {
311
+ min-height: 100%;
312
+ }
313
+
314
+ .task-toggle {
315
+ display: inline-flex;
316
+ align-items: center;
317
+ gap: 8px;
318
+ color: var(--color-text-secondary);
319
+ font-size: 13px;
320
+ }
321
+
322
+ .task-config-strip {
323
+ display: flex;
324
+ flex-wrap: wrap;
325
+ gap: 10px;
326
+ }
327
+
328
+ .task-config-strip-vertical {
329
+ flex-direction: column;
330
+ }
331
+
332
+ .task-config-pill {
333
+ display: inline-flex;
334
+ align-items: center;
335
+ min-height: 34px;
336
+ padding: 0 12px;
337
+ border-radius: 999px;
338
+ background: var(--color-surface-alt);
339
+ border: 1px solid var(--color-border);
340
+ color: var(--color-text-secondary);
341
+ font-size: 12px;
342
+ font-weight: 600;
343
+ }
344
+
345
+ .task-readiness-card,
346
+ .task-action-help,
347
+ .task-empty-state,
348
+ .task-stage-card {
349
+ padding: 14px;
350
+ background: var(--color-surface-alt);
351
+ }
352
+
353
+ .task-draft-overview,
354
+ .task-draft-inline,
355
+ .task-advanced-panel {
356
+ margin-top: 14px;
357
+ padding: 14px;
358
+ border: 1px solid var(--color-border-soft);
359
+ border-radius: 16px;
360
+ background: var(--color-surface-alt);
361
+ }
362
+
363
+ .task-draft-inline {
364
+ display: flex;
365
+ flex-direction: column;
366
+ gap: 12px;
367
+ }
368
+
369
+ .task-draft-inline-head {
370
+ display: flex;
371
+ align-items: center;
372
+ gap: 10px;
373
+ flex-wrap: wrap;
374
+ }
375
+
376
+ .task-draft-inline-copy {
377
+ min-width: 0;
378
+ }
379
+
380
+ .task-draft-overview-head {
381
+ display: flex;
382
+ align-items: flex-start;
383
+ justify-content: space-between;
384
+ gap: 12px;
385
+ }
386
+
387
+ .task-checklist-inline {
388
+ display: grid;
389
+ grid-template-columns: repeat(2, minmax(0, 1fr));
390
+ gap: 10px;
391
+ margin-top: 12px;
392
+ }
393
+
394
+ .task-check-chip {
395
+ display: flex;
396
+ flex-direction: column;
397
+ gap: 4px;
398
+ padding: 12px;
399
+ border-radius: 14px;
400
+ border: 1px solid var(--color-border);
401
+ background: var(--color-surface);
402
+ }
403
+
404
+ .task-check-chip strong {
405
+ font-size: 12px;
406
+ color: var(--color-text-primary);
407
+ }
408
+
409
+ .task-check-chip span {
410
+ font-size: 12px;
411
+ line-height: 1.5;
412
+ color: var(--color-text-secondary);
413
+ }
414
+
415
+ .task-check-chip.done {
416
+ border-color: rgba(81, 154, 91, 0.24);
417
+ background: rgba(81, 154, 91, 0.08);
418
+ }
419
+
420
+ .task-draft-overview .task-config-strip {
421
+ margin-top: 12px;
422
+ }
423
+
424
+ .task-advanced-panel[open] {
425
+ box-shadow: var(--shadow-subtle);
426
+ }
427
+
428
+ .task-advanced-summary {
429
+ display: flex;
430
+ align-items: center;
431
+ justify-content: space-between;
432
+ cursor: pointer;
433
+ font-size: 13px;
434
+ font-weight: 700;
435
+ color: var(--color-text-primary);
436
+ list-style: none;
437
+ min-height: 36px;
438
+ padding: 0 10px;
439
+ border-radius: 12px;
440
+ background: rgba(255, 255, 255, 0.64);
441
+ border: 1px solid var(--color-border-soft);
442
+ transition:
443
+ border-color var(--transition-fast) var(--ease-smooth),
444
+ background var(--transition-fast) var(--ease-smooth),
445
+ box-shadow var(--transition-fast) var(--ease-smooth);
446
+ }
447
+
448
+ .task-advanced-summary:hover {
449
+ border-color: var(--color-border-strong);
450
+ background: rgba(255, 255, 255, 0.86);
451
+ }
452
+
453
+ .task-advanced-panel[open] > .task-advanced-summary {
454
+ border-color: rgba(199, 116, 98, 0.4);
455
+ box-shadow: var(--shadow-subtle);
456
+ }
457
+
458
+ .task-advanced-summary::-webkit-details-marker {
459
+ display: none;
460
+ }
461
+
462
+ .task-advanced-panel > .task-composer-grid,
463
+ .task-advanced-panel > .selector-grid {
464
+ margin-top: 12px;
465
+ }
466
+
467
+ .task-readiness-head {
468
+ display: flex;
469
+ align-items: flex-start;
470
+ justify-content: space-between;
471
+ gap: 12px;
472
+ }
473
+
474
+ .task-readiness-grid {
475
+ display: grid;
476
+ grid-template-columns: repeat(2, minmax(0, 1fr));
477
+ gap: 10px;
478
+ margin-top: 12px;
479
+ }
480
+
481
+ .task-readiness-item {
482
+ display: flex;
483
+ flex-direction: column;
484
+ gap: 4px;
485
+ padding: 12px;
486
+ border-radius: 14px;
487
+ border: 1px solid var(--color-border);
488
+ background: var(--color-surface);
489
+ }
490
+
491
+ .task-readiness-item strong {
492
+ font-size: 12px;
493
+ color: var(--color-text-primary);
494
+ }
495
+
496
+ .task-readiness-item span {
497
+ font-size: 12px;
498
+ color: var(--color-text-secondary);
499
+ line-height: 1.5;
500
+ }
501
+
502
+ .task-readiness-item.done {
503
+ border-color: rgba(81, 154, 91, 0.24);
504
+ background: rgba(81, 154, 91, 0.08);
505
+ }
506
+
507
+ .task-action-row,
508
+ .task-plan-summary-strip,
509
+ .task-detail-summary-strip {
510
+ display: flex;
511
+ flex-wrap: wrap;
512
+ gap: 10px;
513
+ }
514
+
515
+ .task-action-row-prominent {
516
+ align-items: center;
517
+ margin-top: 4px;
518
+ }
519
+
520
+ .task-action-row > .btn-tool,
521
+ .task-action-row-right > .btn-tool {
522
+ width: auto;
523
+ min-height: 36px;
524
+ height: 36px;
525
+ display: inline-flex;
526
+ align-items: center;
527
+ justify-content: center;
528
+ box-sizing: border-box;
529
+ }
530
+
531
+ .task-action-preview {
532
+ min-width: 104px;
533
+ }
534
+
535
+ .task-action-row-right {
536
+ display: flex;
537
+ flex-wrap: wrap;
538
+ gap: 10px;
539
+ }
540
+
541
+ .task-action-row-right-prominent > .btn-tool {
542
+ min-width: 104px;
543
+ }
544
+
545
+ .task-action-help-prominent,
546
+ .task-action-help-sidebar {
547
+ display: flex;
548
+ flex-direction: column;
549
+ gap: 8px;
550
+ margin-top: 12px;
551
+ }
552
+
553
+ .task-section-header {
554
+ align-items: center;
555
+ justify-content: space-between;
556
+ gap: 12px;
557
+ }
558
+
559
+ .task-section-header > :first-child {
560
+ flex: 1 1 auto;
561
+ min-width: 0;
562
+ }
563
+
564
+ .task-header-actions,
565
+ .task-section-header .settings-tab-actions,
566
+ .task-detail-toolbar {
567
+ display: flex;
568
+ flex-wrap: wrap;
569
+ gap: 8px;
570
+ align-items: center;
571
+ justify-content: flex-end;
572
+ margin-left: auto;
573
+ }
574
+
575
+ .task-workbench-tabs {
576
+ display: flex;
577
+ flex-wrap: wrap;
578
+ gap: 8px;
579
+ margin-top: 14px;
580
+ }
581
+
582
+ .task-workbench-tab.active {
583
+ background: var(--color-brand-light);
584
+ border-color: var(--color-brand);
585
+ color: var(--color-brand-dark);
586
+ box-shadow: var(--shadow-subtle);
587
+ }
588
+
589
+ .task-workbench-panel {
590
+ margin-top: 14px;
591
+ }
592
+
593
+ .task-action-caption {
594
+ margin-top: 12px;
595
+ font-size: 12px;
596
+ line-height: 1.6;
597
+ color: var(--color-text-secondary);
598
+ }
599
+
600
+ .task-stage-empty {
601
+ display: flex;
602
+ align-items: center;
603
+ justify-content: space-between;
604
+ gap: 16px;
605
+ }
606
+
607
+ .task-stage-strip {
608
+ display: flex;
609
+ flex-wrap: wrap;
610
+ gap: 8px;
611
+ justify-content: flex-end;
612
+ }
613
+
614
+ .task-stage-pill {
615
+ padding: 8px 12px;
616
+ border-radius: 999px;
617
+ border: 1px solid var(--color-border-soft);
618
+ background: var(--color-surface);
619
+ font-size: 12px;
620
+ font-weight: 600;
621
+ color: var(--color-text-secondary);
622
+ }
623
+
624
+ .task-plan-summary-item {
625
+ min-width: 120px;
626
+ padding: 12px;
627
+ border-radius: 14px;
628
+ border: 1px solid var(--color-border);
629
+ background: var(--color-surface-alt);
630
+ display: flex;
631
+ flex-direction: column;
632
+ gap: 4px;
633
+ }
634
+
635
+ .task-plan-summary-label {
636
+ font-size: 11px;
637
+ color: var(--color-text-muted);
638
+ text-transform: uppercase;
639
+ letter-spacing: 0.06em;
640
+ }
641
+
642
+ .task-wave-list,
643
+ .task-node-list,
644
+ .task-runtime-list,
645
+ .task-warning-list,
646
+ .task-issues-list {
647
+ display: flex;
648
+ flex-direction: column;
649
+ gap: 10px;
650
+ margin-top: 12px;
651
+ }
652
+
653
+ .task-wave-card,
654
+ .task-node-card,
655
+ .task-runtime-item,
656
+ .task-warning-item,
657
+ .task-issue-item {
658
+ border: 1px solid var(--color-border);
659
+ border-radius: 14px;
660
+ background: var(--color-surface-alt);
661
+ }
662
+
663
+ .task-wave-card,
664
+ .task-node-card {
665
+ padding: 14px;
666
+ }
667
+
668
+ .task-warning-item,
669
+ .task-issue-item {
670
+ padding: 10px 12px;
671
+ font-size: 13px;
672
+ }
673
+
674
+ .task-warning-item {
675
+ color: var(--color-text-secondary);
676
+ background: rgba(255, 244, 220, 0.7);
677
+ }
678
+
679
+ .task-issue-item {
680
+ color: #8f2d21;
681
+ background: rgba(255, 232, 228, 0.75);
682
+ }
683
+
684
+ .task-wave-title,
685
+ .task-node-title,
686
+ .task-runtime-item-title {
687
+ font-weight: 700;
688
+ color: var(--color-text-primary);
689
+ }
690
+
691
+ .task-wave-nodes,
692
+ .task-node-meta,
693
+ .task-node-deps,
694
+ .task-runtime-item-meta,
695
+ .task-runtime-item-summary {
696
+ font-size: 12px;
697
+ color: var(--color-text-secondary);
698
+ line-height: 1.55;
699
+ }
700
+
701
+ .task-node-head,
702
+ .task-runtime-item,
703
+ .task-runtime-item-actions {
704
+ display: flex;
705
+ align-items: flex-start;
706
+ justify-content: space-between;
707
+ gap: 10px;
708
+ }
709
+
710
+ .task-runtime-item {
711
+ width: 100%;
712
+ padding: 14px;
713
+ cursor: default;
714
+ text-align: left;
715
+ }
716
+
717
+ .task-runtime-item.clickable {
718
+ cursor: pointer;
719
+ }
720
+
721
+ .task-runtime-item.active {
722
+ border-color: rgba(199, 116, 98, 0.3);
723
+ background: var(--color-brand-light);
724
+ }
725
+
726
+ .task-runtime-item-main {
727
+ min-width: 0;
728
+ flex: 1;
729
+ display: flex;
730
+ flex-direction: column;
731
+ gap: 4px;
732
+ }
733
+
734
+ .task-runtime-item-actions {
735
+ flex-direction: row;
736
+ align-items: center;
737
+ justify-content: flex-end;
738
+ flex-wrap: nowrap;
739
+ flex: 0 0 auto;
740
+ }
741
+
742
+ .task-runtime-item-actions .btn-mini {
743
+ min-width: 72px;
744
+ min-height: 30px;
745
+ height: 30px;
746
+ display: inline-flex;
747
+ align-items: center;
748
+ justify-content: center;
749
+ box-sizing: border-box;
750
+ }
751
+
752
+ .pill.success {
753
+ background: rgba(81, 154, 91, 0.14);
754
+ color: #285d31;
755
+ }
756
+
757
+ .pill.warn {
758
+ background: rgba(214, 153, 58, 0.16);
759
+ color: #7a5110;
760
+ }
761
+
762
+ .pill.error {
763
+ background: rgba(194, 73, 63, 0.16);
764
+ color: #8f2d21;
765
+ }
766
+
767
+ .pill.neutral {
768
+ background: rgba(116, 126, 138, 0.14);
769
+ color: #45515e;
770
+ }
771
+
772
+ .task-log-block {
773
+ margin: 10px 0 0;
774
+ min-height: 120px;
775
+ white-space: pre-wrap;
776
+ word-break: break-word;
777
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
778
+ font-size: 12px;
779
+ line-height: 1.55;
780
+ }
781
+
782
+ @media (max-width: 1200px) {
783
+ .task-layout-grid-primary,
784
+ .task-layout-grid-secondary {
785
+ grid-template-columns: 1fr;
786
+ }
787
+ }
788
+
789
+ @media (max-width: 720px) {
790
+ .task-composer-grid,
791
+ .task-readiness-grid,
792
+ .task-checklist-inline,
793
+ .task-composer-grid-compact {
794
+ grid-template-columns: 1fr;
795
+ }
796
+
797
+ .task-hero-main,
798
+ .task-flow-head,
799
+ .task-draft-overview-head,
800
+ .task-stage-empty,
801
+ .task-readiness-head,
802
+ .task-section-header,
803
+ .task-node-head,
804
+ .task-runtime-item,
805
+ .task-runtime-item-actions {
806
+ flex-direction: column;
807
+ align-items: stretch;
808
+ }
809
+
810
+ .task-header-actions,
811
+ .task-section-header .settings-tab-actions,
812
+ .task-detail-toolbar,
813
+ .task-action-row-right {
814
+ margin-left: 0;
815
+ width: 100%;
816
+ justify-content: flex-start;
817
+ }
818
+
819
+ .task-hero-actions {
820
+ flex-wrap: wrap;
821
+ }
822
+ }