@menukfernandoo/canvas-flow 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,940 @@
1
+ :root {
2
+ --ink-900: #0f1115;
3
+ --ink-800: #11141a;
4
+ --ink-700: #171a21;
5
+ --ink-600: #1c212b;
6
+ --steel-700: #2a2f3a;
7
+ --steel-600: #303745;
8
+ --steel-500: #3c4557;
9
+ --steel-400: #8c96aa;
10
+ --steel-300: #aeb6c6;
11
+ --steel-200: #b9c0cf;
12
+ --steel-100: #d8deea;
13
+ --cream-50: #fffbf3;
14
+ --cream-100: #f7f3ea;
15
+ --cream-200: #e8e1cf;
16
+ --brass-500: #f4c95d;
17
+ --brass-400: #ffd877;
18
+ --brass-ink: #17130a;
19
+ --sage-900: #172419;
20
+ --sage-700: #315f3a;
21
+ --sage-300: #8fe39e;
22
+ --amber-900: #25230f;
23
+ --amber-700: #5d4d1b;
24
+ --rust-500: #f06464;
25
+ --bg: var(--ink-900);
26
+ --bg-panel: var(--ink-800);
27
+ --bg-bar: var(--ink-700);
28
+ --bg-elevated: var(--ink-600);
29
+ --fg: var(--cream-100);
30
+ --fg-muted: var(--steel-100);
31
+ --fg-dim: var(--steel-200);
32
+ --fg-faint: var(--steel-300);
33
+ --fg-label: var(--steel-400);
34
+ --border: var(--steel-600);
35
+ --border-subtle: var(--steel-700);
36
+ --border-strong: var(--steel-500);
37
+ --accent: var(--brass-500);
38
+ --accent-hover: var(--brass-400);
39
+ --accent-ink: var(--brass-ink);
40
+ --danger: var(--rust-500);
41
+ --font-serif: "EB Garamond", "Iowan Old Style", Georgia, serif;
42
+ --font-sans: Geist, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
43
+ --font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
44
+ --text-xs: 12px;
45
+ --lh-xs: 1.35;
46
+ --text-sm: 13px;
47
+ --lh-sm: 1.4;
48
+ --text-base: 14px;
49
+ --lh-base: 1.45;
50
+ --text-md: 16px;
51
+ --lh-md: 1.5;
52
+ --text-lg: 18px;
53
+ --lh-lg: 1.45;
54
+ --text-xl: 22px;
55
+ --lh-xl: 1.3;
56
+ --text-2xl: 28px;
57
+ --lh-2xl: 1.25;
58
+ --text-3xl: 36px;
59
+ --lh-3xl: 1.18;
60
+ --text-4xl: 48px;
61
+ --lh-4xl: 1.1;
62
+ --text-5xl: 64px;
63
+ --lh-5xl: 1.05;
64
+ --text-display: 92px;
65
+ --lh-display: 1;
66
+ --w-regular: 400;
67
+ --w-medium: 500;
68
+ --w-semi: 600;
69
+ --w-bold: 700;
70
+ --w-brand: 750;
71
+ --track-tight: -0.01em;
72
+ --track-normal: 0;
73
+ --track-brand: 0.02em;
74
+ --track-label: 0.08em;
75
+ --track-caps: 0.12em;
76
+ --space-1: 2px;
77
+ --space-2: 4px;
78
+ --space-3: 6px;
79
+ --space-4: 8px;
80
+ --space-5: 10px;
81
+ --space-6: 12px;
82
+ --space-8: 16px;
83
+ --space-10: 20px;
84
+ --space-12: 24px;
85
+ --space-16: 32px;
86
+ --space-20: 40px;
87
+ --space-24: 48px;
88
+ --space-32: 64px;
89
+ --radius-sm: 8px;
90
+ --radius-md: 10px;
91
+ --radius-lg: 12px;
92
+ --radius-xl: 14px;
93
+ --radius-pill: 999px;
94
+ --hairline: 1px solid var(--border);
95
+ --hairline-subtle: 1px solid var(--border-subtle);
96
+ --shadow-tooltip: 0 16px 44px rgba(0, 0, 0, 0.35);
97
+ --shadow-floating: 0 20px 70px rgba(0, 0, 0, 0.35);
98
+ --bar-h: 56px;
99
+ --panel-w: 360px;
100
+ --ease: cubic-bezier(0.2, 0.6, 0.2, 1);
101
+ --dur-fast: 120ms;
102
+ --dur: 180ms;
103
+ --dur-slow: 320ms;
104
+ --annotate-outline: 2px solid var(--accent);
105
+ --annotate-offset: 2px;
106
+ }
107
+ * {
108
+ box-sizing: border-box;
109
+ }
110
+ html,
111
+ body {
112
+ margin: 0;
113
+ width: 100%;
114
+ height: 100%;
115
+ }
116
+ body {
117
+ background: var(--bg);
118
+ color: var(--fg);
119
+ font-family: var(--font-sans);
120
+ font-size: var(--text-base);
121
+ line-height: var(--lh-base);
122
+ overflow: hidden;
123
+ -webkit-font-smoothing: antialiased;
124
+ text-rendering: optimizeLegibility;
125
+ }
126
+ body.canvasflow {
127
+ color-scheme: dark;
128
+ }
129
+ :focus-visible {
130
+ outline: var(--annotate-outline);
131
+ outline-offset: var(--annotate-offset);
132
+ }
133
+ .bar {
134
+ height: var(--bar-h);
135
+ display: flex;
136
+ align-items: center;
137
+ gap: 14px;
138
+ padding: 0 var(--space-8);
139
+ background: var(--bg-bar);
140
+ border-bottom: var(--hairline-subtle);
141
+ box-sizing: border-box;
142
+ }
143
+ .brand {
144
+ display: flex;
145
+ align-items: flex-end;
146
+ height: 22px;
147
+ gap: 8px;
148
+ white-space: nowrap;
149
+ flex-shrink: 0;
150
+ }
151
+ .brand-mark {
152
+ font-family: var(--font-serif);
153
+ font-style: italic;
154
+ font-size: 22px;
155
+ line-height: 1;
156
+ color: var(--fg);
157
+ }
158
+ .brand-support {
159
+ font-family: var(--font-sans);
160
+ font-size: 10px;
161
+ font-weight: 600;
162
+ letter-spacing: 0.18em;
163
+ text-transform: uppercase;
164
+ color: var(--fg-muted);
165
+ position: relative;
166
+ top: 1px;
167
+ }
168
+ .spacer {
169
+ flex: 1;
170
+ }
171
+ .annotate-switch {
172
+ display: inline-flex;
173
+ align-items: center;
174
+ gap: 8px;
175
+ color: var(--fg-muted);
176
+ font-family: inherit;
177
+ font-size: var(--text-sm);
178
+ white-space: nowrap;
179
+ cursor: pointer;
180
+ user-select: none;
181
+ background: none;
182
+ border: 0;
183
+ padding: 0;
184
+ flex-shrink: 0;
185
+ }
186
+ .annotate-switch:disabled {
187
+ cursor: not-allowed;
188
+ opacity: 0.55;
189
+ }
190
+ .switch-track {
191
+ width: 34px;
192
+ height: 20px;
193
+ border-radius: var(--radius-pill);
194
+ background: var(--border);
195
+ position: relative;
196
+ flex-shrink: 0;
197
+ transition: background 150ms var(--ease);
198
+ }
199
+ .switch-knob {
200
+ position: absolute;
201
+ top: 2px;
202
+ left: 2px;
203
+ width: 16px;
204
+ height: 16px;
205
+ border-radius: var(--radius-pill);
206
+ background: var(--fg-faint);
207
+ transition:
208
+ left 150ms var(--ease),
209
+ background 150ms var(--ease);
210
+ }
211
+ .annotate-switch[aria-pressed="true"] .switch-track {
212
+ background: var(--accent);
213
+ }
214
+ .annotate-switch[aria-pressed="true"] .switch-knob {
215
+ left: 16px;
216
+ background: var(--accent-ink);
217
+ }
218
+ .more-wrap {
219
+ position: relative;
220
+ flex-shrink: 0;
221
+ }
222
+ .more-button {
223
+ width: 34px;
224
+ height: 34px;
225
+ display: grid;
226
+ place-items: center;
227
+ border: 1px solid var(--border-subtle);
228
+ background: transparent;
229
+ color: var(--fg-dim);
230
+ border-radius: 9px;
231
+ cursor: pointer;
232
+ padding: 0;
233
+ }
234
+ .more-button:hover:not(:disabled),
235
+ .more-button[aria-expanded="true"] {
236
+ border-color: var(--border-strong);
237
+ background: var(--steel-700);
238
+ color: var(--fg);
239
+ }
240
+ .more-button:disabled {
241
+ cursor: not-allowed;
242
+ opacity: 0.55;
243
+ }
244
+ .menu {
245
+ position: absolute;
246
+ background: var(--bg-bar);
247
+ border: 1px solid var(--border);
248
+ border-radius: var(--radius-lg);
249
+ box-shadow: var(--shadow-tooltip);
250
+ padding: 6px;
251
+ z-index: 70;
252
+ }
253
+ .menu[hidden] {
254
+ display: none;
255
+ }
256
+ .more-menu {
257
+ right: 0;
258
+ top: 42px;
259
+ width: min(300px, calc(100vw - 24px));
260
+ }
261
+ .menu-head {
262
+ padding: 7px 10px 9px;
263
+ }
264
+ .menu-label {
265
+ font-size: 9px;
266
+ font-weight: var(--w-bold);
267
+ letter-spacing: var(--track-label);
268
+ text-transform: uppercase;
269
+ color: var(--fg-faint);
270
+ margin-bottom: 5px;
271
+ }
272
+ .menu-file {
273
+ display: flex;
274
+ align-items: center;
275
+ gap: 7px;
276
+ width: calc(100% + 8px);
277
+ text-align: left;
278
+ border: 0;
279
+ background: transparent;
280
+ padding: 3px 4px;
281
+ margin: 0 -4px;
282
+ border-radius: 7px;
283
+ cursor: pointer;
284
+ font-family: var(--font-mono);
285
+ font-size: 12px;
286
+ color: var(--fg-muted);
287
+ }
288
+ .menu-file:hover {
289
+ background: var(--steel-700);
290
+ }
291
+ .menu-file > svg {
292
+ opacity: 0.7;
293
+ flex-shrink: 0;
294
+ }
295
+ .menu-file-text {
296
+ display: flex;
297
+ flex: 1;
298
+ min-width: 0;
299
+ }
300
+ .path-head {
301
+ overflow: hidden;
302
+ text-overflow: ellipsis;
303
+ white-space: nowrap;
304
+ flex: 0 1 auto;
305
+ min-width: 0;
306
+ }
307
+ .path-tail {
308
+ flex: 0 0 auto;
309
+ max-width: 100%;
310
+ overflow: hidden;
311
+ text-overflow: ellipsis;
312
+ white-space: nowrap;
313
+ }
314
+ .copy-hint {
315
+ font-family: var(--font-sans);
316
+ font-size: 10px;
317
+ font-weight: var(--w-semi);
318
+ color: var(--fg-faint);
319
+ flex-shrink: 0;
320
+ display: flex;
321
+ align-items: center;
322
+ gap: 4px;
323
+ }
324
+ .copy-hint .icon-copy,
325
+ .copy-hint .icon-check {
326
+ display: flex;
327
+ }
328
+ .copy-hint .icon-check {
329
+ display: none;
330
+ }
331
+ .copy-hint.copied {
332
+ color: var(--accent-hover);
333
+ }
334
+ .copy-hint.copied .icon-copy {
335
+ display: none;
336
+ }
337
+ .copy-hint.copied .icon-check {
338
+ display: flex;
339
+ }
340
+ .menu-rule {
341
+ height: 1px;
342
+ background: var(--border);
343
+ margin: 4px 0;
344
+ }
345
+ .menu-item {
346
+ display: flex;
347
+ align-items: center;
348
+ gap: 10px;
349
+ width: 100%;
350
+ text-align: left;
351
+ padding: 9px 10px;
352
+ border-radius: var(--radius-sm);
353
+ font-family: inherit;
354
+ font-size: var(--text-sm);
355
+ border: 0;
356
+ cursor: pointer;
357
+ background: transparent;
358
+ color: var(--fg);
359
+ }
360
+ .menu-item:hover:not(:disabled) {
361
+ background: var(--steel-700);
362
+ }
363
+ .menu-item:disabled {
364
+ cursor: not-allowed;
365
+ opacity: 0.5;
366
+ }
367
+ .menu-item > svg {
368
+ opacity: 0.8;
369
+ flex-shrink: 0;
370
+ }
371
+ .menu-item.danger {
372
+ color: var(--danger);
373
+ }
374
+ .menu-item.danger > svg {
375
+ opacity: 1;
376
+ }
377
+ .menu-item.danger:hover:not(:disabled) {
378
+ background: rgba(240, 100, 100, 0.1);
379
+ }
380
+ .button {
381
+ border: 0;
382
+ border-radius: var(--radius-md);
383
+ padding: 9px 14px;
384
+ background: var(--accent);
385
+ color: var(--accent-ink);
386
+ font-family: inherit;
387
+ font-size: var(--text-sm);
388
+ font-weight: var(--w-bold);
389
+ white-space: nowrap;
390
+ cursor: pointer;
391
+ transition:
392
+ background 120ms ease-out,
393
+ color 120ms ease-out,
394
+ opacity 120ms ease-out,
395
+ border-color 120ms ease-out;
396
+ }
397
+ .button:hover:not(:disabled) {
398
+ background: var(--accent-hover);
399
+ }
400
+ .button:active:not(:disabled) {
401
+ opacity: 0.85;
402
+ }
403
+ .button:disabled {
404
+ opacity: 0.55;
405
+ cursor: not-allowed;
406
+ }
407
+ .split {
408
+ display: inline-flex;
409
+ align-items: stretch;
410
+ }
411
+ .send-main {
412
+ border-radius: var(--radius-md) 0 0 var(--radius-md);
413
+ }
414
+ .send-caret {
415
+ border-radius: 0 var(--radius-md) var(--radius-md) 0;
416
+ padding: 9px;
417
+ border-left: 1px solid rgba(23, 19, 10, 0.22);
418
+ display: grid;
419
+ place-items: center;
420
+ }
421
+ .send-menu {
422
+ right: 0;
423
+ bottom: 44px;
424
+ width: 208px;
425
+ border-radius: 11px;
426
+ }
427
+ .share-overlay {
428
+ position: fixed;
429
+ inset: 0;
430
+ z-index: 80;
431
+ display: grid;
432
+ place-items: center;
433
+ padding: var(--space-16);
434
+ background: rgba(15, 17, 21, 0.72);
435
+ }
436
+ .share-overlay[hidden] {
437
+ display: none;
438
+ }
439
+ .share-card {
440
+ width: min(520px, 100%);
441
+ max-height: min(760px, calc(100vh - 32px));
442
+ overflow: auto;
443
+ border: 1px solid var(--border-strong);
444
+ border-radius: var(--radius-xl);
445
+ background: var(--bg-panel);
446
+ color: var(--fg);
447
+ box-shadow: var(--shadow-floating);
448
+ padding: var(--space-12);
449
+ }
450
+ .share-head {
451
+ display: flex;
452
+ align-items: flex-start;
453
+ justify-content: space-between;
454
+ gap: var(--space-8);
455
+ margin-bottom: var(--space-8);
456
+ }
457
+ .share-kicker {
458
+ color: var(--fg-label);
459
+ font-size: var(--text-xs);
460
+ font-weight: var(--w-bold);
461
+ letter-spacing: var(--track-label);
462
+ text-transform: uppercase;
463
+ }
464
+ .share-link {
465
+ color: inherit;
466
+ text-decoration: underline;
467
+ text-decoration-color: var(--border-strong);
468
+ text-underline-offset: 2px;
469
+ }
470
+ .share-link:hover {
471
+ color: var(--accent-hover);
472
+ text-decoration-color: currentColor;
473
+ }
474
+ .share-head h2 {
475
+ margin: var(--space-2) 0 0;
476
+ font-family: var(--font-serif);
477
+ font-size: var(--text-2xl);
478
+ font-style: italic;
479
+ font-weight: var(--w-regular);
480
+ line-height: var(--lh-2xl);
481
+ }
482
+ .share-close {
483
+ display: flex;
484
+ align-items: center;
485
+ justify-content: center;
486
+ width: 30px;
487
+ height: 30px;
488
+ border: 1px solid var(--border);
489
+ border-radius: var(--radius-pill);
490
+ background: transparent;
491
+ color: var(--fg-muted);
492
+ cursor: pointer;
493
+ font: inherit;
494
+ padding: 0;
495
+ }
496
+ .share-close svg {
497
+ display: block;
498
+ }
499
+ .share-close:hover {
500
+ color: var(--fg);
501
+ border-color: var(--border-strong);
502
+ }
503
+ .share-copy,
504
+ .share-note {
505
+ margin: 0 0 var(--space-8);
506
+ color: var(--fg-muted);
507
+ }
508
+ .share-note {
509
+ color: var(--fg-faint);
510
+ font-size: var(--text-sm);
511
+ }
512
+ .share-grid {
513
+ display: grid;
514
+ gap: var(--space-8);
515
+ margin-top: var(--space-10);
516
+ }
517
+ .share-grid label,
518
+ .share-result label {
519
+ display: grid;
520
+ gap: var(--space-4);
521
+ min-width: 0;
522
+ color: var(--fg-muted);
523
+ font-size: var(--text-xs);
524
+ font-weight: var(--w-bold);
525
+ letter-spacing: var(--track-label);
526
+ text-transform: uppercase;
527
+ }
528
+ .share-grid input,
529
+ .share-result input {
530
+ min-width: 0;
531
+ width: 100%;
532
+ border: 1px solid var(--border);
533
+ border-radius: var(--radius-lg);
534
+ background: var(--bg);
535
+ color: var(--fg);
536
+ font: inherit;
537
+ font-size: var(--text-base);
538
+ font-weight: var(--w-regular);
539
+ letter-spacing: 0;
540
+ padding: 10px;
541
+ text-transform: none;
542
+ }
543
+ .share-grid input::placeholder {
544
+ color: var(--fg-label);
545
+ }
546
+ .share-status {
547
+ min-height: 20px;
548
+ margin-top: var(--space-8);
549
+ color: var(--fg-muted);
550
+ font-size: var(--text-sm);
551
+ }
552
+ .share-status.error {
553
+ color: var(--danger);
554
+ }
555
+ .share-result {
556
+ display: grid;
557
+ gap: var(--space-8);
558
+ margin-top: var(--space-8);
559
+ border: 1px solid var(--border-subtle);
560
+ border-radius: var(--radius-lg);
561
+ background: var(--bg-elevated);
562
+ padding: var(--space-8);
563
+ }
564
+ .share-result[hidden] {
565
+ display: none;
566
+ }
567
+ .share-copy-row {
568
+ display: flex;
569
+ gap: var(--space-6);
570
+ min-width: 0;
571
+ }
572
+ .share-copy-row input {
573
+ font-family: var(--font-mono);
574
+ font-size: var(--text-xs);
575
+ }
576
+ .share-copy-btn {
577
+ flex: none;
578
+ border: 1px solid var(--border);
579
+ border-radius: var(--radius-md);
580
+ background: transparent;
581
+ color: var(--fg-muted);
582
+ font: inherit;
583
+ font-size: var(--text-xs);
584
+ font-weight: var(--w-bold);
585
+ padding: 0 10px;
586
+ cursor: pointer;
587
+ white-space: nowrap;
588
+ }
589
+ .share-copy-btn:hover {
590
+ color: var(--fg);
591
+ border-color: var(--border-strong);
592
+ }
593
+ .share-actions {
594
+ display: flex;
595
+ justify-content: flex-end;
596
+ gap: var(--space-8);
597
+ margin-top: var(--space-12);
598
+ }
599
+ .share-cancel {
600
+ border: 1px solid var(--border);
601
+ border-radius: var(--radius-md);
602
+ background: transparent;
603
+ color: var(--fg-muted);
604
+ font-family: inherit;
605
+ font-size: var(--text-sm);
606
+ font-weight: var(--w-bold);
607
+ padding: 9px 14px;
608
+ cursor: pointer;
609
+ }
610
+ .share-cancel:hover {
611
+ color: var(--fg);
612
+ border-color: var(--border-strong);
613
+ }
614
+ .layout {
615
+ height: calc(100vh - var(--bar-h));
616
+ min-height: 0;
617
+ display: grid;
618
+ grid-template-columns: minmax(0, 1fr) var(--panel-w);
619
+ }
620
+ .frame {
621
+ min-width: 0;
622
+ min-height: 0;
623
+ background: #fff;
624
+ position: relative;
625
+ overflow: hidden;
626
+ }
627
+ .panel {
628
+ width: var(--panel-w);
629
+ border-left: var(--hairline-subtle);
630
+ background: var(--bg-panel);
631
+ display: flex;
632
+ flex-direction: column;
633
+ min-width: 0;
634
+ min-height: 0;
635
+ }
636
+ .panel h2 {
637
+ font-size: 15px;
638
+ line-height: 1.3;
639
+ margin: 16px 16px 8px;
640
+ font-weight: var(--w-semi);
641
+ letter-spacing: 0;
642
+ }
643
+ .chat {
644
+ flex: 1;
645
+ min-height: 0;
646
+ overflow: auto;
647
+ padding: 0 16px 12px;
648
+ display: flex;
649
+ flex-direction: column;
650
+ gap: 10px;
651
+ }
652
+ .bubble {
653
+ max-width: 85%;
654
+ border-radius: var(--radius-xl);
655
+ padding: 10px 12px;
656
+ background: var(--bg-elevated);
657
+ border: var(--hairline);
658
+ color: var(--fg);
659
+ }
660
+ .bubble.user {
661
+ align-self: flex-end;
662
+ background: var(--bg-elevated);
663
+ border-color: var(--border-strong);
664
+ }
665
+ .bubble.agent {
666
+ align-self: flex-start;
667
+ background: transparent;
668
+ border-color: var(--border-subtle);
669
+ }
670
+ .bubble.agent-working {
671
+ display: flex;
672
+ align-items: center;
673
+ gap: 8px;
674
+ color: var(--fg-muted);
675
+ }
676
+ .spinner {
677
+ width: 14px;
678
+ height: 14px;
679
+ border-radius: var(--radius-pill);
680
+ border: 2px solid var(--border);
681
+ border-top-color: var(--accent);
682
+ animation: spin 0.8s linear infinite;
683
+ flex: 0 0 auto;
684
+ }
685
+ .bubble small {
686
+ display: block;
687
+ color: var(--fg-faint);
688
+ margin-bottom: 4px;
689
+ font-size: 10px;
690
+ font-weight: var(--w-bold);
691
+ letter-spacing: var(--track-label);
692
+ text-transform: uppercase;
693
+ }
694
+ .bubble.user small {
695
+ text-align: right;
696
+ }
697
+ @keyframes spin {
698
+ to {
699
+ transform: rotate(360deg);
700
+ }
701
+ }
702
+ .composer {
703
+ display: grid;
704
+ gap: 8px;
705
+ padding: 12px 16px;
706
+ border-top: var(--hairline-subtle);
707
+ min-width: 0;
708
+ flex-shrink: 0;
709
+ box-sizing: border-box;
710
+ }
711
+ .presence-banner {
712
+ border: 1px solid var(--border);
713
+ border-radius: var(--radius-sm);
714
+ background: var(--bg-elevated);
715
+ color: var(--fg-muted);
716
+ font-size: 11px;
717
+ font-weight: var(--w-medium);
718
+ line-height: 1.4;
719
+ padding: 8px 10px;
720
+ }
721
+ .presence-banner[hidden] {
722
+ display: none;
723
+ }
724
+ .annotation-pills {
725
+ display: flex;
726
+ flex-wrap: wrap;
727
+ gap: 6px;
728
+ min-width: 0;
729
+ }
730
+ .pill-wrap {
731
+ position: relative;
732
+ max-width: 100%;
733
+ }
734
+ .pill {
735
+ display: flex;
736
+ align-items: center;
737
+ gap: 6px;
738
+ max-width: 100%;
739
+ border: 1px solid var(--border-strong);
740
+ border-radius: var(--radius-pill);
741
+ background: var(--bg-elevated);
742
+ color: var(--fg-muted);
743
+ padding: 5px 7px 5px 11px;
744
+ font-size: 12px;
745
+ font-weight: var(--w-bold);
746
+ }
747
+ .pill-preview {
748
+ display: block;
749
+ max-width: 220px;
750
+ overflow: hidden;
751
+ white-space: nowrap;
752
+ text-overflow: ellipsis;
753
+ }
754
+ .pill-close {
755
+ display: flex;
756
+ align-items: center;
757
+ justify-content: center;
758
+ width: 18px;
759
+ height: 18px;
760
+ border: 0;
761
+ border-radius: var(--radius-pill);
762
+ padding: 0;
763
+ background: var(--border);
764
+ color: var(--fg-muted);
765
+ cursor: pointer;
766
+ }
767
+ .pill-close svg {
768
+ display: block;
769
+ }
770
+ .pill-tooltip {
771
+ display: none;
772
+ position: absolute;
773
+ z-index: 5;
774
+ left: 0;
775
+ bottom: calc(100% + 8px);
776
+ width: min(320px, 80vw);
777
+ border: 1px solid var(--border-strong);
778
+ border-radius: var(--radius-lg);
779
+ background: var(--bg-bar);
780
+ color: var(--fg-muted);
781
+ padding: 10px;
782
+ font-size: 12px;
783
+ font-weight: 500;
784
+ box-shadow: var(--shadow-tooltip);
785
+ }
786
+ .tooltip-label {
787
+ color: var(--fg-label);
788
+ font-size: 10px;
789
+ font-weight: 900;
790
+ letter-spacing: var(--track-label);
791
+ text-transform: uppercase;
792
+ margin: 0 0 4px;
793
+ }
794
+ .pill-tooltip-target {
795
+ font-family: var(--font-mono);
796
+ background: var(--bg);
797
+ border: 1px solid var(--border);
798
+ border-radius: var(--radius-sm);
799
+ padding: 6px;
800
+ margin-bottom: 8px;
801
+ overflow-wrap: anywhere;
802
+ }
803
+ .pill-tooltip-prompt {
804
+ white-space: pre-wrap;
805
+ overflow-wrap: anywhere;
806
+ }
807
+ .pill-wrap:hover .pill-tooltip,
808
+ .pill-wrap:focus-within .pill-tooltip {
809
+ display: block;
810
+ }
811
+ .composer textarea {
812
+ width: 100%;
813
+ max-width: 100%;
814
+ min-width: 0;
815
+ min-height: 82px;
816
+ resize: vertical;
817
+ border-radius: var(--radius-lg);
818
+ border: 1px solid var(--border);
819
+ background: var(--bg);
820
+ color: var(--fg);
821
+ padding: 10px;
822
+ font: inherit;
823
+ font-family: var(--font-sans);
824
+ box-sizing: border-box;
825
+ }
826
+ .composer textarea::placeholder {
827
+ color: var(--fg-label);
828
+ }
829
+ .actions {
830
+ display: flex;
831
+ align-items: center;
832
+ gap: 8px;
833
+ justify-content: flex-end;
834
+ position: relative;
835
+ }
836
+ .send-hint {
837
+ margin-right: auto;
838
+ color: var(--fg-faint);
839
+ font-size: 11px;
840
+ line-height: 1.35;
841
+ }
842
+ .send-hint[hidden] {
843
+ display: none;
844
+ }
845
+ .ended-overlay {
846
+ position: fixed;
847
+ inset: var(--bar-h) 0 0 0;
848
+ background: rgba(15, 17, 21, 0.86);
849
+ display: flex;
850
+ align-items: center;
851
+ justify-content: center;
852
+ z-index: 60;
853
+ }
854
+ .ended-overlay[hidden] {
855
+ display: none;
856
+ }
857
+ .ended-card {
858
+ width: min(360px, calc(100vw - 48px));
859
+ border: 1px solid var(--border);
860
+ border-radius: var(--radius-xl);
861
+ background: var(--bg-panel);
862
+ padding: 20px 24px;
863
+ text-align: center;
864
+ }
865
+ .ended-title {
866
+ font-family: var(--font-serif);
867
+ font-style: italic;
868
+ font-size: 22px;
869
+ line-height: 1.3;
870
+ color: var(--fg);
871
+ margin-bottom: 8px;
872
+ }
873
+ .ended-copy {
874
+ margin: 0;
875
+ color: var(--fg-faint);
876
+ font-family: var(--font-mono);
877
+ font-size: 12px;
878
+ line-height: 1.45;
879
+ overflow-wrap: anywhere;
880
+ }
881
+ .ended-action {
882
+ margin-top: var(--space-8);
883
+ }
884
+ .layout-issue-banner {
885
+ position: absolute;
886
+ top: var(--space-8);
887
+ left: var(--space-8);
888
+ right: var(--space-8);
889
+ z-index: 20;
890
+ border: 1px solid rgba(244, 201, 93, 0.35);
891
+ border-radius: var(--radius-lg);
892
+ background: rgba(37, 35, 15, 0.92);
893
+ color: var(--brass-400);
894
+ padding: var(--space-6) var(--space-8);
895
+ font-size: var(--text-sm);
896
+ line-height: var(--lh-sm);
897
+ box-shadow: var(--shadow-tooltip);
898
+ }
899
+ .layout-issue-banner[hidden] {
900
+ display: none;
901
+ }
902
+ iframe {
903
+ width: 100%;
904
+ height: 100%;
905
+ border: 0;
906
+ background: white;
907
+ opacity: 1;
908
+ transition: opacity var(--dur-fast) var(--ease);
909
+ }
910
+ body.layout-gate-active iframe#artifact {
911
+ opacity: 0;
912
+ }
913
+ @media (max-width: 860px) {
914
+ body {
915
+ overflow: auto;
916
+ }
917
+ .layout {
918
+ height: calc(100vh - var(--bar-h));
919
+ grid-template-columns: 1fr;
920
+ grid-template-rows: minmax(0, 1fr) min(42vh, 360px);
921
+ }
922
+ .panel {
923
+ width: 100%;
924
+ border-left: 0;
925
+ border-top: var(--hairline-subtle);
926
+ }
927
+ .chat {
928
+ padding-bottom: 10px;
929
+ }
930
+ .pill-preview {
931
+ max-width: min(220px, 70vw);
932
+ }
933
+ .share-overlay {
934
+ align-items: start;
935
+ padding: var(--space-8);
936
+ }
937
+ .share-copy-row {
938
+ flex-direction: column;
939
+ }
940
+ }