@drunkcoding/agents-and-skills 0.0.13 → 0.0.14

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 (78) hide show
  1. package/.claude-plugin/marketplace.json +9 -6
  2. package/README.md +1 -1
  3. package/package.json +1 -1
  4. package/plugins/html-effectiveness/.claude-plugin/plugin.json +1 -1
  5. package/plugins/html-effectiveness/README.md +9 -4
  6. package/plugins/html-effectiveness/agents/report-builder.md +4 -0
  7. package/plugins/html-effectiveness/assets/base.css +40 -20
  8. package/plugins/html-effectiveness/docs/template-gallery.md +28 -0
  9. package/plugins/html-effectiveness/scripts/_tmp.js +37 -0
  10. package/plugins/html-effectiveness/scripts/catalog.js +47 -0
  11. package/plugins/html-effectiveness/scripts/extract.js +104 -0
  12. package/plugins/html-effectiveness/scripts/render.js +2 -2
  13. package/plugins/html-effectiveness/skills/html-effectiveness/SKILL.md +4 -4
  14. package/plugins/html-effectiveness/templates/01-exploration-code-approaches.html.tmpl +400 -0
  15. package/plugins/html-effectiveness/templates/02-exploration-visual-designs.html.tmpl +456 -0
  16. package/plugins/html-effectiveness/templates/03-code-review-pr.html.tmpl +581 -0
  17. package/plugins/html-effectiveness/templates/04-code-understanding.html.tmpl +443 -0
  18. package/plugins/html-effectiveness/templates/05-design-system.html.tmpl +578 -0
  19. package/plugins/html-effectiveness/templates/06-component-variants.html.tmpl +557 -0
  20. package/plugins/html-effectiveness/templates/07-prototype-animation.html.tmpl +417 -0
  21. package/plugins/html-effectiveness/templates/08-prototype-interaction.html.tmpl +363 -0
  22. package/plugins/html-effectiveness/templates/09-slide-deck.html.tmpl +535 -0
  23. package/plugins/html-effectiveness/templates/10-svg-illustrations.html.tmpl +444 -0
  24. package/plugins/html-effectiveness/templates/11-status-report.html.tmpl +152 -0
  25. package/plugins/html-effectiveness/templates/12-incident-report.html.tmpl +547 -0
  26. package/plugins/html-effectiveness/templates/13-flowchart-diagram.html.tmpl +361 -0
  27. package/plugins/html-effectiveness/templates/14-research-feature-explainer.html.tmpl +348 -0
  28. package/plugins/html-effectiveness/templates/15-research-concept-explainer.html.tmpl +334 -0
  29. package/plugins/html-effectiveness/templates/16-implementation-plan.html.tmpl +657 -0
  30. package/plugins/html-effectiveness/templates/17-pr-writeup.html.tmpl +553 -0
  31. package/plugins/html-effectiveness/templates/18-editor-triage-board.html.tmpl +541 -0
  32. package/plugins/html-effectiveness/templates/19-editor-feature-flags.html.tmpl +627 -0
  33. package/plugins/html-effectiveness/templates/20-editor-prompt-tuner.html.tmpl +687 -0
  34. package/plugins/html-effectiveness/templates/manifest.json +436 -2
  35. package/plugins/html-effectiveness/tests/_tmp.test.js +58 -0
  36. package/plugins/html-effectiveness/tests/fixtures/01-exploration-code-approaches.data.json +3 -0
  37. package/plugins/html-effectiveness/tests/fixtures/02-exploration-visual-designs.data.json +3 -0
  38. package/plugins/html-effectiveness/tests/fixtures/03-code-review-pr.data.json +3 -0
  39. package/plugins/html-effectiveness/tests/fixtures/04-code-understanding.data.json +3 -0
  40. package/plugins/html-effectiveness/tests/fixtures/05-design-system.data.json +3 -0
  41. package/plugins/html-effectiveness/tests/fixtures/06-component-variants.data.json +3 -0
  42. package/plugins/html-effectiveness/tests/fixtures/07-prototype-animation.data.json +3 -0
  43. package/plugins/html-effectiveness/tests/fixtures/08-prototype-interaction.data.json +3 -0
  44. package/plugins/html-effectiveness/tests/fixtures/09-slide-deck.data.json +3 -0
  45. package/plugins/html-effectiveness/tests/fixtures/10-svg-illustrations.data.json +3 -0
  46. package/plugins/html-effectiveness/tests/fixtures/11-status-report.data.json +37 -0
  47. package/plugins/html-effectiveness/tests/fixtures/12-incident-report.data.json +3 -0
  48. package/plugins/html-effectiveness/tests/fixtures/13-flowchart-diagram.data.json +3 -0
  49. package/plugins/html-effectiveness/tests/fixtures/14-research-feature-explainer.data.json +3 -0
  50. package/plugins/html-effectiveness/tests/fixtures/15-research-concept-explainer.data.json +3 -0
  51. package/plugins/html-effectiveness/tests/fixtures/16-implementation-plan.data.json +3 -0
  52. package/plugins/html-effectiveness/tests/fixtures/17-pr-writeup.data.json +3 -0
  53. package/plugins/html-effectiveness/tests/fixtures/18-editor-triage-board.data.json +3 -0
  54. package/plugins/html-effectiveness/tests/fixtures/19-editor-feature-flags.data.json +3 -0
  55. package/plugins/html-effectiveness/tests/fixtures/20-editor-prompt-tuner.data.json +3 -0
  56. package/plugins/html-effectiveness/tests/manifest.test.js +61 -0
  57. package/plugins/plugin-validator/.claude-plugin/plugin.json +1 -1
  58. package/plugins/plugin-validator/skills/validate-agents/SKILL.md +2 -2
  59. package/plugins/plugin-validator/skills/validate-commands/SKILL.md +2 -2
  60. package/plugins/plugin-validator/skills/validate-hooks/SKILL.md +57 -18
  61. package/plugins/team-superpower/.claude-plugin/plugin.json +7 -39
  62. package/plugins/team-superpower/README.md +73 -19
  63. package/plugins/team-superpower/agents/backend-developer.md +33 -0
  64. package/plugins/team-superpower/agents/designer.md +5 -1
  65. package/plugins/team-superpower/agents/frontend-developer.md +33 -0
  66. package/plugins/team-superpower/agents/planner.md +31 -11
  67. package/plugins/team-superpower/agents/qa-engineer.md +30 -0
  68. package/plugins/team-superpower/agents/reviewer.md +37 -21
  69. package/plugins/team-superpower/agents/security-engineer.md +30 -0
  70. package/plugins/team-superpower/agents/software-architect.md +30 -0
  71. package/plugins/team-superpower/assets/ESCALATION.md +19 -5
  72. package/plugins/team-superpower/assets/SESSION_README.md +31 -11
  73. package/plugins/team-superpower/commands/team-feature-resume.md +40 -5
  74. package/plugins/team-superpower/commands/team-feature.md +148 -22
  75. package/plugins/team-superpower/hooks/hooks.json +0 -3
  76. package/plugins/tech-graph/.claude-plugin/plugin.json +1 -1
  77. package/plugins/tech-graph/agents/tech-graph.md +8 -0
  78. package/plugins/team-superpower/agents/implementer.md +0 -46
