@qwen-code/arena-agent 0.0.1

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 (64) hide show
  1. package/.env.example +52 -0
  2. package/README.md +436 -0
  3. package/dist/agent.d.ts +33 -0
  4. package/dist/agent.js +366 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/attachments.d.ts +29 -0
  7. package/dist/attachments.js +222 -0
  8. package/dist/attachments.js.map +1 -0
  9. package/dist/cli.d.ts +2 -0
  10. package/dist/cli.js +256 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/compaction.d.ts +15 -0
  13. package/dist/compaction.js +176 -0
  14. package/dist/compaction.js.map +1 -0
  15. package/dist/config.d.ts +23 -0
  16. package/dist/config.js +61 -0
  17. package/dist/config.js.map +1 -0
  18. package/dist/document-reader.d.ts +18 -0
  19. package/dist/document-reader.js +423 -0
  20. package/dist/document-reader.js.map +1 -0
  21. package/dist/fetch-page.d.ts +25 -0
  22. package/dist/fetch-page.js +428 -0
  23. package/dist/fetch-page.js.map +1 -0
  24. package/dist/history.d.ts +5 -0
  25. package/dist/history.js +31 -0
  26. package/dist/history.js.map +1 -0
  27. package/dist/mock.d.ts +4 -0
  28. package/dist/mock.js +151 -0
  29. package/dist/mock.js.map +1 -0
  30. package/dist/protocol.d.ts +23 -0
  31. package/dist/protocol.js +84 -0
  32. package/dist/protocol.js.map +1 -0
  33. package/dist/provider.d.ts +31 -0
  34. package/dist/provider.js +308 -0
  35. package/dist/provider.js.map +1 -0
  36. package/dist/sdk.d.ts +181 -0
  37. package/dist/sdk.js +674 -0
  38. package/dist/sdk.js.map +1 -0
  39. package/dist/server.d.ts +15 -0
  40. package/dist/server.js +1433 -0
  41. package/dist/server.js.map +1 -0
  42. package/dist/spec.d.ts +11 -0
  43. package/dist/spec.js +198 -0
  44. package/dist/spec.js.map +1 -0
  45. package/dist/tools.d.ts +38 -0
  46. package/dist/tools.js +992 -0
  47. package/dist/tools.js.map +1 -0
  48. package/dist/tui.d.ts +10 -0
  49. package/dist/tui.js +350 -0
  50. package/dist/tui.js.map +1 -0
  51. package/dist/types.d.ts +146 -0
  52. package/dist/types.js +2 -0
  53. package/dist/types.js.map +1 -0
  54. package/dist/web/app.d.ts +1 -0
  55. package/dist/web/app.js +1082 -0
  56. package/dist/web/app.js.map +1 -0
  57. package/docs/SDK.md +521 -0
  58. package/package.json +59 -0
  59. package/spec/message.json +150 -0
  60. package/spec/tools.json +418 -0
  61. package/web/arena-logo.svg +11 -0
  62. package/web/fonts.css +67 -0
  63. package/web/index.html +285 -0
  64. package/web/styles.css +1798 -0
