@aginies/webuikit 0.2.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.
@@ -0,0 +1,2269 @@
1
+ /* @aginies/tokens v0.1.0 — generated from src/tokens.ts. Do not edit by hand. */
2
+
3
+ /* Static tokens: type, shape, spacing, motion, layout. */
4
+ :root {
5
+ --font-display: 'Bricolage Grotesque Variable', 'Instrument Sans Variable', ui-sans-serif, system-ui, sans-serif;
6
+ --font-body: 'Instrument Sans Variable', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
7
+ --font-mono: 'JetBrains Mono Variable', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
8
+ --radius-sm: 4px;
9
+ --radius-md: 6px;
10
+ --radius-lg: 10px;
11
+ --radius-xl: 14px;
12
+ --radius-2xl: 20px;
13
+ --radius-full: 9999px;
14
+ --radius: var(--radius-lg);
15
+ --space-1: 4px;
16
+ --space-2: 8px;
17
+ --space-3: 12px;
18
+ --space-4: 16px;
19
+ --space-5: 24px;
20
+ --space-6: 32px;
21
+ --space-7: 48px;
22
+ --space-8: 64px;
23
+ --fs-display: clamp(40px, 6.4vw, 88px);
24
+ --lh-display: 0.96;
25
+ --ls-display: -0.04em;
26
+ --fs-h1: clamp(36px, 5.2vw, 68px);
27
+ --lh-h1: 1;
28
+ --ls-h1: -0.035em;
29
+ --fs-h2: clamp(28px, 3.8vw, 50px);
30
+ --lh-h2: 1.04;
31
+ --ls-h2: -0.03em;
32
+ --fs-h3: clamp(20px, 2vw, 26px);
33
+ --lh-h3: 1.2;
34
+ --ls-h3: -0.02em;
35
+ --fs-h4: 17px;
36
+ --lh-h4: 1.3;
37
+ --ls-h4: -0.01em;
38
+ --fs-stat: clamp(30px, 3.4vw, 44px);
39
+ --lh-stat: 1;
40
+ --ls-stat: -0.03em;
41
+ --fs-lede: clamp(17px, 1.4vw, 20px);
42
+ --lh-lede: 1.5;
43
+ --fs-body: 16px;
44
+ --lh-body: 1.55;
45
+ --fs-body-2: 15px;
46
+ --lh-body-2: 1.5;
47
+ --fs-small: 13.5px;
48
+ --lh-small: 1.45;
49
+ --fs-eyebrow: 11.5px;
50
+ --lh-eyebrow: 1;
51
+ --ls-eyebrow: 0.14em;
52
+ --fs-label: 11px;
53
+ --lh-label: 1;
54
+ --ls-label: 0.1em;
55
+ --fs-tag: 11.5px;
56
+ --lh-tag: 1;
57
+ --ls-tag: 0.04em;
58
+ --fs-ui: 13px;
59
+ --lh-ui: 1.4;
60
+ --fs-ui-sm: 12px;
61
+ --lh-ui-sm: 1.35;
62
+ --fs-ui-xs: 11px;
63
+ --lh-ui-xs: 1.3;
64
+ --duration-fast: 150ms;
65
+ --duration-base: 200ms;
66
+ --duration-slow: 300ms;
67
+ --duration-enter: 600ms;
68
+ --ease-enter: cubic-bezier(0.2, 0.7, 0.2, 1);
69
+ --max: 1200px;
70
+ --gutter: clamp(20px, 4vw, 40px);
71
+ --section-y: clamp(64px, 9vw, 128px);
72
+ --section-y-tight: clamp(40px, 6vw, 80px);
73
+ --bp-sm: 640px;
74
+ --bp-md: 768px;
75
+ --bp-lg: 1024px;
76
+ --bp-xl: 1280px;
77
+ --bp-2xl: 1536px;
78
+ --bp-nav: 1180px;
79
+ --bp-wide: 1340px;
80
+ --z-base: 0;
81
+ --z-raised: 10;
82
+ --z-sticky: 50;
83
+ --z-dropdown: 100;
84
+ --z-modal: 200;
85
+ --z-toast: 300;
86
+ --focus-ring: 2px solid var(--signal);
87
+ --focus-ring-offset: 3px;
88
+ --focus-field-ring: 0 0 0 3px var(--signal-soft);
89
+ --neutral-50: #F4F6FA;
90
+ --neutral-50-rgb: 244 246 250;
91
+ --neutral-100: #EEF1F7;
92
+ --neutral-100-rgb: 238 241 247;
93
+ --neutral-200: #DCE1EC;
94
+ --neutral-200-rgb: 220 225 236;
95
+ --neutral-300: #C5CCDB;
96
+ --neutral-300-rgb: 197 204 219;
97
+ --neutral-400: #A9B2CC;
98
+ --neutral-400-rgb: 169 178 204;
99
+ --neutral-500: #7F8AA8;
100
+ --neutral-500-rgb: 127 138 168;
101
+ --neutral-600: #6B7590;
102
+ --neutral-600-rgb: 107 117 144;
103
+ --neutral-700: #3C4560;
104
+ --neutral-700-rgb: 60 69 96;
105
+ --neutral-800: #2A3350;
106
+ --neutral-800-rgb: 42 51 80;
107
+ --neutral-900: #1B2238;
108
+ --neutral-900-rgb: 27 34 56;
109
+ --neutral-950: #0B1020;
110
+ --neutral-950-rgb: 11 16 32;
111
+ }
112
+
113
+
114
+ /* Dark is the default theme. */
115
+ :root {
116
+ --bg: #070A14;
117
+ --bg-rgb: 7 10 20;
118
+ --bg-2: #0B1020;
119
+ --bg-2-rgb: 11 16 32;
120
+ --panel: #0E1426;
121
+ --panel-rgb: 14 20 38;
122
+ --panel-2: #121A30;
123
+ --panel-2-rgb: 18 26 48;
124
+ --panel-3: #182240;
125
+ --panel-3-rgb: 24 34 64;
126
+ --line: #1B2238;
127
+ --line-rgb: 27 34 56;
128
+ --line-2: #2A3350;
129
+ --line-2-rgb: 42 51 80;
130
+ --line-3: #3C4560;
131
+ --line-3-rgb: 60 69 96;
132
+ --text: #E7ECF7;
133
+ --text-rgb: 231 236 247;
134
+ --text-2: #A9B2CC;
135
+ --text-2-rgb: 169 178 204;
136
+ --mute: #7F8AA8;
137
+ --mute-rgb: 127 138 168;
138
+ --signal: #5FC8FF;
139
+ --signal-rgb: 95 200 255;
140
+ --signal-2: #01B1F7;
141
+ --signal-2-rgb: 1 177 247;
142
+ --signal-ink: #06111F;
143
+ --signal-ink-rgb: 6 17 31;
144
+ --signal-soft: rgba(95, 200, 255, 0.12);
145
+ --ok: #4FD1A0;
146
+ --ok-rgb: 79 209 160;
147
+ --ok-ink: #06111F;
148
+ --ok-ink-rgb: 6 17 31;
149
+ --ok-soft: rgba(79, 209, 160, 0.14);
150
+ --warn: #F2B35B;
151
+ --warn-rgb: 242 179 91;
152
+ --warn-ink: #06111F;
153
+ --warn-ink-rgb: 6 17 31;
154
+ --warn-soft: rgba(242, 179, 91, 0.14);
155
+ --bad: #FF7A7A;
156
+ --bad-rgb: 255 122 122;
157
+ --bad-ink: #06111F;
158
+ --bad-ink-rgb: 6 17 31;
159
+ --bad-soft: rgba(255, 122, 122, 0.14);
160
+ --shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
161
+ --shadow-sm: 0 8px 24px rgba(0, 0, 0, 0.35);
162
+ --overlay: rgba(7, 10, 20, 0.6);
163
+ --signal-50: 235 247 255;
164
+ --signal-100: 211 238 255;
165
+ --signal-200: 173 222 251;
166
+ --signal-300: 122 199 241;
167
+ --signal-400: 75 175 226;
168
+ --signal-500: 33 150 202;
169
+ --signal-600: 8 125 172;
170
+ --signal-700: 1 100 139;
171
+ --signal-800: 2 77 107;
172
+ --signal-900: 0 54 78;
173
+ --signal-950: 0 36 53;
174
+ --ok-50: 231 251 241;
175
+ --ok-100: 208 243 226;
176
+ --ok-200: 171 229 202;
177
+ --ok-300: 118 210 171;
178
+ --ok-400: 65 188 142;
179
+ --ok-500: 16 163 118;
180
+ --ok-600: 0 136 97;
181
+ --ok-700: 5 109 78;
182
+ --ok-800: 5 84 59;
183
+ --ok-900: 1 60 41;
184
+ --ok-950: 1 40 26;
185
+ --warn-50: 255 243 229;
186
+ --warn-100: 251 230 204;
187
+ --warn-200: 241 208 166;
188
+ --warn-300: 227 178 114;
189
+ --warn-400: 208 150 67;
190
+ --warn-500: 185 125 25;
191
+ --warn-600: 156 102 1;
192
+ --warn-700: 125 82 5;
193
+ --warn-800: 97 62 0;
194
+ --warn-900: 69 43 1;
195
+ --warn-950: 47 28 0;
196
+ --bad-50: 255 242 241;
197
+ --bad-100: 255 226 224;
198
+ --bad-200: 255 197 194;
199
+ --bad-300: 254 158 155;
200
+ --bad-400: 244 119 119;
201
+ --bad-500: 220 90 93;
202
+ --bad-600: 188 69 72;
203
+ --bad-700: 155 51 55;
204
+ --bad-800: 120 38 41;
205
+ --bad-900: 86 26 28;
206
+ --bad-950: 60 14 16;
207
+ --data-1: var(--signal);
208
+ --data-2: var(--ok);
209
+ --data-3: var(--warn);
210
+ --data-4: var(--bad);
211
+ --data-5: var(--text-2);
212
+ --data-6: var(--mute);
213
+ --canvas-bg: var(--bg);
214
+ --canvas-grid: var(--line);
215
+ --canvas-node: var(--panel);
216
+ --canvas-node-line: var(--line-2);
217
+ --edge: var(--line-2);
218
+ --edge-hover: var(--text-2);
219
+ --edge-active: var(--signal);
220
+ --execution: var(--ok);
221
+ --check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%235FC8FF' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
222
+ color-scheme: dark;
223
+ }
224
+
225
+ .dark, [data-theme="dark"] {
226
+ --bg: #070A14;
227
+ --bg-rgb: 7 10 20;
228
+ --bg-2: #0B1020;
229
+ --bg-2-rgb: 11 16 32;
230
+ --panel: #0E1426;
231
+ --panel-rgb: 14 20 38;
232
+ --panel-2: #121A30;
233
+ --panel-2-rgb: 18 26 48;
234
+ --panel-3: #182240;
235
+ --panel-3-rgb: 24 34 64;
236
+ --line: #1B2238;
237
+ --line-rgb: 27 34 56;
238
+ --line-2: #2A3350;
239
+ --line-2-rgb: 42 51 80;
240
+ --line-3: #3C4560;
241
+ --line-3-rgb: 60 69 96;
242
+ --text: #E7ECF7;
243
+ --text-rgb: 231 236 247;
244
+ --text-2: #A9B2CC;
245
+ --text-2-rgb: 169 178 204;
246
+ --mute: #7F8AA8;
247
+ --mute-rgb: 127 138 168;
248
+ --signal: #5FC8FF;
249
+ --signal-rgb: 95 200 255;
250
+ --signal-2: #01B1F7;
251
+ --signal-2-rgb: 1 177 247;
252
+ --signal-ink: #06111F;
253
+ --signal-ink-rgb: 6 17 31;
254
+ --signal-soft: rgba(95, 200, 255, 0.12);
255
+ --ok: #4FD1A0;
256
+ --ok-rgb: 79 209 160;
257
+ --ok-ink: #06111F;
258
+ --ok-ink-rgb: 6 17 31;
259
+ --ok-soft: rgba(79, 209, 160, 0.14);
260
+ --warn: #F2B35B;
261
+ --warn-rgb: 242 179 91;
262
+ --warn-ink: #06111F;
263
+ --warn-ink-rgb: 6 17 31;
264
+ --warn-soft: rgba(242, 179, 91, 0.14);
265
+ --bad: #FF7A7A;
266
+ --bad-rgb: 255 122 122;
267
+ --bad-ink: #06111F;
268
+ --bad-ink-rgb: 6 17 31;
269
+ --bad-soft: rgba(255, 122, 122, 0.14);
270
+ --shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
271
+ --shadow-sm: 0 8px 24px rgba(0, 0, 0, 0.35);
272
+ --overlay: rgba(7, 10, 20, 0.6);
273
+ --signal-50: 235 247 255;
274
+ --signal-100: 211 238 255;
275
+ --signal-200: 173 222 251;
276
+ --signal-300: 122 199 241;
277
+ --signal-400: 75 175 226;
278
+ --signal-500: 33 150 202;
279
+ --signal-600: 8 125 172;
280
+ --signal-700: 1 100 139;
281
+ --signal-800: 2 77 107;
282
+ --signal-900: 0 54 78;
283
+ --signal-950: 0 36 53;
284
+ --ok-50: 231 251 241;
285
+ --ok-100: 208 243 226;
286
+ --ok-200: 171 229 202;
287
+ --ok-300: 118 210 171;
288
+ --ok-400: 65 188 142;
289
+ --ok-500: 16 163 118;
290
+ --ok-600: 0 136 97;
291
+ --ok-700: 5 109 78;
292
+ --ok-800: 5 84 59;
293
+ --ok-900: 1 60 41;
294
+ --ok-950: 1 40 26;
295
+ --warn-50: 255 243 229;
296
+ --warn-100: 251 230 204;
297
+ --warn-200: 241 208 166;
298
+ --warn-300: 227 178 114;
299
+ --warn-400: 208 150 67;
300
+ --warn-500: 185 125 25;
301
+ --warn-600: 156 102 1;
302
+ --warn-700: 125 82 5;
303
+ --warn-800: 97 62 0;
304
+ --warn-900: 69 43 1;
305
+ --warn-950: 47 28 0;
306
+ --bad-50: 255 242 241;
307
+ --bad-100: 255 226 224;
308
+ --bad-200: 255 197 194;
309
+ --bad-300: 254 158 155;
310
+ --bad-400: 244 119 119;
311
+ --bad-500: 220 90 93;
312
+ --bad-600: 188 69 72;
313
+ --bad-700: 155 51 55;
314
+ --bad-800: 120 38 41;
315
+ --bad-900: 86 26 28;
316
+ --bad-950: 60 14 16;
317
+ --data-1: var(--signal);
318
+ --data-2: var(--ok);
319
+ --data-3: var(--warn);
320
+ --data-4: var(--bad);
321
+ --data-5: var(--text-2);
322
+ --data-6: var(--mute);
323
+ --canvas-bg: var(--bg);
324
+ --canvas-grid: var(--line);
325
+ --canvas-node: var(--panel);
326
+ --canvas-node-line: var(--line-2);
327
+ --edge: var(--line-2);
328
+ --edge-hover: var(--text-2);
329
+ --edge-active: var(--signal);
330
+ --execution: var(--ok);
331
+ --check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%235FC8FF' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
332
+ color-scheme: dark;
333
+ }
334
+
335
+ .light, [data-theme="light"] {
336
+ --bg: #F4F6FA;
337
+ --bg-rgb: 244 246 250;
338
+ --bg-2: #FFFFFF;
339
+ --bg-2-rgb: 255 255 255;
340
+ --panel: #FFFFFF;
341
+ --panel-rgb: 255 255 255;
342
+ --panel-2: #EEF1F7;
343
+ --panel-2-rgb: 238 241 247;
344
+ --panel-3: #E4E9F2;
345
+ --panel-3-rgb: 228 233 242;
346
+ --line: #DCE1EC;
347
+ --line-rgb: 220 225 236;
348
+ --line-2: #C5CCDB;
349
+ --line-2-rgb: 197 204 219;
350
+ --line-3: #A9B2CC;
351
+ --line-3-rgb: 169 178 204;
352
+ --text: #0B1220;
353
+ --text-rgb: 11 18 32;
354
+ --text-2: #3C4560;
355
+ --text-2-rgb: 60 69 96;
356
+ --mute: #6B7590;
357
+ --mute-rgb: 107 117 144;
358
+ --signal: #0077C2;
359
+ --signal-rgb: 0 119 194;
360
+ --signal-2: #005E9A;
361
+ --signal-2-rgb: 0 94 154;
362
+ --signal-ink: #FFFFFF;
363
+ --signal-ink-rgb: 255 255 255;
364
+ --signal-soft: rgba(0, 119, 194, 0.10);
365
+ --ok: #0B7F57;
366
+ --ok-rgb: 11 127 87;
367
+ --ok-ink: #FFFFFF;
368
+ --ok-ink-rgb: 255 255 255;
369
+ --ok-soft: rgba(11, 127, 87, 0.12);
370
+ --warn: #9C5A12;
371
+ --warn-rgb: 156 90 18;
372
+ --warn-ink: #FFFFFF;
373
+ --warn-ink-rgb: 255 255 255;
374
+ --warn-soft: rgba(156, 90, 18, 0.12);
375
+ --bad: #B3261E;
376
+ --bad-rgb: 179 38 30;
377
+ --bad-ink: #FFFFFF;
378
+ --bad-ink-rgb: 255 255 255;
379
+ --bad-soft: rgba(179, 38, 30, 0.10);
380
+ --shadow: 0 20px 50px rgba(11, 18, 32, 0.10);
381
+ --shadow-sm: 0 8px 20px rgba(11, 18, 32, 0.08);
382
+ --overlay: rgba(11, 18, 32, 0.45);
383
+ --signal-50: 238 246 255;
384
+ --signal-100: 217 236 255;
385
+ --signal-200: 181 219 254;
386
+ --signal-300: 130 195 253;
387
+ --signal-400: 82 170 244;
388
+ --signal-500: 46 144 221;
389
+ --signal-600: 21 120 191;
390
+ --signal-700: 3 96 157;
391
+ --signal-800: 3 73 121;
392
+ --signal-900: 3 52 87;
393
+ --signal-950: 1 34 61;
394
+ --ok-50: 234 250 241;
395
+ --ok-100: 213 242 226;
396
+ --ok-200: 180 227 202;
397
+ --ok-300: 135 206 171;
398
+ --ok-400: 94 184 143;
399
+ --ok-500: 60 160 118;
400
+ --ok-600: 38 134 96;
401
+ --ok-700: 22 109 75;
402
+ --ok-800: 16 83 57;
403
+ --ok-900: 10 59 40;
404
+ --ok-950: 2 40 25;
405
+ --warn-50: 255 243 233;
406
+ --warn-100: 253 228 209;
407
+ --warn-200: 244 205 174;
408
+ --warn-300: 231 175 127;
409
+ --warn-400: 213 146 87;
410
+ --warn-500: 189 120 56;
411
+ --warn-600: 161 98 36;
412
+ --warn-700: 132 77 22;
413
+ --warn-800: 101 59 15;
414
+ --warn-900: 73 41 9;
415
+ --warn-950: 50 26 3;
416
+ --bad-50: 255 242 240;
417
+ --bad-100: 254 226 221;
418
+ --bad-200: 255 198 189;
419
+ --bad-300: 254 159 145;
420
+ --bad-400: 251 115 99;
421
+ --bad-500: 226 85 71;
422
+ --bad-600: 194 63 52;
423
+ --bad-700: 160 46 37;
424
+ --bad-800: 124 34 27;
425
+ --bad-900: 89 23 17;
426
+ --bad-950: 63 11 8;
427
+ --data-1: var(--signal);
428
+ --data-2: var(--ok);
429
+ --data-3: var(--warn);
430
+ --data-4: var(--bad);
431
+ --data-5: var(--text-2);
432
+ --data-6: var(--mute);
433
+ --canvas-bg: var(--bg);
434
+ --canvas-grid: var(--line);
435
+ --canvas-node: var(--panel);
436
+ --canvas-node-line: var(--line-2);
437
+ --edge: var(--line-2);
438
+ --edge-hover: var(--text-2);
439
+ --edge-active: var(--signal);
440
+ --execution: var(--ok);
441
+ --check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%230077C2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
442
+ color-scheme: light;
443
+ }
444
+
445
+ @media (prefers-color-scheme: light) {
446
+ :root:not(.dark):not([data-theme="dark"]) {
447
+ --bg: #F4F6FA;
448
+ --bg-rgb: 244 246 250;
449
+ --bg-2: #FFFFFF;
450
+ --bg-2-rgb: 255 255 255;
451
+ --panel: #FFFFFF;
452
+ --panel-rgb: 255 255 255;
453
+ --panel-2: #EEF1F7;
454
+ --panel-2-rgb: 238 241 247;
455
+ --panel-3: #E4E9F2;
456
+ --panel-3-rgb: 228 233 242;
457
+ --line: #DCE1EC;
458
+ --line-rgb: 220 225 236;
459
+ --line-2: #C5CCDB;
460
+ --line-2-rgb: 197 204 219;
461
+ --line-3: #A9B2CC;
462
+ --line-3-rgb: 169 178 204;
463
+ --text: #0B1220;
464
+ --text-rgb: 11 18 32;
465
+ --text-2: #3C4560;
466
+ --text-2-rgb: 60 69 96;
467
+ --mute: #6B7590;
468
+ --mute-rgb: 107 117 144;
469
+ --signal: #0077C2;
470
+ --signal-rgb: 0 119 194;
471
+ --signal-2: #005E9A;
472
+ --signal-2-rgb: 0 94 154;
473
+ --signal-ink: #FFFFFF;
474
+ --signal-ink-rgb: 255 255 255;
475
+ --signal-soft: rgba(0, 119, 194, 0.10);
476
+ --ok: #0B7F57;
477
+ --ok-rgb: 11 127 87;
478
+ --ok-ink: #FFFFFF;
479
+ --ok-ink-rgb: 255 255 255;
480
+ --ok-soft: rgba(11, 127, 87, 0.12);
481
+ --warn: #9C5A12;
482
+ --warn-rgb: 156 90 18;
483
+ --warn-ink: #FFFFFF;
484
+ --warn-ink-rgb: 255 255 255;
485
+ --warn-soft: rgba(156, 90, 18, 0.12);
486
+ --bad: #B3261E;
487
+ --bad-rgb: 179 38 30;
488
+ --bad-ink: #FFFFFF;
489
+ --bad-ink-rgb: 255 255 255;
490
+ --bad-soft: rgba(179, 38, 30, 0.10);
491
+ --shadow: 0 20px 50px rgba(11, 18, 32, 0.10);
492
+ --shadow-sm: 0 8px 20px rgba(11, 18, 32, 0.08);
493
+ --overlay: rgba(11, 18, 32, 0.45);
494
+ --signal-50: 238 246 255;
495
+ --signal-100: 217 236 255;
496
+ --signal-200: 181 219 254;
497
+ --signal-300: 130 195 253;
498
+ --signal-400: 82 170 244;
499
+ --signal-500: 46 144 221;
500
+ --signal-600: 21 120 191;
501
+ --signal-700: 3 96 157;
502
+ --signal-800: 3 73 121;
503
+ --signal-900: 3 52 87;
504
+ --signal-950: 1 34 61;
505
+ --ok-50: 234 250 241;
506
+ --ok-100: 213 242 226;
507
+ --ok-200: 180 227 202;
508
+ --ok-300: 135 206 171;
509
+ --ok-400: 94 184 143;
510
+ --ok-500: 60 160 118;
511
+ --ok-600: 38 134 96;
512
+ --ok-700: 22 109 75;
513
+ --ok-800: 16 83 57;
514
+ --ok-900: 10 59 40;
515
+ --ok-950: 2 40 25;
516
+ --warn-50: 255 243 233;
517
+ --warn-100: 253 228 209;
518
+ --warn-200: 244 205 174;
519
+ --warn-300: 231 175 127;
520
+ --warn-400: 213 146 87;
521
+ --warn-500: 189 120 56;
522
+ --warn-600: 161 98 36;
523
+ --warn-700: 132 77 22;
524
+ --warn-800: 101 59 15;
525
+ --warn-900: 73 41 9;
526
+ --warn-950: 50 26 3;
527
+ --bad-50: 255 242 240;
528
+ --bad-100: 254 226 221;
529
+ --bad-200: 255 198 189;
530
+ --bad-300: 254 159 145;
531
+ --bad-400: 251 115 99;
532
+ --bad-500: 226 85 71;
533
+ --bad-600: 194 63 52;
534
+ --bad-700: 160 46 37;
535
+ --bad-800: 124 34 27;
536
+ --bad-900: 89 23 17;
537
+ --bad-950: 63 11 8;
538
+ --data-1: var(--signal);
539
+ --data-2: var(--ok);
540
+ --data-3: var(--warn);
541
+ --data-4: var(--bad);
542
+ --data-5: var(--text-2);
543
+ --data-6: var(--mute);
544
+ --canvas-bg: var(--bg);
545
+ --canvas-grid: var(--line);
546
+ --canvas-node: var(--panel);
547
+ --canvas-node-line: var(--line-2);
548
+ --edge: var(--line-2);
549
+ --edge-hover: var(--text-2);
550
+ --edge-active: var(--signal);
551
+ --execution: var(--ok);
552
+ --check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%230077C2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
553
+ color-scheme: light;
554
+ }
555
+
556
+ }
557
+
558
+ /* A .room section always carries the palette opposite to its ambient theme. */
559
+ :root .room, .dark .room, [data-theme="dark"] .room {
560
+ --bg: #F4F6FA;
561
+ --bg-rgb: 244 246 250;
562
+ --bg-2: #FFFFFF;
563
+ --bg-2-rgb: 255 255 255;
564
+ --panel: #FFFFFF;
565
+ --panel-rgb: 255 255 255;
566
+ --panel-2: #EEF1F7;
567
+ --panel-2-rgb: 238 241 247;
568
+ --panel-3: #E4E9F2;
569
+ --panel-3-rgb: 228 233 242;
570
+ --line: #DCE1EC;
571
+ --line-rgb: 220 225 236;
572
+ --line-2: #C5CCDB;
573
+ --line-2-rgb: 197 204 219;
574
+ --line-3: #A9B2CC;
575
+ --line-3-rgb: 169 178 204;
576
+ --text: #0B1220;
577
+ --text-rgb: 11 18 32;
578
+ --text-2: #3C4560;
579
+ --text-2-rgb: 60 69 96;
580
+ --mute: #6B7590;
581
+ --mute-rgb: 107 117 144;
582
+ --signal: #0077C2;
583
+ --signal-rgb: 0 119 194;
584
+ --signal-2: #005E9A;
585
+ --signal-2-rgb: 0 94 154;
586
+ --signal-ink: #FFFFFF;
587
+ --signal-ink-rgb: 255 255 255;
588
+ --signal-soft: rgba(0, 119, 194, 0.10);
589
+ --ok: #0B7F57;
590
+ --ok-rgb: 11 127 87;
591
+ --ok-ink: #FFFFFF;
592
+ --ok-ink-rgb: 255 255 255;
593
+ --ok-soft: rgba(11, 127, 87, 0.12);
594
+ --warn: #9C5A12;
595
+ --warn-rgb: 156 90 18;
596
+ --warn-ink: #FFFFFF;
597
+ --warn-ink-rgb: 255 255 255;
598
+ --warn-soft: rgba(156, 90, 18, 0.12);
599
+ --bad: #B3261E;
600
+ --bad-rgb: 179 38 30;
601
+ --bad-ink: #FFFFFF;
602
+ --bad-ink-rgb: 255 255 255;
603
+ --bad-soft: rgba(179, 38, 30, 0.10);
604
+ --shadow: 0 20px 50px rgba(11, 18, 32, 0.10);
605
+ --shadow-sm: 0 8px 20px rgba(11, 18, 32, 0.08);
606
+ --overlay: rgba(11, 18, 32, 0.45);
607
+ --signal-50: 238 246 255;
608
+ --signal-100: 217 236 255;
609
+ --signal-200: 181 219 254;
610
+ --signal-300: 130 195 253;
611
+ --signal-400: 82 170 244;
612
+ --signal-500: 46 144 221;
613
+ --signal-600: 21 120 191;
614
+ --signal-700: 3 96 157;
615
+ --signal-800: 3 73 121;
616
+ --signal-900: 3 52 87;
617
+ --signal-950: 1 34 61;
618
+ --ok-50: 234 250 241;
619
+ --ok-100: 213 242 226;
620
+ --ok-200: 180 227 202;
621
+ --ok-300: 135 206 171;
622
+ --ok-400: 94 184 143;
623
+ --ok-500: 60 160 118;
624
+ --ok-600: 38 134 96;
625
+ --ok-700: 22 109 75;
626
+ --ok-800: 16 83 57;
627
+ --ok-900: 10 59 40;
628
+ --ok-950: 2 40 25;
629
+ --warn-50: 255 243 233;
630
+ --warn-100: 253 228 209;
631
+ --warn-200: 244 205 174;
632
+ --warn-300: 231 175 127;
633
+ --warn-400: 213 146 87;
634
+ --warn-500: 189 120 56;
635
+ --warn-600: 161 98 36;
636
+ --warn-700: 132 77 22;
637
+ --warn-800: 101 59 15;
638
+ --warn-900: 73 41 9;
639
+ --warn-950: 50 26 3;
640
+ --bad-50: 255 242 240;
641
+ --bad-100: 254 226 221;
642
+ --bad-200: 255 198 189;
643
+ --bad-300: 254 159 145;
644
+ --bad-400: 251 115 99;
645
+ --bad-500: 226 85 71;
646
+ --bad-600: 194 63 52;
647
+ --bad-700: 160 46 37;
648
+ --bad-800: 124 34 27;
649
+ --bad-900: 89 23 17;
650
+ --bad-950: 63 11 8;
651
+ --data-1: var(--signal);
652
+ --data-2: var(--ok);
653
+ --data-3: var(--warn);
654
+ --data-4: var(--bad);
655
+ --data-5: var(--text-2);
656
+ --data-6: var(--mute);
657
+ --canvas-bg: var(--bg);
658
+ --canvas-grid: var(--line);
659
+ --canvas-node: var(--panel);
660
+ --canvas-node-line: var(--line-2);
661
+ --edge: var(--line-2);
662
+ --edge-hover: var(--text-2);
663
+ --edge-active: var(--signal);
664
+ --execution: var(--ok);
665
+ --check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%230077C2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
666
+ color-scheme: light;
667
+ }
668
+
669
+ .light .room, [data-theme="light"] .room {
670
+ --bg: #070A14;
671
+ --bg-rgb: 7 10 20;
672
+ --bg-2: #0B1020;
673
+ --bg-2-rgb: 11 16 32;
674
+ --panel: #0E1426;
675
+ --panel-rgb: 14 20 38;
676
+ --panel-2: #121A30;
677
+ --panel-2-rgb: 18 26 48;
678
+ --panel-3: #182240;
679
+ --panel-3-rgb: 24 34 64;
680
+ --line: #1B2238;
681
+ --line-rgb: 27 34 56;
682
+ --line-2: #2A3350;
683
+ --line-2-rgb: 42 51 80;
684
+ --line-3: #3C4560;
685
+ --line-3-rgb: 60 69 96;
686
+ --text: #E7ECF7;
687
+ --text-rgb: 231 236 247;
688
+ --text-2: #A9B2CC;
689
+ --text-2-rgb: 169 178 204;
690
+ --mute: #7F8AA8;
691
+ --mute-rgb: 127 138 168;
692
+ --signal: #5FC8FF;
693
+ --signal-rgb: 95 200 255;
694
+ --signal-2: #01B1F7;
695
+ --signal-2-rgb: 1 177 247;
696
+ --signal-ink: #06111F;
697
+ --signal-ink-rgb: 6 17 31;
698
+ --signal-soft: rgba(95, 200, 255, 0.12);
699
+ --ok: #4FD1A0;
700
+ --ok-rgb: 79 209 160;
701
+ --ok-ink: #06111F;
702
+ --ok-ink-rgb: 6 17 31;
703
+ --ok-soft: rgba(79, 209, 160, 0.14);
704
+ --warn: #F2B35B;
705
+ --warn-rgb: 242 179 91;
706
+ --warn-ink: #06111F;
707
+ --warn-ink-rgb: 6 17 31;
708
+ --warn-soft: rgba(242, 179, 91, 0.14);
709
+ --bad: #FF7A7A;
710
+ --bad-rgb: 255 122 122;
711
+ --bad-ink: #06111F;
712
+ --bad-ink-rgb: 6 17 31;
713
+ --bad-soft: rgba(255, 122, 122, 0.14);
714
+ --shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
715
+ --shadow-sm: 0 8px 24px rgba(0, 0, 0, 0.35);
716
+ --overlay: rgba(7, 10, 20, 0.6);
717
+ --signal-50: 235 247 255;
718
+ --signal-100: 211 238 255;
719
+ --signal-200: 173 222 251;
720
+ --signal-300: 122 199 241;
721
+ --signal-400: 75 175 226;
722
+ --signal-500: 33 150 202;
723
+ --signal-600: 8 125 172;
724
+ --signal-700: 1 100 139;
725
+ --signal-800: 2 77 107;
726
+ --signal-900: 0 54 78;
727
+ --signal-950: 0 36 53;
728
+ --ok-50: 231 251 241;
729
+ --ok-100: 208 243 226;
730
+ --ok-200: 171 229 202;
731
+ --ok-300: 118 210 171;
732
+ --ok-400: 65 188 142;
733
+ --ok-500: 16 163 118;
734
+ --ok-600: 0 136 97;
735
+ --ok-700: 5 109 78;
736
+ --ok-800: 5 84 59;
737
+ --ok-900: 1 60 41;
738
+ --ok-950: 1 40 26;
739
+ --warn-50: 255 243 229;
740
+ --warn-100: 251 230 204;
741
+ --warn-200: 241 208 166;
742
+ --warn-300: 227 178 114;
743
+ --warn-400: 208 150 67;
744
+ --warn-500: 185 125 25;
745
+ --warn-600: 156 102 1;
746
+ --warn-700: 125 82 5;
747
+ --warn-800: 97 62 0;
748
+ --warn-900: 69 43 1;
749
+ --warn-950: 47 28 0;
750
+ --bad-50: 255 242 241;
751
+ --bad-100: 255 226 224;
752
+ --bad-200: 255 197 194;
753
+ --bad-300: 254 158 155;
754
+ --bad-400: 244 119 119;
755
+ --bad-500: 220 90 93;
756
+ --bad-600: 188 69 72;
757
+ --bad-700: 155 51 55;
758
+ --bad-800: 120 38 41;
759
+ --bad-900: 86 26 28;
760
+ --bad-950: 60 14 16;
761
+ --data-1: var(--signal);
762
+ --data-2: var(--ok);
763
+ --data-3: var(--warn);
764
+ --data-4: var(--bad);
765
+ --data-5: var(--text-2);
766
+ --data-6: var(--mute);
767
+ --canvas-bg: var(--bg);
768
+ --canvas-grid: var(--line);
769
+ --canvas-node: var(--panel);
770
+ --canvas-node-line: var(--line-2);
771
+ --edge: var(--line-2);
772
+ --edge-hover: var(--text-2);
773
+ --edge-active: var(--signal);
774
+ --execution: var(--ok);
775
+ --check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%235FC8FF' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
776
+ color-scheme: dark;
777
+ }
778
+
779
+ @media (prefers-color-scheme: light) {
780
+ :root:not(.dark):not([data-theme="dark"]) .room {
781
+ --bg: #070A14;
782
+ --bg-rgb: 7 10 20;
783
+ --bg-2: #0B1020;
784
+ --bg-2-rgb: 11 16 32;
785
+ --panel: #0E1426;
786
+ --panel-rgb: 14 20 38;
787
+ --panel-2: #121A30;
788
+ --panel-2-rgb: 18 26 48;
789
+ --panel-3: #182240;
790
+ --panel-3-rgb: 24 34 64;
791
+ --line: #1B2238;
792
+ --line-rgb: 27 34 56;
793
+ --line-2: #2A3350;
794
+ --line-2-rgb: 42 51 80;
795
+ --line-3: #3C4560;
796
+ --line-3-rgb: 60 69 96;
797
+ --text: #E7ECF7;
798
+ --text-rgb: 231 236 247;
799
+ --text-2: #A9B2CC;
800
+ --text-2-rgb: 169 178 204;
801
+ --mute: #7F8AA8;
802
+ --mute-rgb: 127 138 168;
803
+ --signal: #5FC8FF;
804
+ --signal-rgb: 95 200 255;
805
+ --signal-2: #01B1F7;
806
+ --signal-2-rgb: 1 177 247;
807
+ --signal-ink: #06111F;
808
+ --signal-ink-rgb: 6 17 31;
809
+ --signal-soft: rgba(95, 200, 255, 0.12);
810
+ --ok: #4FD1A0;
811
+ --ok-rgb: 79 209 160;
812
+ --ok-ink: #06111F;
813
+ --ok-ink-rgb: 6 17 31;
814
+ --ok-soft: rgba(79, 209, 160, 0.14);
815
+ --warn: #F2B35B;
816
+ --warn-rgb: 242 179 91;
817
+ --warn-ink: #06111F;
818
+ --warn-ink-rgb: 6 17 31;
819
+ --warn-soft: rgba(242, 179, 91, 0.14);
820
+ --bad: #FF7A7A;
821
+ --bad-rgb: 255 122 122;
822
+ --bad-ink: #06111F;
823
+ --bad-ink-rgb: 6 17 31;
824
+ --bad-soft: rgba(255, 122, 122, 0.14);
825
+ --shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
826
+ --shadow-sm: 0 8px 24px rgba(0, 0, 0, 0.35);
827
+ --overlay: rgba(7, 10, 20, 0.6);
828
+ --signal-50: 235 247 255;
829
+ --signal-100: 211 238 255;
830
+ --signal-200: 173 222 251;
831
+ --signal-300: 122 199 241;
832
+ --signal-400: 75 175 226;
833
+ --signal-500: 33 150 202;
834
+ --signal-600: 8 125 172;
835
+ --signal-700: 1 100 139;
836
+ --signal-800: 2 77 107;
837
+ --signal-900: 0 54 78;
838
+ --signal-950: 0 36 53;
839
+ --ok-50: 231 251 241;
840
+ --ok-100: 208 243 226;
841
+ --ok-200: 171 229 202;
842
+ --ok-300: 118 210 171;
843
+ --ok-400: 65 188 142;
844
+ --ok-500: 16 163 118;
845
+ --ok-600: 0 136 97;
846
+ --ok-700: 5 109 78;
847
+ --ok-800: 5 84 59;
848
+ --ok-900: 1 60 41;
849
+ --ok-950: 1 40 26;
850
+ --warn-50: 255 243 229;
851
+ --warn-100: 251 230 204;
852
+ --warn-200: 241 208 166;
853
+ --warn-300: 227 178 114;
854
+ --warn-400: 208 150 67;
855
+ --warn-500: 185 125 25;
856
+ --warn-600: 156 102 1;
857
+ --warn-700: 125 82 5;
858
+ --warn-800: 97 62 0;
859
+ --warn-900: 69 43 1;
860
+ --warn-950: 47 28 0;
861
+ --bad-50: 255 242 241;
862
+ --bad-100: 255 226 224;
863
+ --bad-200: 255 197 194;
864
+ --bad-300: 254 158 155;
865
+ --bad-400: 244 119 119;
866
+ --bad-500: 220 90 93;
867
+ --bad-600: 188 69 72;
868
+ --bad-700: 155 51 55;
869
+ --bad-800: 120 38 41;
870
+ --bad-900: 86 26 28;
871
+ --bad-950: 60 14 16;
872
+ --data-1: var(--signal);
873
+ --data-2: var(--ok);
874
+ --data-3: var(--warn);
875
+ --data-4: var(--bad);
876
+ --data-5: var(--text-2);
877
+ --data-6: var(--mute);
878
+ --canvas-bg: var(--bg);
879
+ --canvas-grid: var(--line);
880
+ --canvas-node: var(--panel);
881
+ --canvas-node-line: var(--line-2);
882
+ --edge: var(--line-2);
883
+ --edge-hover: var(--text-2);
884
+ --edge-active: var(--signal);
885
+ --execution: var(--ok);
886
+ --check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%235FC8FF' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
887
+ color-scheme: dark;
888
+ }
889
+
890
+ :root:not(.dark):not([data-theme="dark"]) .light .room {
891
+ --bg: #070A14;
892
+ --bg-rgb: 7 10 20;
893
+ --bg-2: #0B1020;
894
+ --bg-2-rgb: 11 16 32;
895
+ --panel: #0E1426;
896
+ --panel-rgb: 14 20 38;
897
+ --panel-2: #121A30;
898
+ --panel-2-rgb: 18 26 48;
899
+ --panel-3: #182240;
900
+ --panel-3-rgb: 24 34 64;
901
+ --line: #1B2238;
902
+ --line-rgb: 27 34 56;
903
+ --line-2: #2A3350;
904
+ --line-2-rgb: 42 51 80;
905
+ --line-3: #3C4560;
906
+ --line-3-rgb: 60 69 96;
907
+ --text: #E7ECF7;
908
+ --text-rgb: 231 236 247;
909
+ --text-2: #A9B2CC;
910
+ --text-2-rgb: 169 178 204;
911
+ --mute: #7F8AA8;
912
+ --mute-rgb: 127 138 168;
913
+ --signal: #5FC8FF;
914
+ --signal-rgb: 95 200 255;
915
+ --signal-2: #01B1F7;
916
+ --signal-2-rgb: 1 177 247;
917
+ --signal-ink: #06111F;
918
+ --signal-ink-rgb: 6 17 31;
919
+ --signal-soft: rgba(95, 200, 255, 0.12);
920
+ --ok: #4FD1A0;
921
+ --ok-rgb: 79 209 160;
922
+ --ok-ink: #06111F;
923
+ --ok-ink-rgb: 6 17 31;
924
+ --ok-soft: rgba(79, 209, 160, 0.14);
925
+ --warn: #F2B35B;
926
+ --warn-rgb: 242 179 91;
927
+ --warn-ink: #06111F;
928
+ --warn-ink-rgb: 6 17 31;
929
+ --warn-soft: rgba(242, 179, 91, 0.14);
930
+ --bad: #FF7A7A;
931
+ --bad-rgb: 255 122 122;
932
+ --bad-ink: #06111F;
933
+ --bad-ink-rgb: 6 17 31;
934
+ --bad-soft: rgba(255, 122, 122, 0.14);
935
+ --shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
936
+ --shadow-sm: 0 8px 24px rgba(0, 0, 0, 0.35);
937
+ --overlay: rgba(7, 10, 20, 0.6);
938
+ --signal-50: 235 247 255;
939
+ --signal-100: 211 238 255;
940
+ --signal-200: 173 222 251;
941
+ --signal-300: 122 199 241;
942
+ --signal-400: 75 175 226;
943
+ --signal-500: 33 150 202;
944
+ --signal-600: 8 125 172;
945
+ --signal-700: 1 100 139;
946
+ --signal-800: 2 77 107;
947
+ --signal-900: 0 54 78;
948
+ --signal-950: 0 36 53;
949
+ --ok-50: 231 251 241;
950
+ --ok-100: 208 243 226;
951
+ --ok-200: 171 229 202;
952
+ --ok-300: 118 210 171;
953
+ --ok-400: 65 188 142;
954
+ --ok-500: 16 163 118;
955
+ --ok-600: 0 136 97;
956
+ --ok-700: 5 109 78;
957
+ --ok-800: 5 84 59;
958
+ --ok-900: 1 60 41;
959
+ --ok-950: 1 40 26;
960
+ --warn-50: 255 243 229;
961
+ --warn-100: 251 230 204;
962
+ --warn-200: 241 208 166;
963
+ --warn-300: 227 178 114;
964
+ --warn-400: 208 150 67;
965
+ --warn-500: 185 125 25;
966
+ --warn-600: 156 102 1;
967
+ --warn-700: 125 82 5;
968
+ --warn-800: 97 62 0;
969
+ --warn-900: 69 43 1;
970
+ --warn-950: 47 28 0;
971
+ --bad-50: 255 242 241;
972
+ --bad-100: 255 226 224;
973
+ --bad-200: 255 197 194;
974
+ --bad-300: 254 158 155;
975
+ --bad-400: 244 119 119;
976
+ --bad-500: 220 90 93;
977
+ --bad-600: 188 69 72;
978
+ --bad-700: 155 51 55;
979
+ --bad-800: 120 38 41;
980
+ --bad-900: 86 26 28;
981
+ --bad-950: 60 14 16;
982
+ --data-1: var(--signal);
983
+ --data-2: var(--ok);
984
+ --data-3: var(--warn);
985
+ --data-4: var(--bad);
986
+ --data-5: var(--text-2);
987
+ --data-6: var(--mute);
988
+ --canvas-bg: var(--bg);
989
+ --canvas-grid: var(--line);
990
+ --canvas-node: var(--panel);
991
+ --canvas-node-line: var(--line-2);
992
+ --edge: var(--line-2);
993
+ --edge-hover: var(--text-2);
994
+ --edge-active: var(--signal);
995
+ --execution: var(--ok);
996
+ --check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%235FC8FF' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
997
+ color-scheme: dark;
998
+ }
999
+
1000
+ }
1001
+
1002
+ .room { background: var(--bg); color: var(--text); }
1003
+
1004
+ /* @aginies/webuikit — component styles. Tokens come from @aginies/tokens (prepended at build). */
1005
+
1006
+ /* ─── reset inside widgets ─── */
1007
+ .agi-chat,
1008
+ .agi-bubble,
1009
+ .agi-panel,
1010
+ .agi-btn,
1011
+ .agi-input,
1012
+ .agi-tag,
1013
+ .agi-chip {
1014
+ box-sizing: border-box;
1015
+ font-family: var(--font-body);
1016
+ color: var(--text);
1017
+ }
1018
+ .agi-chat *,
1019
+ .agi-bubble * {
1020
+ box-sizing: border-box;
1021
+ }
1022
+
1023
+ /* ─── buttons ─── */
1024
+ .agi-btn {
1025
+ display: inline-flex;
1026
+ align-items: center;
1027
+ justify-content: center;
1028
+ gap: 8px;
1029
+ height: 36px;
1030
+ padding: 0 12px;
1031
+ border-radius: var(--radius-md);
1032
+ border: 1px solid var(--line-2);
1033
+ background: transparent;
1034
+ color: var(--text);
1035
+ font: inherit;
1036
+ font-size: 13.5px;
1037
+ font-weight: 600;
1038
+ letter-spacing: -0.005em;
1039
+ white-space: nowrap;
1040
+ cursor: pointer;
1041
+ transition:
1042
+ background var(--duration-fast) ease,
1043
+ border-color var(--duration-fast) ease,
1044
+ color var(--duration-fast) ease,
1045
+ transform var(--duration-fast) ease;
1046
+ }
1047
+ .agi-btn:hover {
1048
+ border-color: var(--text-2);
1049
+ background: var(--panel);
1050
+ }
1051
+ .agi-btn:active {
1052
+ transform: translateY(1px);
1053
+ }
1054
+ .agi-btn:focus-visible {
1055
+ outline: var(--focus-ring);
1056
+ outline-offset: var(--focus-ring-offset);
1057
+ }
1058
+ .agi-btn:disabled {
1059
+ opacity: 0.5;
1060
+ cursor: not-allowed;
1061
+ transform: none;
1062
+ }
1063
+ .agi-btn--primary {
1064
+ background: var(--text);
1065
+ border-color: var(--text);
1066
+ color: var(--bg);
1067
+ }
1068
+ .agi-btn--primary:hover {
1069
+ background: var(--signal);
1070
+ border-color: var(--signal);
1071
+ color: var(--signal-ink);
1072
+ }
1073
+ .agi-btn--signal {
1074
+ background: var(--signal);
1075
+ border-color: var(--signal);
1076
+ color: var(--signal-ink);
1077
+ }
1078
+ .agi-btn--signal:hover {
1079
+ background: var(--signal);
1080
+ border-color: var(--signal);
1081
+ color: var(--signal-ink);
1082
+ filter: brightness(1.08);
1083
+ }
1084
+ .agi-btn--destructive {
1085
+ background: var(--bad);
1086
+ border-color: var(--bad);
1087
+ color: var(--bad-ink);
1088
+ }
1089
+ .agi-btn--ghost {
1090
+ border-color: transparent;
1091
+ color: var(--text-2);
1092
+ }
1093
+ .agi-btn--ghost:hover {
1094
+ background: var(--panel-2);
1095
+ color: var(--text);
1096
+ }
1097
+ .agi-btn--sm {
1098
+ height: 30px;
1099
+ padding: 0 10px;
1100
+ font-size: 12.5px;
1101
+ }
1102
+ .agi-btn--lg {
1103
+ height: 44px;
1104
+ padding: 0 18px;
1105
+ font-size: 15px;
1106
+ }
1107
+
1108
+ /* ─── tags / chips ─── */
1109
+ .agi-tag {
1110
+ display: inline-flex;
1111
+ align-items: center;
1112
+ gap: 6px;
1113
+ font-family: var(--font-mono);
1114
+ font-size: var(--fs-tag);
1115
+ letter-spacing: var(--ls-tag);
1116
+ padding: 3px 8px;
1117
+ border-radius: var(--radius-sm);
1118
+ border: 1px solid var(--line-2);
1119
+ color: var(--text-2);
1120
+ white-space: nowrap;
1121
+ }
1122
+ .agi-tag--signal {
1123
+ color: var(--signal);
1124
+ border-color: color-mix(in srgb, var(--signal) 45%, transparent);
1125
+ background: var(--signal-soft);
1126
+ }
1127
+ .agi-tag--ok {
1128
+ color: var(--ok);
1129
+ border-color: color-mix(in srgb, var(--ok) 45%, transparent);
1130
+ background: var(--ok-soft);
1131
+ }
1132
+ .agi-tag--warn {
1133
+ color: var(--warn);
1134
+ border-color: color-mix(in srgb, var(--warn) 45%, transparent);
1135
+ background: var(--warn-soft);
1136
+ }
1137
+ .agi-tag--bad {
1138
+ color: var(--bad);
1139
+ border-color: color-mix(in srgb, var(--bad) 45%, transparent);
1140
+ background: var(--bad-soft);
1141
+ }
1142
+ .agi-chip {
1143
+ display: inline-flex;
1144
+ align-items: center;
1145
+ height: 32px;
1146
+ padding: 0 12px;
1147
+ border-radius: var(--radius-full);
1148
+ border: 1px solid var(--line-2);
1149
+ background: transparent;
1150
+ font: inherit;
1151
+ font-size: 13px;
1152
+ color: var(--text-2);
1153
+ cursor: pointer;
1154
+ transition: all var(--duration-fast) ease;
1155
+ }
1156
+ .agi-chip:hover {
1157
+ border-color: var(--text-2);
1158
+ color: var(--text);
1159
+ }
1160
+ .agi-chip[aria-pressed="true"] {
1161
+ background: var(--signal);
1162
+ border-color: var(--signal);
1163
+ color: var(--signal-ink);
1164
+ font-weight: 600;
1165
+ }
1166
+
1167
+ /* ─── surfaces / type ─── */
1168
+ .agi-panel {
1169
+ background: var(--panel);
1170
+ border: 1px solid var(--line);
1171
+ border-radius: var(--radius-lg);
1172
+ }
1173
+ .agi-panel--2 {
1174
+ background: var(--panel-2);
1175
+ }
1176
+ .agi-eyebrow {
1177
+ margin: 0;
1178
+ font-family: var(--font-mono);
1179
+ font-size: var(--fs-eyebrow);
1180
+ letter-spacing: var(--ls-eyebrow);
1181
+ text-transform: uppercase;
1182
+ color: var(--signal);
1183
+ font-weight: 500;
1184
+ }
1185
+ .agi-eyebrow--quiet {
1186
+ color: var(--mute);
1187
+ }
1188
+ .agi-stat {
1189
+ display: grid;
1190
+ gap: 4px;
1191
+ }
1192
+ .agi-stat__v {
1193
+ font-family: var(--font-display);
1194
+ font-size: var(--fs-stat);
1195
+ line-height: 1;
1196
+ letter-spacing: -0.03em;
1197
+ font-weight: 600;
1198
+ font-variant-numeric: tabular-nums;
1199
+ }
1200
+ .agi-stat__k {
1201
+ font-family: var(--font-mono);
1202
+ font-size: var(--fs-eyebrow);
1203
+ letter-spacing: 0.1em;
1204
+ text-transform: uppercase;
1205
+ color: var(--mute);
1206
+ }
1207
+
1208
+ /* ─── fields ─── */
1209
+ .agi-field {
1210
+ display: grid;
1211
+ gap: 6px;
1212
+ }
1213
+ .agi-field__label {
1214
+ font-family: var(--font-mono);
1215
+ font-size: 11px;
1216
+ letter-spacing: 0.1em;
1217
+ text-transform: uppercase;
1218
+ color: var(--mute);
1219
+ }
1220
+ .agi-field__error {
1221
+ color: var(--bad);
1222
+ font-size: 13px;
1223
+ }
1224
+ .agi-field__hint {
1225
+ font-size: 12px;
1226
+ color: var(--mute);
1227
+ }
1228
+ .agi-input {
1229
+ width: 100%;
1230
+ background: var(--bg-2);
1231
+ border: 1px solid var(--line-2);
1232
+ border-radius: var(--radius-md);
1233
+ padding: 9px 12px;
1234
+ color: var(--text);
1235
+ font: inherit;
1236
+ font-size: 14px;
1237
+ transition: border-color var(--duration-fast) ease;
1238
+ }
1239
+ .agi-input::placeholder {
1240
+ color: var(--mute);
1241
+ }
1242
+ .agi-input:focus {
1243
+ outline: none;
1244
+ border-color: var(--signal);
1245
+ box-shadow: var(--focus-field-ring);
1246
+ }
1247
+ .agi-textarea {
1248
+ resize: vertical;
1249
+ min-height: 90px;
1250
+ }
1251
+
1252
+ /* ─── spinner ─── */
1253
+ .agi-spinner {
1254
+ display: inline-flex;
1255
+ gap: 4px;
1256
+ align-items: center;
1257
+ }
1258
+ .agi-spinner span {
1259
+ width: 5px;
1260
+ height: 5px;
1261
+ border-radius: 50%;
1262
+ background: var(--signal);
1263
+ animation: agi-pulse 1.2s ease-in-out infinite;
1264
+ }
1265
+ .agi-spinner span:nth-child(2) {
1266
+ animation-delay: 0.15s;
1267
+ }
1268
+ .agi-spinner span:nth-child(3) {
1269
+ animation-delay: 0.3s;
1270
+ }
1271
+ @keyframes agi-pulse {
1272
+ 0%,
1273
+ 80%,
1274
+ 100% {
1275
+ opacity: 0.25;
1276
+ transform: scale(0.8);
1277
+ }
1278
+ 40% {
1279
+ opacity: 1;
1280
+ transform: scale(1);
1281
+ }
1282
+ }
1283
+
1284
+ /* ─── table ─── */
1285
+ .agi-table {
1286
+ border-collapse: collapse;
1287
+ width: 100%;
1288
+ font-size: 13.5px;
1289
+ }
1290
+ .agi-table th,
1291
+ .agi-table td {
1292
+ text-align: left;
1293
+ padding: 8px 10px;
1294
+ border-bottom: 1px solid var(--line);
1295
+ vertical-align: top;
1296
+ }
1297
+ .agi-table th {
1298
+ font-family: var(--font-mono);
1299
+ font-size: 11px;
1300
+ letter-spacing: 0.1em;
1301
+ text-transform: uppercase;
1302
+ color: var(--mute);
1303
+ font-weight: 500;
1304
+ }
1305
+ .agi-table td {
1306
+ color: var(--text-2);
1307
+ }
1308
+
1309
+ /* ─── chat ─── */
1310
+ .agi-chat {
1311
+ display: flex;
1312
+ flex-direction: column;
1313
+ min-height: 0;
1314
+ background: var(--panel);
1315
+ border: 1px solid var(--line);
1316
+ border-radius: var(--radius-lg);
1317
+ overflow: hidden;
1318
+ font-size: 14.5px;
1319
+ line-height: 1.5;
1320
+ }
1321
+ .agi-chat--inline {
1322
+ height: 100%;
1323
+ min-height: 420px;
1324
+ }
1325
+ .agi-chat--full {
1326
+ position: fixed;
1327
+ inset: 0;
1328
+ border-radius: 0;
1329
+ border: 0;
1330
+ z-index: var(--z-modal);
1331
+ }
1332
+ .agi-chat--bubble {
1333
+ width: min(400px, calc(100vw - 32px));
1334
+ height: min(600px, calc(100vh - 110px));
1335
+ box-shadow: var(--shadow);
1336
+ }
1337
+ .agi-chat__head {
1338
+ display: flex;
1339
+ align-items: center;
1340
+ justify-content: space-between;
1341
+ gap: 12px;
1342
+ padding: 12px 14px;
1343
+ border-bottom: 1px solid var(--line);
1344
+ background: var(--panel-2);
1345
+ }
1346
+ .agi-chat__title {
1347
+ display: flex;
1348
+ align-items: center;
1349
+ gap: 10px;
1350
+ min-width: 0;
1351
+ }
1352
+ .agi-chat__title img {
1353
+ width: 28px;
1354
+ height: 28px;
1355
+ border-radius: 6px;
1356
+ object-fit: cover;
1357
+ flex: none;
1358
+ }
1359
+ .agi-chat__name {
1360
+ font-family: var(--font-display);
1361
+ font-weight: 600;
1362
+ font-size: 15px;
1363
+ letter-spacing: -0.01em;
1364
+ }
1365
+ .agi-chat__desc {
1366
+ color: var(--mute);
1367
+ font-size: 12.5px;
1368
+ white-space: nowrap;
1369
+ overflow: hidden;
1370
+ text-overflow: ellipsis;
1371
+ }
1372
+ .agi-chat__close {
1373
+ width: 30px;
1374
+ height: 30px;
1375
+ border-radius: var(--radius-md);
1376
+ border: 1px solid var(--line-2);
1377
+ background: transparent;
1378
+ color: var(--text-2);
1379
+ font-size: 18px;
1380
+ line-height: 1;
1381
+ cursor: pointer;
1382
+ }
1383
+ .agi-chat__close:hover {
1384
+ color: var(--text);
1385
+ border-color: var(--text-2);
1386
+ }
1387
+ .agi-chat__messages {
1388
+ flex: 1;
1389
+ min-height: 0;
1390
+ overflow-y: auto;
1391
+ padding: 14px;
1392
+ display: grid;
1393
+ gap: 12px;
1394
+ align-content: start;
1395
+ background-image: radial-gradient(var(--line) 1px, transparent 1px);
1396
+ background-size: 18px 18px;
1397
+ }
1398
+ .agi-msg {
1399
+ display: grid;
1400
+ gap: 4px;
1401
+ max-width: 88%;
1402
+ }
1403
+ .agi-msg--user {
1404
+ justify-self: end;
1405
+ text-align: right;
1406
+ }
1407
+ .agi-msg__who {
1408
+ font-family: var(--font-mono);
1409
+ font-size: 10.5px;
1410
+ letter-spacing: 0.08em;
1411
+ text-transform: uppercase;
1412
+ color: var(--mute);
1413
+ }
1414
+ .agi-msg__body {
1415
+ padding: 10px 12px;
1416
+ border-radius: var(--radius-lg);
1417
+ border: 1px solid var(--line);
1418
+ background: var(--bg-2);
1419
+ color: var(--text);
1420
+ text-align: left;
1421
+ }
1422
+ .agi-msg__body p {
1423
+ margin: 0;
1424
+ white-space: pre-wrap;
1425
+ word-break: break-word;
1426
+ }
1427
+ .agi-msg--user .agi-msg__body {
1428
+ background: var(--signal-soft);
1429
+ border-color: color-mix(in srgb, var(--signal) 35%, transparent);
1430
+ }
1431
+ .agi-msg--error .agi-msg__body {
1432
+ border-color: color-mix(in srgb, var(--bad) 45%, transparent);
1433
+ background: var(--bad-soft);
1434
+ color: var(--bad);
1435
+ }
1436
+ .agi-msg__thinking {
1437
+ display: inline-flex;
1438
+ align-items: center;
1439
+ gap: 8px;
1440
+ color: var(--mute);
1441
+ font-size: 13px;
1442
+ }
1443
+ .agi-chat__composer {
1444
+ display: grid;
1445
+ gap: 8px;
1446
+ padding: 10px 12px;
1447
+ border-top: 1px solid var(--line);
1448
+ background: var(--panel);
1449
+ }
1450
+ .agi-chat__row {
1451
+ display: flex;
1452
+ gap: 8px;
1453
+ align-items: center;
1454
+ }
1455
+ .agi-chat__row .agi-input {
1456
+ flex: 1;
1457
+ min-width: 0;
1458
+ }
1459
+ .agi-chat__pending {
1460
+ display: flex;
1461
+ flex-wrap: wrap;
1462
+ gap: 6px;
1463
+ align-items: center;
1464
+ }
1465
+ .agi-chat__file-error {
1466
+ font-size: 12px;
1467
+ color: var(--bad);
1468
+ }
1469
+ .agi-file {
1470
+ display: inline-flex;
1471
+ align-items: center;
1472
+ gap: 6px;
1473
+ max-width: 100%;
1474
+ padding: 3px 8px;
1475
+ border-radius: 999px;
1476
+ border: 1px solid var(--line);
1477
+ background: var(--panel-2);
1478
+ color: var(--text-2);
1479
+ font-family: var(--font-mono);
1480
+ font-size: 11px;
1481
+ }
1482
+ .agi-file__name {
1483
+ overflow: hidden;
1484
+ text-overflow: ellipsis;
1485
+ white-space: nowrap;
1486
+ color: var(--text);
1487
+ }
1488
+ .agi-file__size {
1489
+ color: var(--mute);
1490
+ }
1491
+ .agi-file__remove {
1492
+ border: 0;
1493
+ background: none;
1494
+ padding: 0 2px;
1495
+ color: var(--mute);
1496
+ cursor: pointer;
1497
+ font-size: 14px;
1498
+ line-height: 1;
1499
+ }
1500
+ .agi-file__remove:hover {
1501
+ color: var(--bad);
1502
+ }
1503
+ .agi-msg__files {
1504
+ list-style: none;
1505
+ margin: 8px 0 0;
1506
+ padding: 0;
1507
+ display: flex;
1508
+ flex-wrap: wrap;
1509
+ gap: 6px;
1510
+ }
1511
+ .agi-chat__auth-actions {
1512
+ display: flex;
1513
+ flex-wrap: wrap;
1514
+ gap: 8px;
1515
+ }
1516
+
1517
+ /* ─── markdown in replies ─── */
1518
+ .agi-md {
1519
+ display: grid;
1520
+ gap: 8px;
1521
+ word-break: break-word;
1522
+ }
1523
+ .agi-md p {
1524
+ margin: 0;
1525
+ white-space: normal;
1526
+ }
1527
+ .agi-md h3,
1528
+ .agi-md h4,
1529
+ .agi-md h5,
1530
+ .agi-md h6 {
1531
+ margin: 4px 0 0;
1532
+ font-family: var(--font-display);
1533
+ font-weight: 600;
1534
+ letter-spacing: -0.01em;
1535
+ line-height: 1.3;
1536
+ }
1537
+ .agi-md h3 {
1538
+ font-size: 15.5px;
1539
+ }
1540
+ .agi-md h4 {
1541
+ font-size: 14.5px;
1542
+ }
1543
+ .agi-md h5,
1544
+ .agi-md h6 {
1545
+ font-size: 13.5px;
1546
+ }
1547
+ .agi-md ul,
1548
+ .agi-md ol {
1549
+ margin: 0;
1550
+ padding-left: 20px;
1551
+ display: grid;
1552
+ gap: 3px;
1553
+ }
1554
+ .agi-md a {
1555
+ color: var(--signal);
1556
+ text-decoration: underline;
1557
+ text-underline-offset: 2px;
1558
+ }
1559
+ .agi-md code {
1560
+ font-family: var(--font-mono);
1561
+ font-size: 12px;
1562
+ padding: 1px 5px;
1563
+ border-radius: 4px;
1564
+ background: var(--panel-3);
1565
+ border: 1px solid var(--line);
1566
+ }
1567
+ .agi-md pre {
1568
+ margin: 0;
1569
+ padding: 10px 12px;
1570
+ overflow-x: auto;
1571
+ border-radius: var(--radius);
1572
+ background: var(--panel-3);
1573
+ border: 1px solid var(--line);
1574
+ }
1575
+ .agi-md pre code {
1576
+ padding: 0;
1577
+ border: 0;
1578
+ background: none;
1579
+ font-size: 12px;
1580
+ line-height: 1.55;
1581
+ }
1582
+ .agi-md blockquote {
1583
+ margin: 0;
1584
+ padding: 2px 0 2px 12px;
1585
+ border-left: 2px solid var(--line-2);
1586
+ color: var(--text-2);
1587
+ display: grid;
1588
+ gap: 6px;
1589
+ }
1590
+ .agi-md hr {
1591
+ border: 0;
1592
+ border-top: 1px solid var(--line);
1593
+ margin: 4px 0;
1594
+ }
1595
+ .agi-md__table {
1596
+ overflow-x: auto;
1597
+ }
1598
+ .agi-md table {
1599
+ border-collapse: collapse;
1600
+ width: 100%;
1601
+ font-size: 12.5px;
1602
+ }
1603
+ .agi-md th,
1604
+ .agi-md td {
1605
+ padding: 6px 8px;
1606
+ border: 1px solid var(--line);
1607
+ text-align: left;
1608
+ vertical-align: top;
1609
+ }
1610
+ .agi-md th {
1611
+ font-family: var(--font-mono);
1612
+ font-size: 10.5px;
1613
+ letter-spacing: 0.08em;
1614
+ text-transform: uppercase;
1615
+ color: var(--mute);
1616
+ background: var(--panel-2);
1617
+ }
1618
+ .agi-chat__foot {
1619
+ padding: 6px 12px;
1620
+ border-top: 1px solid var(--line);
1621
+ text-align: right;
1622
+ }
1623
+ .agi-chat__foot a {
1624
+ font-family: var(--font-mono);
1625
+ font-size: 10.5px;
1626
+ letter-spacing: 0.08em;
1627
+ text-transform: uppercase;
1628
+ color: var(--mute);
1629
+ text-decoration: none;
1630
+ }
1631
+ .agi-chat__foot a:hover {
1632
+ color: var(--signal);
1633
+ }
1634
+ .agi-chat__state {
1635
+ flex: 1;
1636
+ display: grid;
1637
+ align-content: center;
1638
+ justify-items: start;
1639
+ gap: 12px;
1640
+ padding: 24px;
1641
+ }
1642
+ .agi-chat__state h3 {
1643
+ margin: 0;
1644
+ font-family: var(--font-display);
1645
+ font-weight: 600;
1646
+ font-size: 17px;
1647
+ letter-spacing: -0.01em;
1648
+ }
1649
+ .agi-chat__state p {
1650
+ margin: 0;
1651
+ color: var(--text-2);
1652
+ }
1653
+ .agi-chat__auth .agi-field {
1654
+ width: 100%;
1655
+ max-width: 360px;
1656
+ }
1657
+
1658
+ /* ─── structured replies ─── */
1659
+ .agi-sui {
1660
+ display: grid;
1661
+ gap: 12px;
1662
+ }
1663
+ .agi-sui__item {
1664
+ display: grid;
1665
+ gap: 10px;
1666
+ }
1667
+ .agi-sui__text {
1668
+ margin: 0;
1669
+ white-space: pre-wrap;
1670
+ }
1671
+ .agi-sui__figure {
1672
+ margin: 0;
1673
+ }
1674
+ .agi-sui__figure img {
1675
+ max-width: 100%;
1676
+ border-radius: var(--radius-md);
1677
+ display: block;
1678
+ }
1679
+ .agi-sui__figure figcaption {
1680
+ font-size: 12.5px;
1681
+ color: var(--mute);
1682
+ margin-top: 4px;
1683
+ }
1684
+ .agi-sui__cards {
1685
+ display: grid;
1686
+ gap: 8px;
1687
+ }
1688
+ .agi-sui__card {
1689
+ display: grid;
1690
+ grid-template-columns: auto 1fr;
1691
+ gap: 10px;
1692
+ padding: 10px;
1693
+ background: var(--panel-2);
1694
+ }
1695
+ .agi-sui__card img {
1696
+ width: 56px;
1697
+ height: 56px;
1698
+ border-radius: var(--radius-md);
1699
+ object-fit: cover;
1700
+ }
1701
+ .agi-sui__card p {
1702
+ margin: 4px 0 0;
1703
+ color: var(--text-2);
1704
+ font-size: 13.5px;
1705
+ }
1706
+ .agi-sui__card-title {
1707
+ font-weight: 600;
1708
+ }
1709
+ .agi-sui__card-sub {
1710
+ font-family: var(--font-mono);
1711
+ font-size: 11px;
1712
+ color: var(--mute);
1713
+ }
1714
+ .agi-sui__scroll {
1715
+ overflow-x: auto;
1716
+ }
1717
+ .agi-sui__actions {
1718
+ display: flex;
1719
+ flex-wrap: wrap;
1720
+ gap: 6px;
1721
+ }
1722
+ .agi-sui__pie {
1723
+ display: grid;
1724
+ grid-template-columns: 96px 1fr;
1725
+ gap: 12px;
1726
+ align-items: center;
1727
+ }
1728
+ .agi-sui__pie svg {
1729
+ width: 96px;
1730
+ height: 96px;
1731
+ }
1732
+ .agi-sui__pie ul {
1733
+ list-style: none;
1734
+ margin: 0;
1735
+ padding: 0;
1736
+ display: grid;
1737
+ gap: 4px;
1738
+ font-size: 13px;
1739
+ }
1740
+ .agi-sui__pie li {
1741
+ display: flex;
1742
+ align-items: center;
1743
+ gap: 8px;
1744
+ color: var(--text-2);
1745
+ }
1746
+ .agi-sui__pie li span {
1747
+ width: 10px;
1748
+ height: 10px;
1749
+ border-radius: 2px;
1750
+ flex: none;
1751
+ }
1752
+ .agi-sui__pie li b {
1753
+ margin-left: auto;
1754
+ font-family: var(--font-mono);
1755
+ font-weight: 500;
1756
+ color: var(--text);
1757
+ }
1758
+
1759
+ /* ─── bubble launcher ─── */
1760
+ .agi-bubble {
1761
+ position: fixed;
1762
+ bottom: 20px;
1763
+ z-index: var(--z-toast);
1764
+ display: grid;
1765
+ gap: 10px;
1766
+ justify-items: end;
1767
+ }
1768
+ .agi-bubble--right {
1769
+ right: 20px;
1770
+ }
1771
+ .agi-bubble--left {
1772
+ left: 20px;
1773
+ justify-items: start;
1774
+ }
1775
+ .agi-bubble__launcher {
1776
+ display: inline-flex;
1777
+ align-items: center;
1778
+ gap: 8px;
1779
+ height: 48px;
1780
+ padding: 0 18px 0 14px;
1781
+ border-radius: var(--radius-full);
1782
+ border: 1px solid var(--signal);
1783
+ background: var(--signal);
1784
+ color: var(--signal-ink);
1785
+ font: inherit;
1786
+ font-family: var(--font-body);
1787
+ font-weight: 600;
1788
+ font-size: 14px;
1789
+ cursor: pointer;
1790
+ box-shadow: var(--shadow-sm);
1791
+ transition: transform var(--duration-fast) ease;
1792
+ }
1793
+ .agi-bubble__launcher:hover {
1794
+ transform: translateY(-1px);
1795
+ }
1796
+ .agi-bubble__launcher--open {
1797
+ width: 48px;
1798
+ padding: 0;
1799
+ justify-content: center;
1800
+ }
1801
+
1802
+ @media (prefers-reduced-motion: reduce) {
1803
+ .agi-spinner span {
1804
+ animation: none;
1805
+ opacity: 0.7;
1806
+ }
1807
+ }
1808
+
1809
+ /* ─── agent runner ─── */
1810
+ .agi-run {
1811
+ display: grid;
1812
+ gap: 14px;
1813
+ padding: 16px;
1814
+ font-size: 14.5px;
1815
+ }
1816
+ .agi-run__title {
1817
+ margin: 0;
1818
+ font-family: var(--font-display);
1819
+ font-weight: 600;
1820
+ font-size: 17px;
1821
+ letter-spacing: -0.01em;
1822
+ }
1823
+ .agi-run__desc {
1824
+ margin: 4px 0 0;
1825
+ color: var(--text-2);
1826
+ }
1827
+ .agi-run__form {
1828
+ display: grid;
1829
+ gap: 12px;
1830
+ }
1831
+ .agi-run__actions {
1832
+ display: flex;
1833
+ align-items: center;
1834
+ gap: 10px;
1835
+ }
1836
+ .agi-run__status {
1837
+ display: inline-flex;
1838
+ align-items: center;
1839
+ gap: 8px;
1840
+ color: var(--mute);
1841
+ font-size: 13px;
1842
+ }
1843
+ .agi-checkbox {
1844
+ width: 16px;
1845
+ height: 16px;
1846
+ accent-color: var(--signal);
1847
+ }
1848
+ .agi-run__steps {
1849
+ list-style: none;
1850
+ margin: 0;
1851
+ padding: 0;
1852
+ display: grid;
1853
+ gap: 4px;
1854
+ }
1855
+ .agi-run__step {
1856
+ display: grid;
1857
+ grid-template-columns: 10px 1fr auto;
1858
+ gap: 8px;
1859
+ align-items: center;
1860
+ font-size: 13px;
1861
+ color: var(--text-2);
1862
+ }
1863
+ .agi-run__step-dot {
1864
+ width: 8px;
1865
+ height: 8px;
1866
+ border-radius: 50%;
1867
+ background: var(--line-2);
1868
+ }
1869
+ .agi-run__step.is-running .agi-run__step-dot {
1870
+ background: var(--signal);
1871
+ animation: agi-pulse 1.2s ease-in-out infinite;
1872
+ }
1873
+ .agi-run__step.is-done .agi-run__step-dot {
1874
+ background: var(--ok);
1875
+ }
1876
+ .agi-run__step.is-error .agi-run__step-dot {
1877
+ background: var(--bad);
1878
+ }
1879
+ .agi-run__step-meta {
1880
+ font-family: var(--font-mono);
1881
+ font-size: 11px;
1882
+ color: var(--mute);
1883
+ }
1884
+ .agi-run__result {
1885
+ display: grid;
1886
+ gap: 8px;
1887
+ padding: 12px;
1888
+ border-radius: var(--radius-md);
1889
+ border: 1px solid var(--line);
1890
+ background: var(--bg-2);
1891
+ }
1892
+ .agi-run__text {
1893
+ margin: 0;
1894
+ white-space: pre-wrap;
1895
+ word-break: break-word;
1896
+ }
1897
+ .agi-run__output {
1898
+ margin: 0;
1899
+ font-family: var(--font-mono);
1900
+ font-size: 12.5px;
1901
+ white-space: pre-wrap;
1902
+ word-break: break-word;
1903
+ color: var(--text-2);
1904
+ }
1905
+ .agi-run__error {
1906
+ margin: 0;
1907
+ color: var(--bad);
1908
+ }
1909
+ .agi-run__meta {
1910
+ margin: 0;
1911
+ font-family: var(--font-mono);
1912
+ font-size: 11px;
1913
+ letter-spacing: 0.04em;
1914
+ color: var(--mute);
1915
+ }
1916
+ .agi-run__meta b {
1917
+ font-weight: 500;
1918
+ color: var(--text-2);
1919
+ }
1920
+
1921
+ /* ─── approval ─── */
1922
+ .agi-approval {
1923
+ display: grid;
1924
+ gap: 14px;
1925
+ padding: 16px;
1926
+ font-size: 14.5px;
1927
+ }
1928
+ .agi-approval__head {
1929
+ display: grid;
1930
+ gap: 4px;
1931
+ }
1932
+ .agi-approval__title {
1933
+ margin: 0;
1934
+ font-family: var(--font-display);
1935
+ font-weight: 600;
1936
+ font-size: 17px;
1937
+ letter-spacing: -0.01em;
1938
+ }
1939
+ .agi-approval__desc {
1940
+ margin: 0;
1941
+ color: var(--text-2);
1942
+ }
1943
+ .agi-approval__meta {
1944
+ margin: 2px 0 0;
1945
+ font-family: var(--font-mono);
1946
+ font-size: 11px;
1947
+ letter-spacing: 0.04em;
1948
+ color: var(--mute);
1949
+ }
1950
+ .agi-approval__meta-value {
1951
+ font-weight: 500;
1952
+ color: var(--text-2);
1953
+ }
1954
+ .agi-approval__state {
1955
+ display: grid;
1956
+ gap: 10px;
1957
+ justify-items: start;
1958
+ color: var(--text-2);
1959
+ }
1960
+ .agi-approval__state p {
1961
+ margin: 0;
1962
+ }
1963
+ .agi-approval__points {
1964
+ display: flex;
1965
+ flex-wrap: wrap;
1966
+ gap: 6px;
1967
+ }
1968
+ .agi-approval__point {
1969
+ display: inline-flex;
1970
+ align-items: center;
1971
+ gap: 8px;
1972
+ padding: 6px 10px;
1973
+ border-radius: var(--radius-md);
1974
+ border: 1px solid var(--line);
1975
+ background: transparent;
1976
+ color: var(--text-2);
1977
+ font: inherit;
1978
+ font-size: 13px;
1979
+ cursor: pointer;
1980
+ }
1981
+ .agi-approval__point.is-selected {
1982
+ border-color: var(--signal);
1983
+ color: var(--text);
1984
+ }
1985
+ .agi-approval__status {
1986
+ display: flex;
1987
+ align-items: center;
1988
+ gap: 10px;
1989
+ }
1990
+ .agi-approval__queue {
1991
+ font-size: 13px;
1992
+ color: var(--mute);
1993
+ }
1994
+ .agi-approval__output {
1995
+ display: grid;
1996
+ gap: 8px;
1997
+ padding: 12px;
1998
+ border-radius: var(--radius-md);
1999
+ border: 1px solid var(--line);
2000
+ background: var(--bg-2);
2001
+ }
2002
+ .agi-approval__output-label {
2003
+ font-family: var(--font-mono);
2004
+ font-size: 11px;
2005
+ letter-spacing: 0.08em;
2006
+ text-transform: uppercase;
2007
+ color: var(--mute);
2008
+ }
2009
+ .agi-approval__kv {
2010
+ margin: 0;
2011
+ display: grid;
2012
+ gap: 6px;
2013
+ }
2014
+ .agi-approval__kv-row {
2015
+ display: grid;
2016
+ grid-template-columns: minmax(80px, 160px) 1fr;
2017
+ gap: 10px;
2018
+ align-items: start;
2019
+ }
2020
+ .agi-approval__kv dt {
2021
+ font-family: var(--font-mono);
2022
+ font-size: 12px;
2023
+ color: var(--text-2);
2024
+ word-break: break-word;
2025
+ }
2026
+ .agi-approval__kv dd {
2027
+ margin: 0;
2028
+ white-space: pre-wrap;
2029
+ word-break: break-word;
2030
+ font-size: 13.5px;
2031
+ }
2032
+ .agi-approval__form {
2033
+ display: grid;
2034
+ gap: 12px;
2035
+ }
2036
+ .agi-approval__json {
2037
+ font-family: var(--font-mono);
2038
+ font-size: 12.5px;
2039
+ }
2040
+ .agi-approval__actions {
2041
+ display: flex;
2042
+ align-items: center;
2043
+ gap: 10px;
2044
+ }
2045
+ .agi-approval__error {
2046
+ margin: 0;
2047
+ color: var(--bad);
2048
+ }
2049
+ .agi-approval__done {
2050
+ display: grid;
2051
+ gap: 8px;
2052
+ justify-items: start;
2053
+ padding: 12px;
2054
+ border-radius: var(--radius-md);
2055
+ border: 1px solid var(--line);
2056
+ background: var(--bg-2);
2057
+ }
2058
+ .agi-approval__done p {
2059
+ margin: 0;
2060
+ color: var(--text-2);
2061
+ }
2062
+
2063
+ /* ─── observability ─── */
2064
+ .agi-stats {
2065
+ display: grid;
2066
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
2067
+ gap: 12px;
2068
+ }
2069
+ .agi-stats__tile {
2070
+ display: grid;
2071
+ gap: 4px;
2072
+ padding: 16px;
2073
+ }
2074
+ .agi-stat__v.is-ok {
2075
+ color: var(--ok);
2076
+ }
2077
+ .agi-stat__v.is-warn {
2078
+ color: var(--warn);
2079
+ }
2080
+ .agi-stat__v.is-bad {
2081
+ color: var(--bad);
2082
+ }
2083
+ .agi-stats__delta {
2084
+ font-family: var(--font-mono);
2085
+ font-size: 11px;
2086
+ color: var(--text-2);
2087
+ }
2088
+
2089
+ .agi-heat {
2090
+ display: grid;
2091
+ gap: 6px;
2092
+ font-size: 12.5px;
2093
+ }
2094
+ .agi-heat__table {
2095
+ border-collapse: separate;
2096
+ border-spacing: 3px;
2097
+ width: 100%;
2098
+ table-layout: fixed;
2099
+ }
2100
+ .agi-heat__label {
2101
+ width: 140px;
2102
+ color: var(--text-2);
2103
+ font-weight: 400;
2104
+ text-align: left;
2105
+ white-space: nowrap;
2106
+ overflow: hidden;
2107
+ text-overflow: ellipsis;
2108
+ padding-right: 8px;
2109
+ }
2110
+ .agi-heat__col {
2111
+ font-family: var(--font-mono);
2112
+ font-size: 9.5px;
2113
+ font-weight: 500;
2114
+ letter-spacing: 0.06em;
2115
+ color: var(--mute);
2116
+ text-align: center;
2117
+ }
2118
+ .agi-heat__td {
2119
+ padding: 0;
2120
+ }
2121
+ .agi-heat__cell {
2122
+ display: block;
2123
+ height: 18px;
2124
+ border-radius: 3px;
2125
+ background: var(--line);
2126
+ }
2127
+ .agi-heat__cell.is-ok {
2128
+ background: var(--ok);
2129
+ }
2130
+ .agi-heat__cell.is-warn {
2131
+ background: var(--warn);
2132
+ }
2133
+ .agi-heat__cell.is-bad {
2134
+ background: var(--bad);
2135
+ }
2136
+ .agi-heat__cell.is-none {
2137
+ background: var(--line);
2138
+ opacity: 0.6;
2139
+ }
2140
+ .agi-heat__legend {
2141
+ display: flex;
2142
+ gap: 6px;
2143
+ }
2144
+
2145
+ .agi-timeline {
2146
+ list-style: none;
2147
+ margin: 0;
2148
+ padding: 0;
2149
+ display: grid;
2150
+ gap: 4px;
2151
+ }
2152
+ .agi-timeline__step {
2153
+ display: grid;
2154
+ grid-template-columns: 18px minmax(120px, 1fr) minmax(120px, 2fr) auto;
2155
+ gap: 10px;
2156
+ align-items: center;
2157
+ padding: 6px 8px;
2158
+ border-radius: var(--radius-md);
2159
+ border: 1px solid transparent;
2160
+ font-size: 13px;
2161
+ }
2162
+ .agi-timeline__step.is-running {
2163
+ background: var(--signal-soft);
2164
+ border-color: color-mix(in srgb, var(--signal) 40%, transparent);
2165
+ }
2166
+ .agi-timeline__step.is-waiting {
2167
+ background: var(--warn-soft);
2168
+ border-color: color-mix(in srgb, var(--warn) 45%, transparent);
2169
+ }
2170
+ .agi-timeline__step.is-error {
2171
+ background: var(--bad-soft);
2172
+ border-color: color-mix(in srgb, var(--bad) 45%, transparent);
2173
+ }
2174
+ .agi-timeline__glyph {
2175
+ color: var(--mute);
2176
+ text-align: center;
2177
+ }
2178
+ .agi-timeline__step.is-done .agi-timeline__glyph,
2179
+ .agi-timeline__step.k-verify .agi-timeline__glyph,
2180
+ .agi-timeline__step.k-write .agi-timeline__glyph {
2181
+ color: var(--ok);
2182
+ }
2183
+ .agi-timeline__step.is-running .agi-timeline__glyph {
2184
+ color: var(--signal);
2185
+ }
2186
+ .agi-timeline__step.is-waiting .agi-timeline__glyph,
2187
+ .agi-timeline__step.k-approval .agi-timeline__glyph {
2188
+ color: var(--warn);
2189
+ }
2190
+ .agi-timeline__name {
2191
+ color: var(--text);
2192
+ white-space: nowrap;
2193
+ overflow: hidden;
2194
+ text-overflow: ellipsis;
2195
+ }
2196
+ .agi-timeline__detail {
2197
+ display: block;
2198
+ color: var(--mute);
2199
+ font-size: 11.5px;
2200
+ }
2201
+ .agi-timeline__bar {
2202
+ position: relative;
2203
+ height: 6px;
2204
+ border-radius: 3px;
2205
+ background: var(--line);
2206
+ }
2207
+ .agi-timeline__fill {
2208
+ position: absolute;
2209
+ top: 0;
2210
+ bottom: 0;
2211
+ border-radius: 3px;
2212
+ background: var(--signal);
2213
+ }
2214
+ .agi-timeline__step.is-done .agi-timeline__fill {
2215
+ background: var(--ok);
2216
+ }
2217
+ .agi-timeline__step.is-error .agi-timeline__fill {
2218
+ background: var(--bad);
2219
+ }
2220
+ .agi-timeline__step.is-waiting .agi-timeline__fill {
2221
+ background: var(--warn);
2222
+ }
2223
+ .agi-timeline__meta {
2224
+ font-family: var(--font-mono);
2225
+ font-size: 11px;
2226
+ color: var(--mute);
2227
+ white-space: nowrap;
2228
+ }
2229
+
2230
+ .agi-bars {
2231
+ display: grid;
2232
+ gap: 8px;
2233
+ font-size: 13px;
2234
+ }
2235
+ .agi-bars__row {
2236
+ display: grid;
2237
+ grid-template-columns: minmax(100px, 1fr) minmax(120px, 3fr) auto;
2238
+ gap: 10px;
2239
+ align-items: center;
2240
+ }
2241
+ .agi-bars__label {
2242
+ color: var(--text-2);
2243
+ white-space: nowrap;
2244
+ overflow: hidden;
2245
+ text-overflow: ellipsis;
2246
+ }
2247
+ .agi-bars__track {
2248
+ height: 10px;
2249
+ border-radius: 5px;
2250
+ background: var(--line);
2251
+ overflow: hidden;
2252
+ }
2253
+ .agi-bars__fill {
2254
+ display: block;
2255
+ height: 100%;
2256
+ border-radius: 5px;
2257
+ }
2258
+ .agi-bars__value {
2259
+ font-family: var(--font-mono);
2260
+ font-size: 12px;
2261
+ color: var(--text);
2262
+ white-space: nowrap;
2263
+ display: grid;
2264
+ text-align: right;
2265
+ }
2266
+ .agi-bars__note {
2267
+ font-size: 10.5px;
2268
+ color: var(--mute);
2269
+ }