@@ -0,0 +1,578 @@
1
+ <!--
2
+ template: 05-design-system
3
+ upstream: 05-design-system.html
4
+ slots:
5
+ title: string # replaces first <h1> innerHTML
6
+ -->
7
+ <div class="page">
8
+
9
+ <header>
10
+ <h1>{{title}}</h1>
11
+ <p class="sub">
12
+ Generated from <code>src/styles/tokens.ts</code> and <code>src/components/</code> &mdash; use as a portable reference when prompting.
13
+ </p>
14
+ </header>
15
+
16
+ <!-- ===================== COLOR ===================== -->
17
+ <section id="color">
18
+ <h2>Color</h2>
19
+ <hr class="rule">
20
+
21
+ <div class="swatch-group">
22
+ <div class="swatch-group-label">Primary</div>
23
+ <div class="swatch-grid">
24
+ <div class="swatch">
25
+ <div class="chip no-border" style="background:#D97757"></div>
26
+ <span class="hex">#D97757</span>
27
+ <span class="token">--clay</span>
28
+ </div>
29
+ <div class="swatch">
30
+ <div class="chip no-border" style="background:#141413"></div>
31
+ <span class="hex">#141413</span>
32
+ <span class="token">--slate</span>
33
+ </div>
34
+ <div class="swatch">
35
+ <div class="chip" style="background:#FAF9F5"></div>
36
+ <span class="hex">#FAF9F5</span>
37
+ <span class="token">--ivory</span>
38
+ </div>
39
+ <div class="swatch">
40
+ <div class="chip no-border" style="background:#E3DACC"></div>
41
+ <span class="hex">#E3DACC</span>
42
+ <span class="token">--oat</span>
43
+ </div>
44
+ </div>
45
+ </div>
46
+
47
+ <div class="swatch-group">
48
+ <div class="swatch-group-label">Neutral</div>
49
+ <div class="swatch-grid">
50
+ <div class="swatch">
51
+ <div class="chip" style="background:#FFFFFF"></div>
52
+ <span class="hex">#FFFFFF</span>
53
+ <span class="token">--white</span>
54
+ </div>
55
+ <div class="swatch">
56
+ <div class="chip" style="background:#F0EEE6"></div>
57
+ <span class="hex">#F0EEE6</span>
58
+ <span class="token">--gray-100</span>
59
+ </div>
60
+ <div class="swatch">
61
+ <div class="chip no-border" style="background:#D1CFC5"></div>
62
+ <span class="hex">#D1CFC5</span>
63
+ <span class="token">--gray-300</span>
64
+ </div>
65
+ <div class="swatch">
66
+ <div class="chip no-border" style="background:#87867F"></div>
67
+ <span class="hex">#87867F</span>
68
+ <span class="token">--gray-500</span>
69
+ </div>
70
+ <div class="swatch">
71
+ <div class="chip no-border" style="background:#3D3D3A"></div>
72
+ <span class="hex">#3D3D3A</span>
73
+ <span class="token">--gray-700</span>
74
+ </div>
75
+ </div>
76
+ </div>
77
+
78
+ <div class="swatch-group">
79
+ <div class="swatch-group-label">Semantic</div>
80
+ <div class="swatch-grid">
81
+ <div class="swatch">
82
+ <div class="chip no-border" style="background:#788C5D"></div>
83
+ <span class="hex">#788C5D</span>
84
+ <span class="token">--success</span>
85
+ </div>
86
+ <div class="swatch">
87
+ <div class="chip no-border" style="background:#C78E3F"></div>
88
+ <span class="hex">#C78E3F</span>
89
+ <span class="token">--warning</span>
90
+ </div>
91
+ <div class="swatch">
92
+ <div class="chip no-border" style="background:#B04A4A"></div>
93
+ <span class="hex">#B04A4A</span>
94
+ <span class="token">--danger</span>
95
+ </div>
96
+ <div class="swatch">
97
+ <div class="chip no-border" style="background:#5C7CA3"></div>
98
+ <span class="hex">#5C7CA3</span>
99
+ <span class="token">--info</span>
100
+ </div>
101
+ </div>
102
+ </div>
103
+ </section>
104
+
105
+ <!-- ===================== TYPOGRAPHY ===================== -->
106
+ <section id="typography">
107
+ <h2>Typography</h2>
108
+ <hr class="rule">
109
+
110
+ <div class="type-scale">
111
+ <div class="type-row">
112
+ <div class="type-specimen t-display">Plan the week ahead</div>
113
+ <div class="type-meta">
114
+ <span class="name">Display</span>
115
+ 48 / 1.1 / 500
116
+ </div>
117
+ </div>
118
+ <div class="type-row">
119
+ <div class="type-specimen t-h1">Plan the week ahead</div>
120
+ <div class="type-meta">
121
+ <span class="name">Heading 1</span>
122
+ 32 / 1.2 / 500
123
+ </div>
124
+ </div>
125
+ <div class="type-row">
126
+ <div class="type-specimen t-h2">Plan the week ahead</div>
127
+ <div class="type-meta">
128
+ <span class="name">Heading 2</span>
129
+ 24 / 1.3 / 500
130
+ </div>
131
+ </div>
132
+ <div class="type-row">
133
+ <div class="type-specimen t-body">Review milestones, assign owners, and surface blockers before they cascade.</div>
134
+ <div class="type-meta">
135
+ <span class="name">Body</span>
136
+ 16 / 1.55 / 430
137
+ </div>
138
+ </div>
139
+ <div class="type-row">
140
+ <div class="type-specimen t-small">Review milestones, assign owners, and surface blockers before they cascade.</div>
141
+ <div class="type-meta">
142
+ <span class="name">Small</span>
143
+ 14 / 1.5 / 430
144
+ </div>
145
+ </div>
146
+ <div class="type-row">
147
+ <div class="type-specimen t-caption">UPDATED 2 HOURS AGO</div>
148
+ <div class="type-meta">
149
+ <span class="name">Caption</span>
150
+ 12 / 1.4 / 500
151
+ </div>
152
+ </div>
153
+ </div>
154
+ </section>
155
+
156
+ <!-- ===================== SPACING ===================== -->
157
+ <section id="spacing">
158
+ <h2>Spacing</h2>
159
+ <hr class="rule">
160
+
161
+ <div class="spacing-ruler">
162
+ <div class="space-token">
163
+ <div class="space-bar" style="width:4px"></div>
164
+ <div class="space-label">4<span>--sp-1</span></div>
165
+ </div>
166
+ <div class="space-token">
167
+ <div class="space-bar" style="width:8px"></div>
168
+ <div class="space-label">8<span>--sp-2</span></div>
169
+ </div>
170
+ <div class="space-token">
171
+ <div class="space-bar" style="width:12px"></div>
172
+ <div class="space-label">12<span>--sp-3</span></div>
173
+ </div>
174
+ <div class="space-token">
175
+ <div class="space-bar" style="width:16px"></div>
176
+ <div class="space-label">16<span>--sp-4</span></div>
177
+ </div>
178
+ <div class="space-token">
179
+ <div class="space-bar" style="width:24px"></div>
180
+ <div class="space-label">24<span>--sp-5</span></div>
181
+ </div>
182
+ <div class="space-token">
183
+ <div class="space-bar" style="width:32px"></div>
184
+ <div class="space-label">32<span>--sp-6</span></div>
185
+ </div>
186
+ <div class="space-token">
187
+ <div class="space-bar" style="width:48px"></div>
188
+ <div class="space-label">48<span>--sp-7</span></div>
189
+ </div>
190
+ <div class="space-token">
191
+ <div class="space-bar" style="width:64px"></div>
192
+ <div class="space-label">64<span>--sp-8</span></div>
193
+ </div>
194
+ </div>
195
+ </section>
196
+
197
+ <!-- ===================== RADIUS & ELEVATION ===================== -->
198
+ <section id="shape">
199
+ <h2>Radius &amp; Elevation</h2>
200
+ <hr class="rule">
201
+
202
+ <div class="token-row">
203
+ <div class="radius-card" style="border-radius:4px">
204
+ <div class="lbl">4px<span>--r-xs</span></div>
205
+ </div>
206
+ <div class="radius-card" style="border-radius:8px">
207
+ <div class="lbl">8px<span>--r-sm</span></div>
208
+ </div>
209
+ <div class="radius-card" style="border-radius:12px">
210
+ <div class="lbl">12px<span>--r-md</span></div>
211
+ </div>
212
+ <div class="radius-card" style="border-radius:20px">
213
+ <div class="lbl">20px<span>--r-lg</span></div>
214
+ </div>
215
+ </div>
216
+
217
+ <div class="token-row">
218
+ <div class="shadow-card" style="box-shadow:0 1px 2px rgba(20,20,19,0.06)">
219
+ <div class="lbl">--shadow-sm<span>0 1px 2px / 6%</span></div>
220
+ </div>
221
+ <div class="shadow-card" style="box-shadow:0 4px 10px rgba(20,20,19,0.08)">
222
+ <div class="lbl">--shadow-md<span>0 4px 10px / 8%</span></div>
223
+ </div>
224
+ <div class="shadow-card" style="box-shadow:0 12px 28px rgba(20,20,19,0.12)">
225
+ <div class="lbl">--shadow-lg<span>0 12px 28px / 12%</span></div>
226
+ </div>
227
+ </div>
228
+ </section>
229
+
230
+ <!-- ===================== CORE COMPONENTS ===================== -->
231
+ <section id="components">
232
+ <h2>Core components</h2>
233
+ <hr class="rule">
234
+
235
+ <div class="component">
236
+ <div class="component-name">&lt;Button /&gt;</div>
237
+ <div class="component-stage">
238
+ <button class="btn btn-primary">Create task</button>
239
+ <button class="btn btn-secondary">Cancel</button>
240
+ <button class="btn btn-ghost">Skip</button>
241
+ <button class="btn btn-danger">Delete</button>
242
+ </div>
243
+ </div>
244
+
245
+ <div class="component">
246
+ <div class="component-name">&lt;Input /&gt;</div>
247
+ <div class="component-stage">
248
+ <input class="input" type="text" placeholder="Search tasks&hellip;">
249
+ <input class="input" type="text" value="Weekly planning">
250
+ </div>
251
+ </div>
252
+
253
+ <div class="component">
254
+ <div class="component-name">&lt;Checkbox /&gt;</div>
255
+ <div class="component-stage">
256
+ <label class="checkbox">
257
+ <input type="checkbox">
258
+ Notify assignees
259
+ </label>
260
+ <label class="checkbox">
261
+ <input type="checkbox" checked>
262
+ Archive on complete
263
+ </label>
264
+ </div>
265
+ </div>
266
+
267
+ <div class="component">
268
+ <div class="component-name">&lt;Badge /&gt;</div>
269
+ <div class="component-stage">
270
+ <span class="badge badge-neutral">Draft</span>
271
+ <span class="badge badge-accent">In review</span>
272
+ <span class="badge badge-success">Done</span>
273
+ <span class="badge badge-warning">Overdue</span>
274
+ </div>
275
+ </div>
276
+ </section>
277
+
278
+ </div>
279
+
280
+ <style>
281
+ * { box-sizing: border-box; }
282
+ .page {
283
+ max-width: 980px;
284
+ margin: 0 auto;
285
+ }
286
+ header h1 {
287
+ font-family: var(--serif);
288
+ font-weight: 500;
289
+ font-size: 40px;
290
+ letter-spacing: -0.01em;
291
+ margin: 0 0 6px;
292
+ }
293
+ header .sub {
294
+ color: var(--gray-500);
295
+ font-size: 14px;
296
+ margin: 0 0 48px;
297
+ }
298
+ header .sub code {
299
+ font-family: var(--mono);
300
+ font-size: 13px;
301
+ background: var(--gray-100);
302
+ padding: 1px 5px;
303
+ border-radius: 4px;
304
+ }
305
+ section { margin-bottom: 64px; }
306
+ h2 {
307
+ font-family: var(--serif);
308
+ font-weight: 500;
309
+ font-size: 26px;
310
+ margin: 0 0 8px;
311
+ letter-spacing: -0.01em;
312
+ }
313
+ hr.rule {
314
+ border: none;
315
+ border-top: 1px solid var(--gray-300);
316
+ margin: 0 0 28px;
317
+ }
318
+ /* ---------- Color ---------- */
319
+ .swatch-group {
320
+ margin-bottom: 28px;
321
+ }
322
+ .swatch-group-label {
323
+ font-family: var(--mono);
324
+ font-size: 11px;
325
+ text-transform: uppercase;
326
+ letter-spacing: 0.08em;
327
+ color: var(--gray-500);
328
+ margin-bottom: 12px;
329
+ }
330
+ .swatch-grid {
331
+ display: grid;
332
+ grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
333
+ gap: 20px 16px;
334
+ }
335
+ .swatch {}
336
+ .swatch .chip {
337
+ width: 64px;
338
+ height: 64px;
339
+ border-radius: var(--radius-row);
340
+ border: var(--border);
341
+ margin-bottom: 8px;
342
+ }
343
+ .swatch .chip.no-border { border-color: transparent; }
344
+ .swatch .hex {
345
+ font-family: var(--mono);
346
+ font-size: 12px;
347
+ color: var(--gray-700);
348
+ display: block;
349
+ }
350
+ .swatch .token {
351
+ font-family: var(--mono);
352
+ font-size: 11px;
353
+ color: var(--gray-500);
354
+ display: block;
355
+ }
356
+ /* ---------- Typography ---------- */
357
+ .type-scale {
358
+ border: var(--border);
359
+ border-radius: var(--radius-panel);
360
+ background: var(--white);
361
+ overflow: hidden;
362
+ }
363
+ .type-row {
364
+ display: flex;
365
+ align-items: baseline;
366
+ justify-content: space-between;
367
+ gap: 24px;
368
+ padding: 20px 24px;
369
+ border-bottom: 1px solid var(--gray-100);
370
+ }
371
+ .type-row:last-child { border-bottom: none; }
372
+ .type-specimen {
373
+ flex: 1;
374
+ min-width: 0;
375
+ white-space: nowrap;
376
+ overflow: hidden;
377
+ text-overflow: ellipsis;
378
+ color: var(--slate);
379
+ }
380
+ .type-meta {
381
+ font-family: var(--mono);
382
+ font-size: 12px;
383
+ color: var(--gray-500);
384
+ text-align: right;
385
+ flex-shrink: 0;
386
+ }
387
+ .type-meta .name {
388
+ color: var(--gray-700);
389
+ display: block;
390
+ margin-bottom: 2px;
391
+ }
392
+ .t-display { font-family: var(--serif); font-size: 48px; line-height: 1.1; font-weight: 500; letter-spacing: -0.02em; }
393
+ .t-h1 { font-family: var(--serif); font-size: 32px; line-height: 1.2; font-weight: 500; letter-spacing: -0.01em; }
394
+ .t-h2 { font-family: var(--serif); font-size: 24px; line-height: 1.3; font-weight: 500; }
395
+ .t-body { font-family: var(--sans); font-size: 16px; line-height: 1.55; font-weight: 430; }
396
+ .t-small { font-family: var(--sans); font-size: 14px; line-height: 1.5; font-weight: 430; }
397
+ .t-caption { font-family: var(--sans); font-size: 12px; line-height: 1.4; font-weight: 500; color: var(--gray-500); }
398
+ /* ---------- Spacing ---------- */
399
+ .spacing-ruler {
400
+ display: flex;
401
+ align-items: flex-end;
402
+ gap: 28px;
403
+ padding: 28px 24px;
404
+ background: var(--white);
405
+ border: var(--border);
406
+ border-radius: var(--radius-panel);
407
+ overflow-x: auto;
408
+ }
409
+ .space-token {
410
+ display: flex;
411
+ flex-direction: column;
412
+ align-items: center;
413
+ gap: 10px;
414
+ flex-shrink: 0;
415
+ }
416
+ .space-bar {
417
+ background: var(--clay);
418
+ border-radius: 3px;
419
+ height: 14px;
420
+ }
421
+ .space-label {
422
+ font-family: var(--mono);
423
+ font-size: 11px;
424
+ color: var(--gray-700);
425
+ text-align: center;
426
+ }
427
+ .space-label span {
428
+ display: block;
429
+ color: var(--gray-500);
430
+ }
431
+ /* ---------- Radius & Elevation ---------- */
432
+ .token-row {
433
+ display: flex;
434
+ flex-wrap: wrap;
435
+ gap: 20px;
436
+ margin-bottom: 28px;
437
+ }
438
+ .radius-card {
439
+ width: 120px;
440
+ height: 88px;
441
+ background: var(--oat);
442
+ border: var(--border);
443
+ display: flex;
444
+ align-items: flex-end;
445
+ padding: 10px 12px;
446
+ }
447
+ .radius-card .lbl {
448
+ font-family: var(--mono);
449
+ font-size: 11px;
450
+ color: var(--gray-700);
451
+ }
452
+ .radius-card .lbl span { color: var(--gray-500); display: block; }
453
+ .shadow-card {
454
+ width: 160px;
455
+ height: 96px;
456
+ background: var(--white);
457
+ border-radius: var(--radius-panel);
458
+ display: flex;
459
+ align-items: flex-end;
460
+ padding: 12px 14px;
461
+ }
462
+ .shadow-card .lbl {
463
+ font-family: var(--mono);
464
+ font-size: 11px;
465
+ color: var(--gray-700);
466
+ }
467
+ .shadow-card .lbl span { color: var(--gray-500); display: block; }
468
+ /* ---------- Core components ---------- */
469
+ .component {
470
+ margin-bottom: 32px;
471
+ }
472
+ .component-name {
473
+ font-family: var(--mono);
474
+ font-size: 12px;
475
+ color: var(--gray-500);
476
+ margin-bottom: 12px;
477
+ }
478
+ .component-stage {
479
+ display: flex;
480
+ flex-wrap: wrap;
481
+ align-items: center;
482
+ gap: 16px;
483
+ padding: 24px;
484
+ background: var(--white);
485
+ border: var(--border);
486
+ border-radius: var(--radius-panel);
487
+ }
488
+ /* Button */
489
+ .btn {
490
+ display: inline-flex;
491
+ align-items: center;
492
+ justify-content: center;
493
+ height: 36px;
494
+ padding: 0 16px;
495
+ font-family: var(--sans);
496
+ font-size: 14px;
497
+ font-weight: 500;
498
+ border-radius: var(--radius-row);
499
+ border: 1.5px solid transparent;
500
+ cursor: pointer;
501
+ transition: background 0.12s ease, border-color 0.12s ease;
502
+ }
503
+ .btn-primary { background: var(--clay); color: var(--white); }
504
+ .btn-primary:hover { background: #C7684C; }
505
+ .btn-secondary { background: var(--white); color: var(--slate); border-color: var(--gray-300); }
506
+ .btn-secondary:hover { background: var(--gray-100); }
507
+ .btn-ghost { background: transparent; color: var(--gray-700); }
508
+ .btn-ghost:hover { background: var(--gray-100); }
509
+ .btn-danger { background: #B04A4A; color: var(--white); }
510
+ .btn-danger:hover { background: #9A3F3F; }
511
+ /* Input */
512
+ .input {
513
+ height: 38px;
514
+ padding: 0 12px;
515
+ font-family: var(--sans);
516
+ font-size: 14px;
517
+ color: var(--slate);
518
+ background: var(--white);
519
+ border: var(--border);
520
+ border-radius: var(--radius-row);
521
+ width: 260px;
522
+ outline: none;
523
+ transition: border-color 0.12s ease, box-shadow 0.12s ease;
524
+ }
525
+ .input::placeholder { color: var(--gray-500); }
526
+ .input:focus {
527
+ border-color: var(--clay);
528
+ box-shadow: 0 0 0 3px rgba(217, 119, 87, 0.15);
529
+ }
530
+ /* Checkbox */
531
+ .checkbox {
532
+ display: inline-flex;
533
+ align-items: center;
534
+ gap: 10px;
535
+ font-size: 14px;
536
+ cursor: pointer;
537
+ user-select: none;
538
+ }
539
+ .checkbox input {
540
+ appearance: none;
541
+ width: 18px;
542
+ height: 18px;
543
+ border: var(--border);
544
+ border-radius: 5px;
545
+ background: var(--white);
546
+ margin: 0;
547
+ cursor: pointer;
548
+ position: relative;
549
+ transition: background 0.12s ease, border-color 0.12s ease;
550
+ }
551
+ .checkbox input:checked {
552
+ background: var(--clay);
553
+ border-color: var(--clay);
554
+ }
555
+ .checkbox input:checked::after {
556
+ content: "";
557
+ position: absolute;
558
+ left: 5px; top: 1px;
559
+ width: 5px; height: 10px;
560
+ border: solid var(--white);
561
+ border-width: 0 2px 2px 0;
562
+ transform: rotate(45deg);
563
+ }
564
+ /* Badge */
565
+ .badge {
566
+ display: inline-flex;
567
+ align-items: center;
568
+ height: 22px;
569
+ padding: 0 9px;
570
+ font-size: 12px;
571
+ font-weight: 500;
572
+ border-radius: 999px;
573
+ }
574
+ .badge-neutral { background: var(--gray-100); color: var(--gray-700); }
575
+ .badge-accent { background: rgba(217, 119, 87, 0.14); color: var(--clay); }
576
+ .badge-success { background: rgba(120, 140, 93, 0.16); color: var(--olive); }
577
+ .badge-warning { background: rgba(199, 142, 63, 0.16); color: #A06A2A; }
578
+ </style>