package/web/styles.css ADDED
@@ -0,0 +1,1798 @@
1
+ :root {
2
+ color-scheme: dark;
3
+ --bg: rgb(37 37 35);
4
+ --bg-deep: rgb(37 37 35);
5
+ --panel: rgb(51 48 46);
6
+ --panel-soft: rgb(42 41 39);
7
+ --panel-raised: rgb(55 52 50);
8
+ --line: rgb(82 77 71);
9
+ --line-soft: rgb(65 61 57);
10
+ --text: rgb(244 240 235);
11
+ --text-soft: rgb(213 209 204);
12
+ --muted: rgb(170 166 161);
13
+ --dim: rgb(119 115 111);
14
+ --accent: rgb(65 190 75);
15
+ --red: #e27373;
16
+ --font-ui:
17
+ baselGrotesk, "Helvetica Neue", Arial, ui-sans-serif, -apple-system,
18
+ BlinkMacSystemFont, sans-serif;
19
+ --font-display:
20
+ martinaPlantijn, "Times New Roman", Georgia, serif;
21
+ font-family: var(--font-ui);
22
+ }
23
+
24
+ * {
25
+ box-sizing: border-box;
26
+ }
27
+
28
+ html,
29
+ body {
30
+ min-height: 100%;
31
+ }
32
+
33
+ body {
34
+ margin: 0;
35
+ overflow: hidden;
36
+ background: var(--bg);
37
+ color: var(--text);
38
+ font-family: var(--font-ui);
39
+ font-size: 16px;
40
+ font-weight: 400;
41
+ line-height: 24px;
42
+ }
43
+
44
+ button,
45
+ textarea {
46
+ font: inherit;
47
+ }
48
+
49
+ button {
50
+ color: inherit;
51
+ }
52
+
53
+ button:focus-visible,
54
+ textarea:focus-visible,
55
+ a:focus-visible {
56
+ outline: 2px solid var(--accent);
57
+ outline-offset: 2px;
58
+ }
59
+
60
+ [hidden] {
61
+ display: none !important;
62
+ }
63
+
64
+ .app-shell {
65
+ display: grid;
66
+ grid-template-columns: auto minmax(0, 1fr);
67
+ height: 100vh;
68
+ min-height: 0;
69
+ background: var(--bg);
70
+ }
71
+
72
+ .sidebar {
73
+ z-index: 40;
74
+ display: flex;
75
+ width: 56px;
76
+ min-width: 56px;
77
+ height: 100vh;
78
+ flex-direction: column;
79
+ overflow: hidden;
80
+ border-right: 1px solid rgb(65 61 57);
81
+ background: var(--bg-deep);
82
+ transition:
83
+ width 180ms cubic-bezier(0.4, 0, 0.2, 1),
84
+ transform 180ms cubic-bezier(0.4, 0, 0.2, 1);
85
+ }
86
+
87
+ .sidebar.is-expanded {
88
+ width: 240px;
89
+ }
90
+
91
+ .sidebar-brand {
92
+ display: flex;
93
+ height: 56px;
94
+ min-height: 56px;
95
+ align-items: center;
96
+ padding: 0 16px;
97
+ }
98
+
99
+ .brand {
100
+ display: none;
101
+ align-items: center;
102
+ gap: 6px;
103
+ color: var(--text);
104
+ text-decoration: none;
105
+ }
106
+
107
+ .sidebar.is-expanded .brand {
108
+ display: flex;
109
+ }
110
+
111
+ .brand-logo {
112
+ display: block;
113
+ width: auto;
114
+ height: 25px;
115
+ }
116
+
117
+ .arena-mark {
118
+ position: relative;
119
+ display: inline-block;
120
+ width: 27px;
121
+ height: 25px;
122
+ flex: 0 0 auto;
123
+ background:
124
+ linear-gradient(var(--text-soft), var(--text-soft)) 3px 4px / 21px 2px no-repeat,
125
+ linear-gradient(var(--text-soft), var(--text-soft)) 5px 7px / 17px 2px no-repeat,
126
+ repeating-linear-gradient(
127
+ to right,
128
+ transparent 0 3px,
129
+ var(--text-soft) 3px 5px
130
+ )
131
+ 5px 10px / 17px 11px no-repeat,
132
+ linear-gradient(var(--text-soft), var(--text-soft)) 3px 21px / 21px 2px no-repeat;
133
+ }
134
+
135
+ .arena-mark::before,
136
+ .arena-mark::after {
137
+ position: absolute;
138
+ top: 1px;
139
+ width: 2px;
140
+ height: 5px;
141
+ background: var(--text-soft);
142
+ content: "";
143
+ }
144
+
145
+ .arena-mark::before {
146
+ left: 5px;
147
+ transform: rotate(-48deg);
148
+ }
149
+
150
+ .arena-mark::after {
151
+ right: 5px;
152
+ transform: rotate(48deg);
153
+ }
154
+
155
+ .brand-name {
156
+ font-family: var(--font-display);
157
+ font-size: 27px;
158
+ letter-spacing: -0.04em;
159
+ }
160
+
161
+ .sidebar-toggle {
162
+ display: grid;
163
+ width: 28px;
164
+ height: 28px;
165
+ margin-left: auto;
166
+ place-items: center;
167
+ border: 0;
168
+ background: transparent;
169
+ color: var(--text-soft);
170
+ cursor: pointer;
171
+ font-size: 18px;
172
+ }
173
+
174
+ .sidebar:not(.is-expanded) .sidebar-toggle {
175
+ margin: 0 auto;
176
+ }
177
+
178
+ .sidebar-nav {
179
+ display: grid;
180
+ gap: 2px;
181
+ padding: 2px 8px;
182
+ }
183
+
184
+ .nav-item {
185
+ display: flex;
186
+ width: 100%;
187
+ height: 36px;
188
+ align-items: center;
189
+ gap: 10px;
190
+ overflow: hidden;
191
+ padding: 0 9px;
192
+ border: 0;
193
+ border-radius: 6px;
194
+ background: transparent;
195
+ color: var(--text-soft);
196
+ cursor: pointer;
197
+ white-space: nowrap;
198
+ }
199
+
200
+ .nav-item:hover {
201
+ background: var(--panel-soft);
202
+ }
203
+
204
+ .nav-icon {
205
+ width: 20px;
206
+ flex: 0 0 20px;
207
+ font-size: 19px;
208
+ line-height: 1;
209
+ text-align: center;
210
+ }
211
+
212
+ .nav-label,
213
+ .nav-item kbd {
214
+ display: none;
215
+ }
216
+
217
+ .sidebar.is-expanded .nav-label {
218
+ display: block;
219
+ }
220
+
221
+ .nav-item kbd {
222
+ margin-left: auto;
223
+ border: 1px solid var(--line);
224
+ border-radius: 4px;
225
+ background: var(--panel);
226
+ color: var(--dim);
227
+ padding: 1px 4px;
228
+ font-size: 9px;
229
+ }
230
+
231
+ .sidebar.is-expanded .nav-item kbd {
232
+ display: block;
233
+ }
234
+
235
+ .agent-promo,
236
+ .sidebar-session {
237
+ display: none;
238
+ }
239
+
240
+ .sidebar.is-expanded .agent-promo {
241
+ display: block;
242
+ margin: auto 8px 8px;
243
+ padding: 8px;
244
+ border: 1px solid var(--line-soft);
245
+ border-radius: 8px;
246
+ }
247
+
248
+ .agent-promo video {
249
+ display: block;
250
+ width: 100%;
251
+ height: 116px;
252
+ margin-bottom: 10px;
253
+ border-radius: 6px;
254
+ background: #f1efeb;
255
+ object-fit: cover;
256
+ }
257
+
258
+ .agent-promo h2 {
259
+ margin: 0 0 6px;
260
+ font-family: var(--font-display);
261
+ font-size: 16px;
262
+ font-weight: 300;
263
+ }
264
+
265
+ .agent-promo p {
266
+ margin: 0 0 10px;
267
+ color: var(--muted);
268
+ font-size: 11px;
269
+ line-height: 1.5;
270
+ }
271
+
272
+ .agent-promo a {
273
+ color: #58a6e7;
274
+ }
275
+
276
+ .agent-promo button {
277
+ width: 100%;
278
+ padding: 8px;
279
+ border: 0;
280
+ border-radius: 3px;
281
+ background: var(--text);
282
+ color: #252321;
283
+ cursor: pointer;
284
+ font-size: 11px;
285
+ }
286
+
287
+ .agent-promo .hide-promo {
288
+ margin-top: 8px;
289
+ border: 1px solid var(--line-soft);
290
+ background: transparent;
291
+ color: var(--text-soft);
292
+ }
293
+
294
+ .sidebar.is-expanded .sidebar-session {
295
+ display: block;
296
+ margin: 0 8px 10px;
297
+ padding-top: 0;
298
+ border-top: 0;
299
+ }
300
+
301
+ .login-button {
302
+ width: 100%;
303
+ height: 36px;
304
+ border: 0;
305
+ border-radius: 3px;
306
+ background: var(--text);
307
+ color: var(--bg);
308
+ cursor: pointer;
309
+ font-size: 13px;
310
+ }
311
+
312
+ .legal-links {
313
+ display: flex;
314
+ align-items: center;
315
+ justify-content: space-between;
316
+ gap: 7px;
317
+ padding: 9px 7px 0;
318
+ }
319
+
320
+ .legal-links a,
321
+ .legal-links button {
322
+ padding: 0;
323
+ border: 0;
324
+ background: transparent;
325
+ color: var(--muted);
326
+ cursor: pointer;
327
+ font-size: 9px;
328
+ text-decoration: none;
329
+ }
330
+
331
+ .runtime-data {
332
+ display: none;
333
+ }
334
+
335
+ .session-meta {
336
+ display: flex;
337
+ min-width: 0;
338
+ align-items: center;
339
+ gap: 8px;
340
+ padding: 0 8px;
341
+ }
342
+
343
+ .session-meta > span:last-child {
344
+ min-width: 0;
345
+ }
346
+
347
+ .status-dot {
348
+ width: 7px;
349
+ height: 7px;
350
+ flex: 0 0 auto;
351
+ border-radius: 50%;
352
+ background: var(--accent);
353
+ box-shadow: 0 0 0 3px rgb(61 202 84 / 12%);
354
+ }
355
+
356
+ .session-meta small,
357
+ .session-meta strong {
358
+ display: block;
359
+ overflow: hidden;
360
+ text-overflow: ellipsis;
361
+ white-space: nowrap;
362
+ }
363
+
364
+ .session-meta small {
365
+ color: var(--dim);
366
+ font-size: 9px;
367
+ }
368
+
369
+ .session-meta strong {
370
+ margin-top: 2px;
371
+ font-size: 10px;
372
+ font-weight: 500;
373
+ }
374
+
375
+ .sidebar-session > p {
376
+ margin: 10px 8px 0;
377
+ color: var(--dim);
378
+ font-size: 9px;
379
+ }
380
+
381
+ .workspace-shell {
382
+ position: relative;
383
+ display: grid;
384
+ min-width: 0;
385
+ height: 100vh;
386
+ grid-template-rows: 56px minmax(0, 1fr);
387
+ }
388
+
389
+ .topbar {
390
+ z-index: 30;
391
+ display: flex;
392
+ align-items: center;
393
+ min-height: 56px;
394
+ border-bottom: 1px solid rgb(65 61 57);
395
+ background: var(--bg);
396
+ }
397
+
398
+ .mobile-sidebar-toggle {
399
+ display: none;
400
+ border: 0;
401
+ background: transparent;
402
+ }
403
+
404
+ .mode-picker {
405
+ position: relative;
406
+ height: 100%;
407
+ }
408
+
409
+ .mode-toggle {
410
+ display: flex;
411
+ height: 100%;
412
+ align-items: center;
413
+ gap: 7px;
414
+ padding: 0 28px;
415
+ border: 0;
416
+ background: transparent;
417
+ color: var(--text);
418
+ cursor: pointer;
419
+ font-family: var(--font-ui);
420
+ font-size: 14px;
421
+ font-weight: 500;
422
+ line-height: 20px;
423
+ }
424
+
425
+ .mode-icon {
426
+ font-size: 20px;
427
+ }
428
+
429
+ .chevron {
430
+ transition: transform 160ms ease;
431
+ }
432
+
433
+ .mode-toggle[aria-expanded="true"] .chevron {
434
+ transform: rotate(180deg);
435
+ }
436
+
437
+ .mode-menu {
438
+ position: absolute;
439
+ top: 48px;
440
+ left: 16px;
441
+ z-index: 60;
442
+ width: 290px;
443
+ overflow: hidden;
444
+ border: 1px solid rgb(82 77 71);
445
+ border-radius: 8px;
446
+ background: var(--panel);
447
+ box-shadow: 0 18px 42px rgb(0 0 0 / 32%);
448
+ }
449
+
450
+ .mode-option {
451
+ display: grid;
452
+ width: 100%;
453
+ grid-template-columns: 30px 1fr;
454
+ gap: 8px;
455
+ align-items: center;
456
+ padding: 10px 12px;
457
+ border: 0;
458
+ border-bottom: 1px solid var(--line-soft);
459
+ background: transparent;
460
+ color: var(--text-soft);
461
+ cursor: pointer;
462
+ text-align: left;
463
+ }
464
+
465
+ .mode-option:last-child {
466
+ border-bottom: 0;
467
+ }
468
+
469
+ .mode-option:hover,
470
+ .mode-option.is-selected {
471
+ background: #403c39;
472
+ }
473
+
474
+ .mode-option > span:first-child {
475
+ font-size: 25px;
476
+ text-align: center;
477
+ }
478
+
479
+ .mode-option strong,
480
+ .mode-option small {
481
+ display: block;
482
+ }
483
+
484
+ .mode-option strong {
485
+ font-size: 15px;
486
+ font-weight: 400;
487
+ }
488
+
489
+ .mode-option small {
490
+ margin-top: 2px;
491
+ color: var(--muted);
492
+ font-size: 13px;
493
+ }
494
+
495
+ .connection {
496
+ display: none;
497
+ align-items: center;
498
+ gap: 7px;
499
+ margin-left: auto;
500
+ margin-right: 18px;
501
+ color: var(--dim);
502
+ font-size: 10px;
503
+ }
504
+
505
+ .connection > span {
506
+ width: 6px;
507
+ height: 6px;
508
+ border-radius: 50%;
509
+ background: #c58b42;
510
+ animation: pulse 1.4s ease-in-out infinite;
511
+ }
512
+
513
+ .connection[data-state="ready"] > span {
514
+ background: var(--accent);
515
+ animation: none;
516
+ }
517
+
518
+ .connection[data-state="error"] > span {
519
+ background: var(--red);
520
+ animation: none;
521
+ }
522
+
523
+ @keyframes pulse {
524
+ 50% {
525
+ opacity: 0.35;
526
+ }
527
+ }
528
+
529
+ .announcement {
530
+ position: absolute;
531
+ top: 68px;
532
+ left: 50%;
533
+ z-index: 20;
534
+ display: flex;
535
+ width: 521.2px;
536
+ height: 42px;
537
+ align-items: center;
538
+ box-sizing: border-box;
539
+ overflow: hidden;
540
+ border: 1px solid rgb(82 77 71);
541
+ border-radius: 8px;
542
+ background: rgb(34 31 27);
543
+ color: var(--text-soft);
544
+ transform: translateX(-50%);
545
+ white-space: nowrap;
546
+ }
547
+
548
+ .announcement > button {
549
+ align-self: stretch;
550
+ padding: 0 13px;
551
+ border: 0;
552
+ background: transparent;
553
+ color: var(--muted);
554
+ cursor: pointer;
555
+ }
556
+
557
+ .announcement > span:nth-child(2) {
558
+ padding-right: 18px;
559
+ font-size: 14px;
560
+ line-height: 20px;
561
+ }
562
+
563
+ .announcement-mobile {
564
+ display: none;
565
+ }
566
+
567
+ .announcement-links {
568
+ display: flex;
569
+ height: 100%;
570
+ align-items: center;
571
+ gap: 15px;
572
+ padding: 0 14px;
573
+ border-left: 1px solid rgb(82 77 71);
574
+ font-size: 14px;
575
+ font-weight: 700;
576
+ }
577
+
578
+ .main {
579
+ position: relative;
580
+ display: block;
581
+ min-height: 0;
582
+ overflow: hidden;
583
+ padding: 0;
584
+ }
585
+
586
+ .conversation {
587
+ height: 100%;
588
+ min-height: 0;
589
+ overflow-y: auto;
590
+ scroll-behavior: smooth;
591
+ }
592
+
593
+ .empty-state {
594
+ position: absolute;
595
+ top: calc(50% - 202.5px);
596
+ right: 0;
597
+ left: 0;
598
+ display: flex;
599
+ flex-direction: column;
600
+ align-items: center;
601
+ margin: 0;
602
+ text-align: center;
603
+ }
604
+
605
+ .hero-brand {
606
+ display: flex;
607
+ align-items: center;
608
+ gap: 6px;
609
+ margin-bottom: 19px;
610
+ font-family: var(--font-display);
611
+ font-size: 36px;
612
+ font-weight: 300;
613
+ line-height: 30px;
614
+ letter-spacing: -0.04em;
615
+ }
616
+
617
+ .hero-brand .arena-mark {
618
+ width: 30px;
619
+ transform: scale(1.08);
620
+ }
621
+
622
+ .hero-logo {
623
+ display: block;
624
+ width: auto;
625
+ height: 28px;
626
+ margin-bottom: 16px;
627
+ }
628
+
629
+ .empty-state h1 {
630
+ margin: 0 0 16px;
631
+ color: rgb(199 194 188);
632
+ font-family: var(--font-display);
633
+ font-size: 48px;
634
+ font-weight: 300;
635
+ letter-spacing: -1.2px;
636
+ line-height: 48px;
637
+ }
638
+
639
+ .empty-state h1 em {
640
+ display: inline-block;
641
+ padding: 0 8px;
642
+ background: var(--accent);
643
+ color: rgb(37 37 35);
644
+ font-family: var(--font-display);
645
+ font-weight: 300;
646
+ font-style: italic;
647
+ line-height: 48px;
648
+ }
649
+
650
+ .empty-state[hidden] {
651
+ display: none;
652
+ }
653
+
654
+ .composer-wrap {
655
+ position: absolute;
656
+ top: calc(50% - 70.5px);
657
+ left: 50%;
658
+ width: min(672px, calc(100% - 32px));
659
+ margin: 0;
660
+ transform: translateX(-50%);
661
+ }
662
+
663
+ .composer {
664
+ display: flex;
665
+ width: 100%;
666
+ min-height: 138px;
667
+ flex-direction: column;
668
+ gap: 6px;
669
+ box-sizing: border-box;
670
+ padding: 8px;
671
+ border: 1px solid rgb(65 61 57);
672
+ border-radius: 14px;
673
+ background: var(--panel);
674
+ box-shadow: 0 10px 28px rgb(0 0 0 / 7%);
675
+ transition:
676
+ border-color 140ms ease,
677
+ box-shadow 140ms ease;
678
+ }
679
+
680
+ .composer:focus-within {
681
+ border-color: #69645f;
682
+ box-shadow: 0 0 0 2px rgb(255 255 255 / 3%);
683
+ }
684
+
685
+ .composer textarea {
686
+ display: block;
687
+ width: 100%;
688
+ height: 80px;
689
+ min-height: 80px;
690
+ max-height: 180px;
691
+ box-sizing: border-box;
692
+ padding: 12px;
693
+ resize: none;
694
+ border: 0;
695
+ outline: 0;
696
+ background: transparent;
697
+ color: var(--text);
698
+ font-family: var(--font-ui);
699
+ font-size: 16px;
700
+ line-height: 24px;
701
+ }
702
+
703
+ .composer textarea::placeholder {
704
+ color: #76716d;
705
+ }
706
+
707
+ .attachment-list {
708
+ display: flex;
709
+ flex-wrap: wrap;
710
+ gap: 6px;
711
+ padding: 0 4px 4px;
712
+ }
713
+
714
+ .attachment-list[hidden] {
715
+ display: none;
716
+ }
717
+
718
+ .attachment-chip {
719
+ display: inline-flex;
720
+ max-width: 220px;
721
+ height: 28px;
722
+ align-items: center;
723
+ gap: 6px;
724
+ padding: 0 7px 0 9px;
725
+ border: 1px solid var(--line);
726
+ border-radius: 7px;
727
+ background: var(--panel-raised);
728
+ color: var(--text-soft);
729
+ font-size: 11px;
730
+ }
731
+
732
+ .attachment-chip > span {
733
+ overflow: hidden;
734
+ text-overflow: ellipsis;
735
+ white-space: nowrap;
736
+ }
737
+
738
+ .attachment-chip > button {
739
+ width: 18px;
740
+ height: 18px;
741
+ padding: 0;
742
+ border: 0;
743
+ background: transparent;
744
+ color: var(--muted);
745
+ cursor: pointer;
746
+ font-size: 15px;
747
+ line-height: 18px;
748
+ }
749
+
750
+ .attachment-chip > button:hover {
751
+ color: var(--text);
752
+ }
753
+
754
+ .attachment-error {
755
+ align-self: center;
756
+ color: #e4a0a0;
757
+ font-size: 11px;
758
+ }
759
+
760
+ .composer-bar {
761
+ display: flex;
762
+ height: 34px;
763
+ min-height: 34px;
764
+ align-items: center;
765
+ gap: 8px;
766
+ }
767
+
768
+ .add-files,
769
+ .composer-tools button,
770
+ .artifact-toggle,
771
+ .send-button,
772
+ .stop-button {
773
+ height: 34px;
774
+ border: 1px solid var(--line);
775
+ border-radius: 6px;
776
+ background: transparent;
777
+ color: var(--text-soft);
778
+ cursor: pointer;
779
+ }
780
+
781
+ .add-files {
782
+ display: flex;
783
+ align-items: center;
784
+ gap: 7px;
785
+ padding: 0 10px;
786
+ font-size: 13px;
787
+ }
788
+
789
+ .add-files > span:first-child {
790
+ font-size: 20px;
791
+ }
792
+
793
+ .composer-tools {
794
+ display: flex;
795
+ gap: 8px;
796
+ }
797
+
798
+ .composer-tools button {
799
+ width: 34px;
800
+ padding: 0;
801
+ color: var(--text-soft);
802
+ font-size: 12px;
803
+ }
804
+
805
+ .composer-tools button:first-child {
806
+ font-size: 20px;
807
+ }
808
+
809
+ .add-files:hover,
810
+ .composer-tools button:hover,
811
+ .artifact-toggle:hover {
812
+ border-color: #6b6661;
813
+ background: var(--panel-raised);
814
+ }
815
+
816
+ .artifact-toggle {
817
+ display: flex;
818
+ margin-left: auto;
819
+ align-items: center;
820
+ gap: 4px;
821
+ padding: 0 7px;
822
+ color: var(--muted);
823
+ font-size: 12px;
824
+ }
825
+
826
+ .artifact-toggle span {
827
+ min-width: 12px;
828
+ font-size: 9px;
829
+ }
830
+
831
+ .send-button {
832
+ display: grid;
833
+ width: 34px;
834
+ place-items: center;
835
+ color: var(--muted);
836
+ font-size: 21px;
837
+ }
838
+
839
+ .send-button:hover:not(:disabled) {
840
+ border-color: var(--text-soft);
841
+ background: var(--text);
842
+ color: var(--bg);
843
+ }
844
+
845
+ .send-button:disabled {
846
+ cursor: not-allowed;
847
+ opacity: 0.34;
848
+ }
849
+
850
+ .stop-button {
851
+ display: flex;
852
+ align-items: center;
853
+ gap: 6px;
854
+ padding: 0 9px;
855
+ border-color: #734b4b;
856
+ color: #e4a0a0;
857
+ font-size: 10px;
858
+ }
859
+
860
+ .stop-button span {
861
+ width: 7px;
862
+ height: 7px;
863
+ border-radius: 1px;
864
+ background: currentColor;
865
+ }
866
+
867
+ .suggestion-panel {
868
+ margin-top: 16px;
869
+ }
870
+
871
+ .suggestion-panel > p {
872
+ margin: 0 0 4px;
873
+ color: rgb(199 194 188);
874
+ font-size: 12px;
875
+ font-weight: 450;
876
+ line-height: 16px;
877
+ }
878
+
879
+ .suggestions {
880
+ display: grid;
881
+ width: 100%;
882
+ height: 104px;
883
+ grid-template-columns: repeat(3, minmax(0, 1fr));
884
+ gap: 8px;
885
+ }
886
+
887
+ .suggestions button {
888
+ display: grid;
889
+ min-width: 0;
890
+ height: 48px;
891
+ grid-template-columns: 32px minmax(0, 1fr);
892
+ align-items: center;
893
+ gap: 6px;
894
+ box-sizing: border-box;
895
+ padding: 8px;
896
+ overflow: hidden;
897
+ border: 1px solid rgb(82 77 71);
898
+ border-radius: 8px;
899
+ background: rgb(37 37 35);
900
+ color: var(--text-soft);
901
+ cursor: pointer;
902
+ text-align: left;
903
+ transition:
904
+ background-color 150ms cubic-bezier(0.4, 0, 0.2, 1),
905
+ border-color 150ms cubic-bezier(0.4, 0, 0.2, 1);
906
+ }
907
+
908
+ .suggestions button:hover {
909
+ background: rgb(37 36 34);
910
+ }
911
+
912
+ .suggestions button > span:first-child {
913
+ display: grid;
914
+ width: 32px;
915
+ height: 32px;
916
+ place-items: center;
917
+ border-radius: 3px;
918
+ background: var(--panel-raised);
919
+ color: var(--text-soft);
920
+ font-size: 16px;
921
+ }
922
+
923
+ .suggestions button > span:last-child {
924
+ min-width: 0;
925
+ }
926
+
927
+ .suggestions strong,
928
+ .suggestions small {
929
+ display: block;
930
+ overflow: hidden;
931
+ text-overflow: ellipsis;
932
+ white-space: nowrap;
933
+ }
934
+
935
+ .suggestions strong {
936
+ font-size: 11px;
937
+ font-weight: 500;
938
+ line-height: 14px;
939
+ }
940
+
941
+ .suggestions small {
942
+ margin-top: 2px;
943
+ color: var(--muted);
944
+ font-size: 9px;
945
+ line-height: 12px;
946
+ }
947
+
948
+ .disclaimer {
949
+ display: none;
950
+ }
951
+
952
+ .messages {
953
+ width: min(760px, calc(100% - 40px));
954
+ margin: 0 auto;
955
+ padding: 38px 0 54px;
956
+ }
957
+
958
+ .message {
959
+ display: grid;
960
+ grid-template-columns: 30px 1fr;
961
+ gap: 12px;
962
+ margin-bottom: 28px;
963
+ }
964
+
965
+ .message.user {
966
+ grid-template-columns: 1fr;
967
+ justify-items: end;
968
+ }
969
+
970
+ .message.user .avatar,
971
+ .message.user .message-label {
972
+ display: none;
973
+ }
974
+
975
+ .avatar {
976
+ display: grid;
977
+ width: 29px;
978
+ height: 29px;
979
+ place-items: center;
980
+ border: 1px solid var(--line);
981
+ border-radius: 6px;
982
+ background: var(--panel);
983
+ font-family: Georgia, "Times New Roman", serif;
984
+ font-size: 13px;
985
+ }
986
+
987
+ .message.user .message-body {
988
+ max-width: min(78%, 580px);
989
+ }
990
+
991
+ .message-label {
992
+ margin: 3px 0 7px;
993
+ color: var(--muted);
994
+ font-size: 10px;
995
+ }
996
+
997
+ .message-content {
998
+ color: var(--text-soft);
999
+ font-size: 13px;
1000
+ line-height: 1.7;
1001
+ overflow-wrap: anywhere;
1002
+ white-space: pre-wrap;
1003
+ }
1004
+
1005
+ .message.user .message-content {
1006
+ padding: 11px 14px;
1007
+ border: 1px solid var(--line);
1008
+ border-radius: 13px 13px 4px 13px;
1009
+ background: var(--panel);
1010
+ }
1011
+
1012
+ .message.error .message-content {
1013
+ padding: 11px 13px;
1014
+ border: 1px solid #704c4c;
1015
+ border-radius: 8px;
1016
+ background: #3a2929;
1017
+ color: #efadad;
1018
+ }
1019
+
1020
+ .reasoning {
1021
+ margin: 3px 0 14px;
1022
+ border: 1px solid var(--line-soft);
1023
+ border-radius: 8px;
1024
+ background: var(--panel-soft);
1025
+ }
1026
+
1027
+ .reasoning summary {
1028
+ padding: 9px 11px;
1029
+ color: var(--muted);
1030
+ cursor: pointer;
1031
+ font-size: 10px;
1032
+ list-style: none;
1033
+ }
1034
+
1035
+ .reasoning summary::before {
1036
+ margin-right: 7px;
1037
+ color: var(--accent);
1038
+ content: "◌";
1039
+ }
1040
+
1041
+ .reasoning pre,
1042
+ .tool-card pre {
1043
+ overflow: auto;
1044
+ color: var(--muted);
1045
+ font: 10px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace;
1046
+ white-space: pre-wrap;
1047
+ }
1048
+
1049
+ .reasoning pre {
1050
+ max-height: 220px;
1051
+ margin: 0;
1052
+ padding: 0 12px 12px;
1053
+ }
1054
+
1055
+ .tool-card {
1056
+ margin: 8px 0;
1057
+ overflow: hidden;
1058
+ border: 1px solid var(--line);
1059
+ border-radius: 9px;
1060
+ background: var(--panel-soft);
1061
+ }
1062
+
1063
+ .tool-head {
1064
+ display: flex;
1065
+ align-items: center;
1066
+ gap: 8px;
1067
+ padding: 9px 11px;
1068
+ border-bottom: 1px solid var(--line-soft);
1069
+ font-size: 10px;
1070
+ }
1071
+
1072
+ .tool-symbol {
1073
+ display: grid;
1074
+ width: 21px;
1075
+ height: 21px;
1076
+ place-items: center;
1077
+ border-radius: 4px;
1078
+ background: var(--panel-raised);
1079
+ color: var(--accent);
1080
+ }
1081
+
1082
+ .tool-status {
1083
+ margin-left: auto;
1084
+ color: #d7a663;
1085
+ font-size: 9px;
1086
+ }
1087
+
1088
+ .tool-card.is-complete .tool-status {
1089
+ color: var(--accent);
1090
+ }
1091
+
1092
+ .tool-card pre {
1093
+ max-height: 190px;
1094
+ margin: 0;
1095
+ padding: 10px 11px;
1096
+ }
1097
+
1098
+ .user-input-card {
1099
+ margin: 10px 0;
1100
+ padding: 13px;
1101
+ border: 1px solid var(--line);
1102
+ border-radius: 12px;
1103
+ background: var(--panel-soft);
1104
+ }
1105
+
1106
+ .user-input-heading {
1107
+ display: flex;
1108
+ align-items: center;
1109
+ margin-bottom: 12px;
1110
+ font-size: 11px;
1111
+ }
1112
+
1113
+ .user-input-status {
1114
+ margin-left: auto;
1115
+ color: #d7a663;
1116
+ font-size: 9px;
1117
+ }
1118
+
1119
+ .user-input-card.is-submitted .user-input-status {
1120
+ color: var(--accent);
1121
+ }
1122
+
1123
+ .user-input-card fieldset {
1124
+ display: grid;
1125
+ gap: 7px;
1126
+ margin: 0 0 13px;
1127
+ padding: 0;
1128
+ border: 0;
1129
+ }
1130
+
1131
+ .user-input-card legend {
1132
+ margin-bottom: 8px;
1133
+ color: var(--text-soft);
1134
+ font-size: 11px;
1135
+ font-weight: 700;
1136
+ }
1137
+
1138
+ .user-input-option {
1139
+ display: flex;
1140
+ align-items: flex-start;
1141
+ gap: 9px;
1142
+ padding: 9px 10px;
1143
+ border: 1px solid var(--line);
1144
+ border-radius: 9px;
1145
+ background: var(--panel);
1146
+ cursor: pointer;
1147
+ }
1148
+
1149
+ .user-input-option:has(input[type="radio"]:checked) {
1150
+ border-color: var(--accent);
1151
+ background: rgb(65 190 75 / 8%);
1152
+ }
1153
+
1154
+ .user-input-option input[type="radio"] {
1155
+ margin: 2px 0 0;
1156
+ accent-color: var(--accent);
1157
+ }
1158
+
1159
+ .user-input-option strong,
1160
+ .user-input-option small {
1161
+ display: block;
1162
+ }
1163
+
1164
+ .user-input-option strong {
1165
+ font-size: 10px;
1166
+ }
1167
+
1168
+ .user-input-option small {
1169
+ margin-top: 3px;
1170
+ color: var(--muted);
1171
+ font-size: 9px;
1172
+ }
1173
+
1174
+ .user-input-custom {
1175
+ align-items: center;
1176
+ }
1177
+
1178
+ .user-input-custom input[type="text"] {
1179
+ width: 100%;
1180
+ padding: 4px 2px;
1181
+ border: 0;
1182
+ outline: 0;
1183
+ background: transparent;
1184
+ color: var(--text);
1185
+ font-size: 10px;
1186
+ }
1187
+
1188
+ .user-input-submit {
1189
+ display: block;
1190
+ margin-left: auto;
1191
+ padding: 8px 13px;
1192
+ border: 0;
1193
+ border-radius: 8px;
1194
+ background: var(--text);
1195
+ color: var(--bg);
1196
+ cursor: pointer;
1197
+ font-size: 10px;
1198
+ font-weight: 700;
1199
+ }
1200
+
1201
+ .user-input-submit:disabled {
1202
+ cursor: default;
1203
+ opacity: 0.5;
1204
+ }
1205
+
1206
+ .has-messages .main {
1207
+ display: grid;
1208
+ grid-template-rows: minmax(0, 1fr) auto;
1209
+ justify-content: stretch;
1210
+ padding: 0;
1211
+ }
1212
+
1213
+ .has-messages .conversation {
1214
+ min-height: 0;
1215
+ overflow-y: auto;
1216
+ }
1217
+
1218
+ .has-messages .composer-wrap {
1219
+ position: static;
1220
+ top: auto;
1221
+ left: auto;
1222
+ width: 100%;
1223
+ padding: 12px 24px 16px;
1224
+ background: linear-gradient(to top, var(--bg) 70%, rgb(35 35 33 / 0%));
1225
+ transform: none;
1226
+ }
1227
+
1228
+ .has-messages .composer {
1229
+ width: min(672px, 100%);
1230
+ height: auto;
1231
+ min-height: 104px;
1232
+ margin: 0 auto;
1233
+ }
1234
+
1235
+ .has-messages .composer textarea {
1236
+ height: 44px;
1237
+ min-height: 44px;
1238
+ }
1239
+
1240
+ .has-messages .suggestion-panel,
1241
+ .has-messages .disclaimer {
1242
+ display: none;
1243
+ }
1244
+
1245
+ .artifacts {
1246
+ position: fixed;
1247
+ top: 66px;
1248
+ right: 14px;
1249
+ z-index: 80;
1250
+ width: 310px;
1251
+ max-height: calc(100vh - 82px);
1252
+ overflow: auto;
1253
+ border: 1px solid var(--line);
1254
+ border-radius: 10px;
1255
+ background: var(--panel-soft);
1256
+ box-shadow: 0 22px 60px rgb(0 0 0 / 38%);
1257
+ }
1258
+
1259
+ .artifacts.has-preview {
1260
+ width: min(760px, calc(100vw - 84px));
1261
+ }
1262
+
1263
+ .artifacts-header {
1264
+ display: flex;
1265
+ align-items: center;
1266
+ justify-content: space-between;
1267
+ padding: 15px 16px;
1268
+ border-bottom: 1px solid var(--line-soft);
1269
+ }
1270
+
1271
+ .artifacts-header p,
1272
+ .artifacts-header h2 {
1273
+ margin: 0;
1274
+ }
1275
+
1276
+ .artifacts-header p {
1277
+ color: var(--dim);
1278
+ font-size: 9px;
1279
+ text-transform: uppercase;
1280
+ }
1281
+
1282
+ .artifacts-header h2 {
1283
+ margin-top: 3px;
1284
+ font-family: Georgia, "Times New Roman", serif;
1285
+ font-size: 20px;
1286
+ font-weight: 400;
1287
+ }
1288
+
1289
+ .artifacts-header button {
1290
+ border: 0;
1291
+ background: transparent;
1292
+ color: var(--muted);
1293
+ cursor: pointer;
1294
+ font-size: 22px;
1295
+ }
1296
+
1297
+ .artifact-preview {
1298
+ border-bottom: 1px solid var(--line-soft);
1299
+ }
1300
+
1301
+ .artifact-preview-toolbar {
1302
+ display: flex;
1303
+ min-height: 38px;
1304
+ align-items: center;
1305
+ justify-content: space-between;
1306
+ gap: 12px;
1307
+ padding: 7px 12px;
1308
+ color: var(--dim);
1309
+ font-size: 10px;
1310
+ }
1311
+
1312
+ .artifact-preview-toolbar > span {
1313
+ overflow: hidden;
1314
+ text-overflow: ellipsis;
1315
+ white-space: nowrap;
1316
+ }
1317
+
1318
+ .artifact-preview-toolbar a {
1319
+ flex: 0 0 auto;
1320
+ color: var(--text-soft);
1321
+ text-decoration: none;
1322
+ }
1323
+
1324
+ .artifact-preview-toolbar a:hover {
1325
+ color: var(--accent);
1326
+ }
1327
+
1328
+ .artifact-preview-body {
1329
+ display: grid;
1330
+ height: min(62vh, 640px);
1331
+ min-height: 280px;
1332
+ place-items: center;
1333
+ overflow: hidden;
1334
+ background:
1335
+ linear-gradient(45deg, rgb(242 242 242) 25%, transparent 25%) 0 0 / 16px 16px,
1336
+ linear-gradient(-45deg, rgb(242 242 242) 25%, transparent 25%) 0 8px / 16px 16px,
1337
+ linear-gradient(45deg, transparent 75%, rgb(242 242 242) 75%) 8px -8px / 16px 16px,
1338
+ linear-gradient(-45deg, transparent 75%, rgb(242 242 242) 75%) -8px 0 / 16px 16px,
1339
+ #fff;
1340
+ }
1341
+
1342
+ .artifact-preview-content {
1343
+ display: block;
1344
+ max-width: 100%;
1345
+ max-height: 100%;
1346
+ }
1347
+
1348
+ iframe.artifact-preview-content {
1349
+ width: 100%;
1350
+ height: 100%;
1351
+ border: 0;
1352
+ background: #fff;
1353
+ }
1354
+
1355
+ img.artifact-preview-content,
1356
+ video.artifact-preview-content {
1357
+ width: auto;
1358
+ height: auto;
1359
+ object-fit: contain;
1360
+ }
1361
+
1362
+ audio.artifact-preview-content {
1363
+ width: min(460px, calc(100% - 40px));
1364
+ }
1365
+
1366
+ .artifact-preview-fallback {
1367
+ display: grid;
1368
+ max-width: 360px;
1369
+ place-items: center;
1370
+ padding: 30px;
1371
+ color: #3f3d3a;
1372
+ text-align: center;
1373
+ }
1374
+
1375
+ .artifact-preview-fallback span {
1376
+ display: grid;
1377
+ width: 64px;
1378
+ height: 64px;
1379
+ margin-bottom: 14px;
1380
+ place-items: center;
1381
+ border: 1px solid #ccc8c2;
1382
+ border-radius: 10px;
1383
+ background: #eeece8;
1384
+ color: #537b58;
1385
+ font-size: 13px;
1386
+ font-weight: 700;
1387
+ }
1388
+
1389
+ .artifact-preview-fallback p {
1390
+ margin: 6px 0 0;
1391
+ color: #6f6c67;
1392
+ font-size: 12px;
1393
+ }
1394
+
1395
+ .artifact-empty {
1396
+ display: grid;
1397
+ place-items: center;
1398
+ padding: 38px 20px;
1399
+ color: var(--muted);
1400
+ text-align: center;
1401
+ }
1402
+
1403
+ .artifact-empty span {
1404
+ font-size: 30px;
1405
+ }
1406
+
1407
+ .artifact-empty strong {
1408
+ margin-top: 8px;
1409
+ color: var(--text-soft);
1410
+ font-size: 12px;
1411
+ }
1412
+
1413
+ .artifact-empty p {
1414
+ margin: 5px 0 0;
1415
+ font-size: 10px;
1416
+ }
1417
+
1418
+ .artifact-list {
1419
+ display: grid;
1420
+ gap: 6px;
1421
+ padding: 10px;
1422
+ }
1423
+
1424
+ .artifact-item {
1425
+ display: grid;
1426
+ width: 100%;
1427
+ grid-template-columns: 34px minmax(0, 1fr) auto;
1428
+ align-items: center;
1429
+ gap: 9px;
1430
+ padding: 9px;
1431
+ border: 1px solid var(--line-soft);
1432
+ border-radius: 7px;
1433
+ background: transparent;
1434
+ color: var(--text-soft);
1435
+ cursor: pointer;
1436
+ text-align: left;
1437
+ text-decoration: none;
1438
+ }
1439
+
1440
+ .artifact-item:hover,
1441
+ .artifact-item.is-active {
1442
+ background: var(--panel-raised);
1443
+ }
1444
+
1445
+ .artifact-item.is-active {
1446
+ border-color: rgb(65 190 75 / 45%);
1447
+ }
1448
+
1449
+ .file-icon {
1450
+ display: grid;
1451
+ width: 34px;
1452
+ height: 34px;
1453
+ place-items: center;
1454
+ border-radius: 5px;
1455
+ background: var(--panel-raised);
1456
+ color: var(--accent);
1457
+ font-size: 8px;
1458
+ font-weight: 700;
1459
+ }
1460
+
1461
+ .artifact-item strong,
1462
+ .artifact-item small {
1463
+ display: block;
1464
+ overflow: hidden;
1465
+ text-overflow: ellipsis;
1466
+ white-space: nowrap;
1467
+ }
1468
+
1469
+ .artifact-item strong {
1470
+ font-size: 11px;
1471
+ }
1472
+
1473
+ .artifact-item small {
1474
+ margin-top: 3px;
1475
+ color: var(--dim);
1476
+ font-size: 9px;
1477
+ }
1478
+
1479
+ .artifact-arrow {
1480
+ color: var(--muted);
1481
+ }
1482
+
1483
+ @media (min-width: 768px) and (max-width: 927px) {
1484
+ .sidebar.is-expanded + .workspace-shell .suggestions {
1485
+ height: 132px;
1486
+ }
1487
+
1488
+ .sidebar.is-expanded + .workspace-shell .suggestions button {
1489
+ height: 62px;
1490
+ }
1491
+ }
1492
+
1493
+ @media (max-width: 767px) {
1494
+ .app-shell {
1495
+ display: block;
1496
+ }
1497
+
1498
+ .sidebar {
1499
+ position: fixed;
1500
+ top: 0;
1501
+ left: 0;
1502
+ width: 240px;
1503
+ min-width: 240px;
1504
+ transform: translateX(-100%);
1505
+ }
1506
+
1507
+ .sidebar.is-expanded {
1508
+ width: 240px;
1509
+ transform: translateX(0);
1510
+ box-shadow: 18px 0 50px rgb(0 0 0 / 36%);
1511
+ }
1512
+
1513
+ .sidebar .brand,
1514
+ .sidebar.is-expanded .brand,
1515
+ .sidebar.is-expanded .nav-label,
1516
+ .sidebar.is-expanded .nav-item kbd,
1517
+ .sidebar.is-expanded .agent-promo,
1518
+ .sidebar.is-expanded .sidebar-session {
1519
+ display: flex;
1520
+ }
1521
+
1522
+ .sidebar.is-expanded .agent-promo,
1523
+ .sidebar.is-expanded .sidebar-session {
1524
+ display: block;
1525
+ }
1526
+
1527
+ .workspace-shell {
1528
+ grid-template-rows: 56px minmax(0, 1fr);
1529
+ }
1530
+
1531
+ .topbar {
1532
+ position: relative;
1533
+ justify-content: center;
1534
+ }
1535
+
1536
+ .mobile-sidebar-toggle {
1537
+ position: absolute;
1538
+ left: 14px;
1539
+ display: block;
1540
+ color: var(--text-soft);
1541
+ cursor: pointer;
1542
+ font-size: 18px;
1543
+ }
1544
+
1545
+ .mode-picker {
1546
+ position: static;
1547
+ }
1548
+
1549
+ .mode-toggle {
1550
+ padding: 0 8px;
1551
+ }
1552
+
1553
+ .mode-menu {
1554
+ top: 48px;
1555
+ left: 50%;
1556
+ width: min(290px, calc(100vw - 24px));
1557
+ transform: translateX(-50%);
1558
+ }
1559
+
1560
+ .connection {
1561
+ position: absolute;
1562
+ right: 15px;
1563
+ display: flex;
1564
+ margin: 0;
1565
+ }
1566
+
1567
+ .connection strong {
1568
+ display: none;
1569
+ }
1570
+
1571
+ .connection > span {
1572
+ position: relative;
1573
+ width: 15px;
1574
+ height: 15px;
1575
+ border: 1px solid var(--text-soft);
1576
+ background: transparent !important;
1577
+ }
1578
+
1579
+ .connection > span::after {
1580
+ position: absolute;
1581
+ inset: 0;
1582
+ display: grid;
1583
+ place-items: center;
1584
+ color: var(--text-soft);
1585
+ content: "+";
1586
+ font-size: 10px;
1587
+ line-height: 1;
1588
+ }
1589
+
1590
+ .announcement {
1591
+ top: 76px;
1592
+ width: min(296.98px, calc(100vw - 32px));
1593
+ height: 38px;
1594
+ max-width: none;
1595
+ }
1596
+
1597
+ .announcement > span:nth-child(2) {
1598
+ padding-right: 12px;
1599
+ font-size: 13px;
1600
+ }
1601
+
1602
+ .announcement-desktop {
1603
+ display: none;
1604
+ }
1605
+
1606
+ .announcement-mobile {
1607
+ display: inline;
1608
+ }
1609
+
1610
+ .announcement-links {
1611
+ gap: 12px;
1612
+ padding: 0 11px;
1613
+ }
1614
+
1615
+ .main {
1616
+ display: block;
1617
+ padding: 0;
1618
+ }
1619
+
1620
+ .conversation {
1621
+ height: 100%;
1622
+ }
1623
+
1624
+ .empty-state {
1625
+ position: fixed;
1626
+ top: 276px;
1627
+ right: 0;
1628
+ left: 0;
1629
+ height: auto;
1630
+ justify-content: flex-start;
1631
+ margin: 0;
1632
+ padding: 0;
1633
+ transform: none;
1634
+ }
1635
+
1636
+ .hero-brand {
1637
+ margin-bottom: 14.5px;
1638
+ font-size: 33px;
1639
+ line-height: 25px;
1640
+ }
1641
+
1642
+ .hero-logo {
1643
+ height: 24px;
1644
+ margin-bottom: 15.5px;
1645
+ }
1646
+
1647
+ .empty-state h1 {
1648
+ width: 223.23px;
1649
+ max-width: none;
1650
+ margin-bottom: 16px;
1651
+ font-size: 48px;
1652
+ line-height: 48px;
1653
+ text-align: left;
1654
+ }
1655
+
1656
+ .empty-state h1 em {
1657
+ padding-bottom: 0;
1658
+ }
1659
+
1660
+ .composer-wrap {
1661
+ position: fixed;
1662
+ top: auto;
1663
+ right: 16px;
1664
+ bottom: 24px;
1665
+ left: 16px;
1666
+ z-index: 25;
1667
+ width: auto;
1668
+ margin: 0;
1669
+ transform: none;
1670
+ }
1671
+
1672
+ .composer {
1673
+ height: auto;
1674
+ min-height: 90px;
1675
+ padding: 8px;
1676
+ border-radius: 14px;
1677
+ }
1678
+
1679
+ .composer textarea {
1680
+ height: 32px;
1681
+ min-height: 32px;
1682
+ max-height: 40vh;
1683
+ padding: 4px;
1684
+ }
1685
+
1686
+ .add-files {
1687
+ width: 34px;
1688
+ padding: 0;
1689
+ justify-content: center;
1690
+ }
1691
+
1692
+ .add-files > span:last-child {
1693
+ display: none;
1694
+ }
1695
+
1696
+ .composer-tools {
1697
+ gap: 6px;
1698
+ }
1699
+
1700
+ .composer-tools button {
1701
+ width: 34px;
1702
+ }
1703
+
1704
+ .artifact-toggle {
1705
+ margin-left: auto;
1706
+ }
1707
+
1708
+ .suggestion-panel {
1709
+ position: fixed;
1710
+ right: 0;
1711
+ bottom: 126px;
1712
+ left: 0;
1713
+ margin: 0;
1714
+ overflow-x: auto;
1715
+ overflow-y: hidden;
1716
+ scrollbar-width: none;
1717
+ }
1718
+
1719
+ .suggestion-panel > p {
1720
+ margin: 0 0 4px 16px;
1721
+ }
1722
+
1723
+ .suggestions {
1724
+ display: flex;
1725
+ width: max-content;
1726
+ height: 48px;
1727
+ gap: 8px;
1728
+ padding: 0 16px;
1729
+ }
1730
+
1731
+ .suggestions button {
1732
+ width: 200px;
1733
+ height: 48px;
1734
+ flex: 0 0 200px;
1735
+ }
1736
+
1737
+ .suggestion-panel::-webkit-scrollbar {
1738
+ display: none;
1739
+ }
1740
+
1741
+ .disclaimer {
1742
+ display: none;
1743
+ }
1744
+
1745
+ .messages {
1746
+ width: calc(100% - 28px);
1747
+ padding: 26px 0 130px;
1748
+ }
1749
+
1750
+ .message.user .message-body {
1751
+ max-width: 88%;
1752
+ }
1753
+
1754
+ .has-messages .main {
1755
+ display: block;
1756
+ }
1757
+
1758
+ .has-messages .conversation {
1759
+ height: calc(100vh - 56px);
1760
+ }
1761
+
1762
+ .has-messages .composer-wrap {
1763
+ top: auto;
1764
+ right: 16px;
1765
+ bottom: 24px;
1766
+ left: 16px;
1767
+ width: auto;
1768
+ padding: 0;
1769
+ background: transparent;
1770
+ transform: none;
1771
+ }
1772
+
1773
+ .has-messages .composer {
1774
+ min-height: 90px;
1775
+ }
1776
+
1777
+ .artifacts {
1778
+ top: 66px;
1779
+ right: 10px;
1780
+ left: 10px;
1781
+ width: auto;
1782
+ }
1783
+
1784
+ .artifacts.has-preview {
1785
+ width: auto;
1786
+ }
1787
+
1788
+ .artifact-preview-body {
1789
+ height: calc(100vh - 260px);
1790
+ min-height: 220px;
1791
+ }
1792
+ }
1793
+
1794
+ @media (max-height: 700px) and (min-width: 768px) {
1795
+ .composer-wrap {
1796
+ top: calc(50% - 70.5px);
1797
+ }
1798
+ }