@privateclaw/privateclaw-relay 0.1.2 → 0.1.4

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,1390 @@
1
+ :root {
2
+ color-scheme: dark;
3
+ --bg: #07101f;
4
+ --bg-soft: rgba(10, 18, 36, 0.82);
5
+ --panel: rgba(10, 18, 36, 0.74);
6
+ --panel-strong: rgba(13, 22, 43, 0.92);
7
+ --line: rgba(255, 255, 255, 0.12);
8
+ --line-strong: rgba(255, 255, 255, 0.2);
9
+ --text: #f4f7ff;
10
+ --text-soft: rgba(236, 241, 255, 0.72);
11
+ --text-muted: rgba(213, 220, 240, 0.52);
12
+ --accent: #8f7dff;
13
+ --accent-2: #3ed9ff;
14
+ --accent-3: #5cffc4;
15
+ --danger: #ff7f9f;
16
+ --shadow: 0 30px 90px rgba(0, 0, 0, 0.35);
17
+ --radius-xl: 30px;
18
+ --radius-lg: 22px;
19
+ --radius-md: 18px;
20
+ --radius-sm: 14px;
21
+ --content-width: min(1180px, calc(100vw - 32px));
22
+ --chat-width: min(1200px, calc(100vw - 24px));
23
+ --button-height: 52px;
24
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
25
+ }
26
+
27
+ * {
28
+ box-sizing: border-box;
29
+ }
30
+
31
+ html,
32
+ body {
33
+ margin: 0;
34
+ min-height: 100%;
35
+ background:
36
+ radial-gradient(circle at top left, rgba(62, 217, 255, 0.14), transparent 28%),
37
+ radial-gradient(circle at top right, rgba(143, 125, 255, 0.16), transparent 32%),
38
+ linear-gradient(180deg, #050b16 0%, #091120 45%, #08101d 100%);
39
+ color: var(--text);
40
+ }
41
+
42
+ body {
43
+ position: relative;
44
+ overflow-x: hidden;
45
+ }
46
+
47
+ a {
48
+ color: inherit;
49
+ text-decoration: none;
50
+ }
51
+
52
+ button,
53
+ select,
54
+ textarea,
55
+ input {
56
+ font: inherit;
57
+ }
58
+
59
+ button {
60
+ cursor: pointer;
61
+ }
62
+
63
+ img {
64
+ max-width: 100%;
65
+ display: block;
66
+ }
67
+
68
+ .hidden {
69
+ display: none !important;
70
+ }
71
+
72
+ .sr-only {
73
+ position: absolute;
74
+ width: 1px;
75
+ height: 1px;
76
+ padding: 0;
77
+ margin: -1px;
78
+ overflow: hidden;
79
+ clip: rect(0, 0, 0, 0);
80
+ white-space: nowrap;
81
+ border: 0;
82
+ }
83
+
84
+ .aurora {
85
+ position: fixed;
86
+ inset: auto;
87
+ border-radius: 999px;
88
+ filter: blur(60px);
89
+ opacity: 0.5;
90
+ pointer-events: none;
91
+ mix-blend-mode: screen;
92
+ animation: drift 16s ease-in-out infinite alternate;
93
+ }
94
+
95
+ .aurora-a {
96
+ top: -120px;
97
+ left: -60px;
98
+ width: 300px;
99
+ height: 300px;
100
+ background: rgba(62, 217, 255, 0.22);
101
+ }
102
+
103
+ .aurora-b {
104
+ top: 20%;
105
+ right: -140px;
106
+ width: 360px;
107
+ height: 360px;
108
+ background: rgba(143, 125, 255, 0.22);
109
+ animation-delay: -6s;
110
+ }
111
+
112
+ .aurora-c {
113
+ bottom: -110px;
114
+ left: 18%;
115
+ width: 320px;
116
+ height: 320px;
117
+ background: rgba(92, 255, 196, 0.15);
118
+ animation-delay: -10s;
119
+ }
120
+
121
+ .noise-layer {
122
+ position: fixed;
123
+ inset: 0;
124
+ pointer-events: none;
125
+ opacity: 0.08;
126
+ background-image: radial-gradient(circle at center, rgba(255, 255, 255, 0.34) 0.7px, transparent 0.8px);
127
+ background-size: 12px 12px;
128
+ mask-image: linear-gradient(180deg, transparent, black 12%, black 88%, transparent);
129
+ }
130
+
131
+ .site-shell {
132
+ position: relative;
133
+ z-index: 1;
134
+ width: var(--content-width);
135
+ margin: 0 auto;
136
+ padding: 20px 0 40px;
137
+ }
138
+
139
+ .glass-panel {
140
+ background: linear-gradient(180deg, rgba(15, 24, 44, 0.88), rgba(8, 14, 28, 0.74));
141
+ border: 1px solid var(--line);
142
+ box-shadow: var(--shadow);
143
+ backdrop-filter: blur(18px);
144
+ }
145
+
146
+ .topbar,
147
+ .footer-bar,
148
+ .chat-header,
149
+ .session-sidebar,
150
+ .chat-card,
151
+ .community-card,
152
+ .sheet-card {
153
+ border-radius: var(--radius-xl);
154
+ }
155
+
156
+ .topbar,
157
+ .footer-bar,
158
+ .chat-header {
159
+ display: flex;
160
+ align-items: center;
161
+ justify-content: space-between;
162
+ gap: 16px;
163
+ padding: 16px 20px;
164
+ }
165
+
166
+ .brand-mark {
167
+ display: inline-flex;
168
+ align-items: center;
169
+ gap: 14px;
170
+ min-width: 0;
171
+ }
172
+
173
+ .brand-mark.compact .brand-copy span {
174
+ font-size: 0.82rem;
175
+ }
176
+
177
+ .brand-icon-wrap {
178
+ width: 52px;
179
+ height: 52px;
180
+ border-radius: 18px;
181
+ overflow: hidden;
182
+ border: 1px solid rgba(255, 255, 255, 0.12);
183
+ box-shadow: 0 16px 34px rgba(0, 0, 0, 0.32);
184
+ background: rgba(255, 255, 255, 0.06);
185
+ flex-shrink: 0;
186
+ }
187
+
188
+ .brand-icon {
189
+ width: 100%;
190
+ height: 100%;
191
+ object-fit: cover;
192
+ }
193
+
194
+ .brand-copy {
195
+ display: flex;
196
+ flex-direction: column;
197
+ gap: 4px;
198
+ min-width: 0;
199
+ }
200
+
201
+ .brand-copy strong {
202
+ font-size: 1.02rem;
203
+ letter-spacing: 0.02em;
204
+ }
205
+
206
+ .brand-copy span {
207
+ color: var(--text-muted);
208
+ font-size: 0.88rem;
209
+ }
210
+
211
+ .topbar-actions,
212
+ .chat-header-actions,
213
+ .community-actions,
214
+ .hero-cta-row,
215
+ .coming-soon-row,
216
+ .store-button-grid,
217
+ .footer-meta {
218
+ display: flex;
219
+ align-items: center;
220
+ gap: 12px;
221
+ flex-wrap: wrap;
222
+ }
223
+
224
+ .locale-picker select {
225
+ appearance: none;
226
+ border: 1px solid var(--line);
227
+ border-radius: 999px;
228
+ background: rgba(255, 255, 255, 0.06);
229
+ color: var(--text);
230
+ padding: 10px 40px 10px 14px;
231
+ min-height: 44px;
232
+ }
233
+
234
+ .primary-button,
235
+ .ghost-button,
236
+ .store-button,
237
+ .icon-button {
238
+ border-radius: 999px;
239
+ border: 1px solid transparent;
240
+ min-height: var(--button-height);
241
+ padding: 0 18px;
242
+ display: inline-flex;
243
+ align-items: center;
244
+ justify-content: center;
245
+ gap: 10px;
246
+ transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, opacity 180ms ease;
247
+ }
248
+
249
+ .primary-button {
250
+ color: #07101f;
251
+ background: linear-gradient(135deg, var(--accent-2), var(--accent), #d1caff);
252
+ box-shadow: 0 18px 38px rgba(76, 134, 255, 0.28);
253
+ }
254
+
255
+ .primary-button:hover,
256
+ .ghost-button:hover,
257
+ .icon-button:hover {
258
+ transform: translateY(-1px);
259
+ }
260
+
261
+ .ghost-button,
262
+ .store-button,
263
+ .icon-button {
264
+ background: rgba(255, 255, 255, 0.04);
265
+ color: var(--text);
266
+ border-color: var(--line);
267
+ }
268
+
269
+ .subtle-button {
270
+ min-height: 42px;
271
+ padding: 0 16px;
272
+ }
273
+
274
+ .icon-link {
275
+ min-width: var(--button-height);
276
+ width: var(--button-height);
277
+ padding: 0;
278
+ }
279
+
280
+ .icon-link.subtle-button {
281
+ min-width: 42px;
282
+ width: 42px;
283
+ padding: 0;
284
+ }
285
+
286
+ .icon-link-svg,
287
+ .icon-link-image {
288
+ width: 20px;
289
+ height: 20px;
290
+ flex-shrink: 0;
291
+ display: block;
292
+ }
293
+
294
+ .store-button {
295
+ text-decoration: none;
296
+ }
297
+
298
+ .store-button:not(.store-button-live) {
299
+ cursor: not-allowed;
300
+ opacity: 0.72;
301
+ }
302
+
303
+ .store-button.store-button-live {
304
+ cursor: pointer;
305
+ opacity: 1;
306
+ }
307
+
308
+ .store-button.store-button-live:hover {
309
+ transform: translateY(-1px);
310
+ border-color: rgba(255, 255, 255, 0.22);
311
+ background: rgba(255, 255, 255, 0.08);
312
+ }
313
+
314
+ .store-button-label {
315
+ white-space: nowrap;
316
+ }
317
+
318
+ .full-width {
319
+ width: 100%;
320
+ }
321
+
322
+ .hero-grid {
323
+ display: grid;
324
+ grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
325
+ gap: 24px;
326
+ align-items: center;
327
+ padding: 24px 0 18px;
328
+ }
329
+
330
+ .hero-copy-column,
331
+ .hero-stage-column,
332
+ .section-block,
333
+ .chat-shell {
334
+ position: relative;
335
+ }
336
+
337
+ .hero-copy-column {
338
+ display: flex;
339
+ flex-direction: column;
340
+ gap: 18px;
341
+ }
342
+
343
+ .eyebrow-pill,
344
+ .section-kicker,
345
+ .preview-status-pill,
346
+ .coming-soon-badge,
347
+ .status-pill,
348
+ .participant-count {
349
+ display: inline-flex;
350
+ align-items: center;
351
+ gap: 8px;
352
+ width: fit-content;
353
+ padding: 9px 14px;
354
+ border-radius: 999px;
355
+ border: 1px solid rgba(255, 255, 255, 0.14);
356
+ background: rgba(255, 255, 255, 0.05);
357
+ color: var(--text-soft);
358
+ letter-spacing: 0.03em;
359
+ font-size: 0.85rem;
360
+ }
361
+
362
+ .hero-title {
363
+ margin: 0;
364
+ font-size: clamp(2.8rem, 5vw, 4.9rem);
365
+ line-height: 0.98;
366
+ letter-spacing: -0.05em;
367
+ max-width: 12ch;
368
+ }
369
+
370
+ .hero-body,
371
+ .section-heading p,
372
+ .feature-card p,
373
+ .scenario-card p,
374
+ .community-card p,
375
+ .preview-body,
376
+ .field-help,
377
+ .desktop-note p,
378
+ .empty-state p,
379
+ .status-panel-copy,
380
+ .footer-bar p {
381
+ color: var(--text-soft);
382
+ line-height: 1.68;
383
+ margin: 0;
384
+ }
385
+
386
+ .card-inline {
387
+ border: 1px solid var(--line);
388
+ border-radius: var(--radius-md);
389
+ padding: 14px 16px;
390
+ background: rgba(255, 255, 255, 0.04);
391
+ }
392
+
393
+ .hero-stats {
394
+ display: grid;
395
+ grid-template-columns: repeat(3, minmax(0, 1fr));
396
+ gap: 12px;
397
+ }
398
+
399
+ .stat-card,
400
+ .feature-card,
401
+ .scenario-card,
402
+ .message-shell,
403
+ .status-panel,
404
+ .meta-item,
405
+ .draft-chip,
406
+ .command-item,
407
+ .participant-pill,
408
+ .desktop-note,
409
+ .sheet-card,
410
+ .empty-state,
411
+ .community-card {
412
+ border: 1px solid var(--line);
413
+ border-radius: var(--radius-lg);
414
+ background: rgba(255, 255, 255, 0.045);
415
+ backdrop-filter: blur(12px);
416
+ }
417
+
418
+ .stat-card {
419
+ padding: 16px;
420
+ }
421
+
422
+ .stat-card strong {
423
+ display: block;
424
+ font-size: 1.4rem;
425
+ margin-bottom: 6px;
426
+ }
427
+
428
+ .stat-card span {
429
+ color: var(--text-muted);
430
+ font-size: 0.93rem;
431
+ }
432
+
433
+ .hero-stage-frame {
434
+ position: relative;
435
+ min-height: 620px;
436
+ border-radius: 36px;
437
+ overflow: hidden;
438
+ border: 1px solid var(--line);
439
+ background: linear-gradient(180deg, rgba(10, 18, 36, 0.84), rgba(4, 8, 18, 0.94));
440
+ box-shadow: var(--shadow);
441
+ }
442
+
443
+ .hero-stage-backdrop {
444
+ position: absolute;
445
+ inset: 0;
446
+ background:
447
+ radial-gradient(circle at 20% 16%, rgba(62, 217, 255, 0.2), transparent 24%),
448
+ radial-gradient(circle at 82% 18%, rgba(143, 125, 255, 0.22), transparent 26%),
449
+ radial-gradient(circle at 60% 82%, rgba(92, 255, 196, 0.14), transparent 28%);
450
+ }
451
+
452
+ .hero-stage-art {
453
+ position: absolute;
454
+ inset: 0;
455
+ width: 100%;
456
+ height: 100%;
457
+ object-fit: cover;
458
+ opacity: 0.18;
459
+ mix-blend-mode: screen;
460
+ }
461
+
462
+ .phone-shell {
463
+ position: relative;
464
+ z-index: 1;
465
+ width: min(84%, 360px);
466
+ margin: 52px auto;
467
+ border-radius: 38px;
468
+ padding: 14px;
469
+ background: linear-gradient(180deg, rgba(18, 26, 58, 0.96), rgba(8, 12, 22, 0.98));
470
+ border: 1px solid rgba(255, 255, 255, 0.16);
471
+ box-shadow: 0 38px 72px rgba(0, 0, 0, 0.46);
472
+ }
473
+
474
+ .phone-notch {
475
+ width: 120px;
476
+ height: 20px;
477
+ border-radius: 999px;
478
+ background: rgba(255, 255, 255, 0.09);
479
+ margin: 0 auto 14px;
480
+ }
481
+
482
+ .phone-screen {
483
+ min-height: 520px;
484
+ border-radius: 28px;
485
+ padding: 18px;
486
+ background: linear-gradient(180deg, rgba(11, 18, 33, 0.96), rgba(8, 12, 22, 0.98)), radial-gradient(circle at top right, rgba(62, 217, 255, 0.11), transparent 36%);
487
+ display: flex;
488
+ flex-direction: column;
489
+ gap: 14px;
490
+ }
491
+
492
+ .preview-title,
493
+ .section-heading h2,
494
+ .community-card h2,
495
+ .empty-state h2,
496
+ .session-card-header h1 {
497
+ margin: 0;
498
+ font-size: clamp(1.6rem, 3vw, 2.5rem);
499
+ line-height: 1.08;
500
+ }
501
+
502
+ .preview-chat {
503
+ display: flex;
504
+ flex-direction: column;
505
+ gap: 12px;
506
+ margin-top: 6px;
507
+ }
508
+
509
+ .preview-bubble,
510
+ .message-bubble {
511
+ position: relative;
512
+ border-radius: 22px;
513
+ padding: 14px 16px;
514
+ border: 1px solid rgba(255, 255, 255, 0.08);
515
+ }
516
+
517
+ .preview-bubble {
518
+ max-width: 90%;
519
+ box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24);
520
+ }
521
+
522
+ .preview-bubble.member {
523
+ align-self: flex-start;
524
+ background: rgba(255, 255, 255, 0.06);
525
+ }
526
+
527
+ .preview-bubble.assistant {
528
+ align-self: flex-end;
529
+ background: linear-gradient(135deg, rgba(143, 125, 255, 0.24), rgba(62, 217, 255, 0.18));
530
+ }
531
+
532
+ .preview-name,
533
+ .message-label {
534
+ display: block;
535
+ color: var(--text-muted);
536
+ font-size: 0.8rem;
537
+ margin-bottom: 6px;
538
+ }
539
+
540
+ .section-block {
541
+ padding: 26px 0;
542
+ }
543
+
544
+ .section-heading {
545
+ max-width: 760px;
546
+ margin-bottom: 18px;
547
+ display: flex;
548
+ flex-direction: column;
549
+ gap: 10px;
550
+ }
551
+
552
+ .feature-grid {
553
+ display: grid;
554
+ grid-template-columns: repeat(4, minmax(0, 1fr));
555
+ gap: 14px;
556
+ }
557
+
558
+ .scenario-grid {
559
+ display: grid;
560
+ grid-template-columns: repeat(3, minmax(0, 1fr));
561
+ gap: 14px;
562
+ }
563
+
564
+ .setup-grid {
565
+ display: grid;
566
+ grid-template-columns: repeat(2, minmax(0, 1fr));
567
+ gap: 14px;
568
+ }
569
+
570
+ .feature-card,
571
+ .scenario-card,
572
+ .setup-card {
573
+ padding: 18px;
574
+ min-height: 100%;
575
+ }
576
+
577
+ .feature-eyebrow,
578
+ .scenario-eyebrow {
579
+ color: var(--accent-2);
580
+ font-size: 0.82rem;
581
+ letter-spacing: 0.05em;
582
+ text-transform: uppercase;
583
+ margin-bottom: 8px;
584
+ }
585
+
586
+ .feature-card h3,
587
+ .scenario-card h3,
588
+ .setup-card h3 {
589
+ margin: 0 0 10px;
590
+ font-size: 1.12rem;
591
+ }
592
+
593
+ .setup-card {
594
+ display: flex;
595
+ flex-direction: column;
596
+ gap: 12px;
597
+ border-radius: 24px;
598
+ border: 1px solid rgba(255, 255, 255, 0.12);
599
+ background:
600
+ linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03)),
601
+ rgba(5, 9, 20, 0.52);
602
+ box-shadow: 0 18px 42px rgba(0, 0, 0, 0.2);
603
+ }
604
+
605
+ .setup-step-label {
606
+ color: var(--accent-2);
607
+ font-size: 0.82rem;
608
+ letter-spacing: 0.08em;
609
+ text-transform: uppercase;
610
+ }
611
+
612
+ .setup-card p {
613
+ margin: 0;
614
+ }
615
+
616
+ .setup-command-list {
617
+ display: flex;
618
+ flex-direction: column;
619
+ gap: 10px;
620
+ }
621
+
622
+ .setup-command {
623
+ margin: 0;
624
+ padding: 12px 14px;
625
+ overflow: auto;
626
+ border-radius: 18px;
627
+ border: 1px solid rgba(143, 125, 255, 0.22);
628
+ background: rgba(9, 13, 28, 0.88);
629
+ color: #d9e7ff;
630
+ white-space: pre-wrap;
631
+ word-break: break-word;
632
+ }
633
+
634
+ .setup-command code {
635
+ font-family: "SFMono-Regular", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
636
+ font-size: 0.9rem;
637
+ }
638
+
639
+ .setup-note {
640
+ color: var(--text-muted);
641
+ font-size: 0.94rem;
642
+ }
643
+
644
+ .community-card {
645
+ display: flex;
646
+ justify-content: space-between;
647
+ gap: 18px;
648
+ padding: 24px;
649
+ }
650
+
651
+ .community-footnote,
652
+ .footer-meta,
653
+ .meta-label {
654
+ color: var(--text-muted);
655
+ font-size: 0.92rem;
656
+ }
657
+
658
+ .footer-copy {
659
+ display: flex;
660
+ flex-direction: column;
661
+ gap: 8px;
662
+ }
663
+
664
+ .footer-links {
665
+ display: flex;
666
+ align-items: center;
667
+ gap: 14px;
668
+ flex-wrap: wrap;
669
+ }
670
+
671
+ .footer-links a {
672
+ color: var(--text-soft);
673
+ }
674
+
675
+ .footer-links a:hover {
676
+ color: var(--text);
677
+ }
678
+
679
+ .footer-note {
680
+ max-width: 52ch;
681
+ }
682
+
683
+ .footer-legal {
684
+ flex-direction: column;
685
+ align-items: flex-end;
686
+ gap: 6px;
687
+ text-align: right;
688
+ }
689
+
690
+ .footer-bar {
691
+ margin-top: 24px;
692
+ }
693
+
694
+ .policy-main {
695
+ display: flex;
696
+ flex-direction: column;
697
+ gap: 16px;
698
+ padding-top: 18px;
699
+ }
700
+
701
+ .policy-hero,
702
+ .policy-section {
703
+ padding: 24px;
704
+ border-radius: var(--radius-xl);
705
+ }
706
+
707
+ .policy-updated {
708
+ display: inline-flex;
709
+ align-items: center;
710
+ gap: 8px;
711
+ color: var(--text-muted);
712
+ font-size: 0.94rem;
713
+ flex-wrap: wrap;
714
+ }
715
+
716
+ .policy-sections {
717
+ display: grid;
718
+ gap: 14px;
719
+ }
720
+
721
+ .policy-section h2 {
722
+ margin: 0 0 10px;
723
+ font-size: 1.18rem;
724
+ }
725
+
726
+ .policy-section p {
727
+ margin: 0;
728
+ color: var(--text-soft);
729
+ line-height: 1.7;
730
+ }
731
+
732
+ .policy-section > * + * {
733
+ margin-top: 12px;
734
+ }
735
+
736
+ .policy-list {
737
+ margin: 0;
738
+ padding-left: 20px;
739
+ color: var(--text-soft);
740
+ line-height: 1.7;
741
+ }
742
+
743
+ .policy-list li + li {
744
+ margin-top: 8px;
745
+ }
746
+
747
+ .chat-page {
748
+ min-height: 100vh;
749
+ }
750
+
751
+ .chat-shell {
752
+ position: relative;
753
+ z-index: 1;
754
+ width: var(--chat-width);
755
+ margin: 0 auto;
756
+ padding: 14px 0 24px;
757
+ }
758
+
759
+ .chat-main {
760
+ display: grid;
761
+ grid-template-columns: minmax(340px, 388px) minmax(0, 1fr);
762
+ gap: 20px;
763
+ align-items: start;
764
+ padding-top: 16px;
765
+ }
766
+
767
+ .session-sidebar,
768
+ .chat-card {
769
+ padding: 18px;
770
+ }
771
+
772
+ .chat-card {
773
+ display: flex;
774
+ flex-direction: column;
775
+ min-height: clamp(620px, 72vh, 860px);
776
+ }
777
+
778
+ .session-sidebar {
779
+ display: flex;
780
+ flex-direction: column;
781
+ gap: 16px;
782
+ position: sticky;
783
+ top: 14px;
784
+ }
785
+
786
+ .session-card-header,
787
+ .participant-header,
788
+ .sheet-header {
789
+ display: flex;
790
+ align-items: flex-start;
791
+ justify-content: space-between;
792
+ gap: 12px;
793
+ }
794
+
795
+ .desktop-note {
796
+ display: flex;
797
+ flex-direction: column;
798
+ gap: 8px;
799
+ padding: 14px 16px;
800
+ background: linear-gradient(180deg, rgba(62, 217, 255, 0.1), rgba(255, 255, 255, 0.04));
801
+ }
802
+
803
+ .desktop-note strong {
804
+ font-size: 0.98rem;
805
+ }
806
+
807
+ .status-panel {
808
+ display: grid;
809
+ grid-template-columns: auto minmax(0, 1fr);
810
+ gap: 12px;
811
+ padding: 14px;
812
+ align-items: start;
813
+ }
814
+
815
+ .status-panel-icon {
816
+ width: 40px;
817
+ height: 40px;
818
+ display: grid;
819
+ place-items: center;
820
+ border-radius: 14px;
821
+ background: rgba(143, 125, 255, 0.18);
822
+ }
823
+
824
+ .status-panel-title {
825
+ font-weight: 600;
826
+ margin-bottom: 6px;
827
+ }
828
+
829
+ .connect-form {
830
+ display: flex;
831
+ flex-direction: column;
832
+ gap: 10px;
833
+ }
834
+
835
+ .connect-aux-row,
836
+ .scanner-actions {
837
+ display: flex;
838
+ align-items: center;
839
+ gap: 10px;
840
+ flex-wrap: wrap;
841
+ }
842
+
843
+ .connect-aux-row > .ghost-button {
844
+ flex: 1 1 180px;
845
+ }
846
+
847
+ .field-label,
848
+ .meta-item strong,
849
+ .participant-header span:first-child {
850
+ font-weight: 600;
851
+ }
852
+
853
+ textarea,
854
+ input[type='text'] {
855
+ width: 100%;
856
+ border-radius: var(--radius-md);
857
+ border: 1px solid var(--line-strong);
858
+ background: rgba(255, 255, 255, 0.05);
859
+ color: var(--text);
860
+ padding: 14px 16px;
861
+ resize: vertical;
862
+ min-height: 54px;
863
+ }
864
+
865
+ textarea:focus,
866
+ select:focus,
867
+ button:focus,
868
+ a:focus {
869
+ outline: 2px solid rgba(62, 217, 255, 0.78);
870
+ outline-offset: 2px;
871
+ }
872
+
873
+ .session-meta {
874
+ display: flex;
875
+ flex-direction: column;
876
+ gap: 14px;
877
+ }
878
+
879
+ .meta-grid {
880
+ display: grid;
881
+ grid-template-columns: repeat(2, minmax(0, 1fr));
882
+ gap: 12px;
883
+ }
884
+
885
+ .meta-item {
886
+ padding: 14px;
887
+ display: flex;
888
+ flex-direction: column;
889
+ gap: 6px;
890
+ }
891
+
892
+ .participant-chips,
893
+ .draft-chip-row {
894
+ display: flex;
895
+ flex-wrap: wrap;
896
+ gap: 10px;
897
+ }
898
+
899
+ .participant-pill,
900
+ .draft-chip {
901
+ padding: 10px 12px;
902
+ }
903
+
904
+ .messages-scroll {
905
+ display: flex;
906
+ flex: 1;
907
+ min-height: 60vh;
908
+ max-height: calc(100vh - 240px);
909
+ overflow: auto;
910
+ border-radius: 22px;
911
+ padding: 4px;
912
+ position: relative;
913
+ }
914
+
915
+ .message-list {
916
+ width: 100%;
917
+ display: flex;
918
+ flex-direction: column;
919
+ gap: 12px;
920
+ padding: 8px;
921
+ }
922
+
923
+ .empty-state {
924
+ width: 100%;
925
+ min-height: 100%;
926
+ display: grid;
927
+ place-items: center;
928
+ text-align: center;
929
+ padding: 34px 22px;
930
+ }
931
+
932
+ .empty-icon {
933
+ font-size: 2.4rem;
934
+ margin-bottom: 12px;
935
+ }
936
+
937
+ .message-shell {
938
+ display: flex;
939
+ flex-direction: column;
940
+ gap: 6px;
941
+ max-width: min(78%, 620px);
942
+ }
943
+
944
+ .message-shell.assistant {
945
+ align-self: flex-start;
946
+ }
947
+
948
+ .message-shell.user.own {
949
+ align-self: flex-end;
950
+ }
951
+
952
+ .message-shell.user.peer,
953
+ .message-shell.system {
954
+ align-self: flex-start;
955
+ }
956
+
957
+ .message-shell.system {
958
+ max-width: min(94%, 760px);
959
+ align-self: center;
960
+ }
961
+
962
+ .message-bubble {
963
+ background: rgba(255, 255, 255, 0.05);
964
+ }
965
+
966
+ .message-shell.assistant .message-bubble {
967
+ background: linear-gradient(180deg, rgba(143, 125, 255, 0.18), rgba(255, 255, 255, 0.04));
968
+ }
969
+
970
+ .message-shell.user.own .message-bubble {
971
+ background: linear-gradient(180deg, rgba(62, 217, 255, 0.19), rgba(255, 255, 255, 0.04));
972
+ }
973
+
974
+ .message-shell.user.peer .message-bubble {
975
+ background: rgba(92, 255, 196, 0.11);
976
+ }
977
+
978
+ .message-shell.system .message-bubble {
979
+ background: rgba(255, 255, 255, 0.08);
980
+ }
981
+
982
+ .message-shell.system.error .message-bubble {
983
+ background: rgba(255, 127, 159, 0.14);
984
+ border-color: rgba(255, 127, 159, 0.28);
985
+ }
986
+
987
+ .message-text {
988
+ color: var(--text);
989
+ line-height: 1.6;
990
+ overflow-wrap: anywhere;
991
+ }
992
+
993
+ .message-text p {
994
+ margin: 0 0 10px;
995
+ }
996
+
997
+ .message-text p:last-child,
998
+ .message-text pre:last-child {
999
+ margin-bottom: 0;
1000
+ }
1001
+
1002
+ .message-text code {
1003
+ padding: 2px 6px;
1004
+ border-radius: 8px;
1005
+ background: rgba(255, 255, 255, 0.08);
1006
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1007
+ font-size: 0.92em;
1008
+ }
1009
+
1010
+ .message-text pre {
1011
+ margin: 10px 0;
1012
+ padding: 12px;
1013
+ border-radius: 14px;
1014
+ background: rgba(0, 0, 0, 0.24);
1015
+ overflow: auto;
1016
+ }
1017
+
1018
+ .message-text a {
1019
+ color: var(--accent-2);
1020
+ text-decoration: underline;
1021
+ }
1022
+
1023
+ .mermaid-card {
1024
+ border: 1px solid var(--line);
1025
+ border-radius: 16px;
1026
+ padding: 12px;
1027
+ background: rgba(255, 255, 255, 0.04);
1028
+ }
1029
+
1030
+ .mermaid-card strong {
1031
+ display: block;
1032
+ margin-bottom: 10px;
1033
+ }
1034
+
1035
+ .message-attachments {
1036
+ display: flex;
1037
+ flex-direction: column;
1038
+ gap: 10px;
1039
+ margin-top: 12px;
1040
+ }
1041
+
1042
+ .attachment-card {
1043
+ border: 1px solid var(--line);
1044
+ border-radius: 16px;
1045
+ padding: 12px;
1046
+ background: rgba(0, 0, 0, 0.16);
1047
+ }
1048
+
1049
+ .attachment-card img,
1050
+ .attachment-card video {
1051
+ width: 100%;
1052
+ border-radius: 12px;
1053
+ }
1054
+
1055
+ .attachment-card audio {
1056
+ width: 100%;
1057
+ }
1058
+
1059
+ .attachment-meta {
1060
+ display: flex;
1061
+ align-items: center;
1062
+ justify-content: space-between;
1063
+ gap: 12px;
1064
+ margin-top: 10px;
1065
+ }
1066
+
1067
+ .attachment-name {
1068
+ font-weight: 600;
1069
+ }
1070
+
1071
+ .attachment-size {
1072
+ color: var(--text-muted);
1073
+ font-size: 0.9rem;
1074
+ }
1075
+
1076
+ .message-time {
1077
+ color: var(--text-muted);
1078
+ font-size: 0.82rem;
1079
+ padding: 0 6px;
1080
+ }
1081
+
1082
+ .pending-dots {
1083
+ display: inline-flex;
1084
+ align-items: center;
1085
+ gap: 6px;
1086
+ min-height: 18px;
1087
+ }
1088
+
1089
+ .pending-dots span {
1090
+ width: 8px;
1091
+ height: 8px;
1092
+ border-radius: 999px;
1093
+ background: rgba(255, 255, 255, 0.8);
1094
+ animation: pulse 1.2s ease-in-out infinite;
1095
+ }
1096
+
1097
+ .pending-dots span:nth-child(2) {
1098
+ animation-delay: 0.15s;
1099
+ }
1100
+
1101
+ .pending-dots span:nth-child(3) {
1102
+ animation-delay: 0.3s;
1103
+ }
1104
+
1105
+ .draft-strip {
1106
+ display: flex;
1107
+ flex-direction: column;
1108
+ gap: 10px;
1109
+ padding: 0 4px 10px;
1110
+ }
1111
+
1112
+ .draft-chip {
1113
+ display: inline-flex;
1114
+ align-items: center;
1115
+ gap: 10px;
1116
+ }
1117
+
1118
+ .draft-chip button {
1119
+ border: 0;
1120
+ width: 26px;
1121
+ height: 26px;
1122
+ border-radius: 999px;
1123
+ background: rgba(255, 255, 255, 0.08);
1124
+ color: var(--text);
1125
+ }
1126
+
1127
+ .composer {
1128
+ display: grid;
1129
+ grid-template-columns: auto auto minmax(0, 1fr) auto;
1130
+ gap: 10px;
1131
+ align-items: end;
1132
+ margin-top: 12px;
1133
+ }
1134
+
1135
+ .icon-button {
1136
+ width: 48px;
1137
+ min-width: 48px;
1138
+ padding: 0;
1139
+ font-size: 1.2rem;
1140
+ }
1141
+
1142
+ #composer-input {
1143
+ min-height: 52px;
1144
+ max-height: 160px;
1145
+ resize: none;
1146
+ }
1147
+
1148
+ .send-button {
1149
+ white-space: nowrap;
1150
+ }
1151
+
1152
+ .sheet-overlay {
1153
+ position: fixed;
1154
+ inset: 0;
1155
+ z-index: 20;
1156
+ display: flex;
1157
+ align-items: flex-end;
1158
+ justify-content: center;
1159
+ padding: 18px;
1160
+ background: rgba(4, 7, 14, 0.54);
1161
+ }
1162
+
1163
+ .sheet-card {
1164
+ width: min(100%, 560px);
1165
+ padding: 18px;
1166
+ }
1167
+
1168
+ .scanner-sheet-card {
1169
+ width: min(100%, 640px);
1170
+ }
1171
+
1172
+ .scanner-body {
1173
+ margin-top: 8px;
1174
+ }
1175
+
1176
+ .scanner-preview-frame {
1177
+ position: relative;
1178
+ margin-top: 16px;
1179
+ border-radius: 24px;
1180
+ overflow: hidden;
1181
+ border: 1px solid var(--line);
1182
+ background:
1183
+ radial-gradient(circle at top, rgba(62, 217, 255, 0.1), transparent 40%),
1184
+ rgba(5, 11, 22, 0.92);
1185
+ min-height: 320px;
1186
+ }
1187
+
1188
+ .scanner-video {
1189
+ width: 100%;
1190
+ min-height: 320px;
1191
+ max-height: 62vh;
1192
+ object-fit: cover;
1193
+ display: block;
1194
+ }
1195
+
1196
+ .scanner-guides {
1197
+ position: absolute;
1198
+ inset: 0;
1199
+ pointer-events: none;
1200
+ }
1201
+
1202
+ .scanner-guides::before {
1203
+ content: "";
1204
+ position: absolute;
1205
+ inset: 16% 12%;
1206
+ border-radius: 28px;
1207
+ border: 2px solid rgba(255, 255, 255, 0.78);
1208
+ box-shadow:
1209
+ 0 0 0 999px rgba(3, 8, 18, 0.28),
1210
+ inset 0 0 0 1px rgba(62, 217, 255, 0.3);
1211
+ }
1212
+
1213
+ .scanner-status {
1214
+ margin: 14px 0 0;
1215
+ color: var(--text-soft);
1216
+ }
1217
+
1218
+ .scanner-actions {
1219
+ margin-top: 12px;
1220
+ }
1221
+
1222
+ .command-list {
1223
+ display: flex;
1224
+ flex-direction: column;
1225
+ gap: 10px;
1226
+ margin-top: 14px;
1227
+ max-height: 60vh;
1228
+ overflow: auto;
1229
+ }
1230
+
1231
+ .command-item {
1232
+ width: 100%;
1233
+ text-align: left;
1234
+ padding: 14px;
1235
+ }
1236
+
1237
+ .command-item strong {
1238
+ display: block;
1239
+ margin-bottom: 6px;
1240
+ }
1241
+
1242
+ .command-item p {
1243
+ color: var(--text-soft);
1244
+ margin: 0;
1245
+ }
1246
+
1247
+ .toast-stack {
1248
+ position: fixed;
1249
+ right: 14px;
1250
+ bottom: 14px;
1251
+ z-index: 30;
1252
+ display: flex;
1253
+ flex-direction: column;
1254
+ gap: 10px;
1255
+ }
1256
+
1257
+ .toast {
1258
+ min-width: min(320px, calc(100vw - 28px));
1259
+ padding: 14px 16px;
1260
+ border-radius: 16px;
1261
+ border: 1px solid var(--line);
1262
+ background: rgba(8, 14, 28, 0.92);
1263
+ box-shadow: 0 18px 38px rgba(0, 0, 0, 0.28);
1264
+ }
1265
+
1266
+ .toast.error {
1267
+ border-color: rgba(255, 127, 159, 0.36);
1268
+ }
1269
+
1270
+ @keyframes drift {
1271
+ from {
1272
+ transform: translate3d(0, 0, 0) scale(1);
1273
+ }
1274
+ to {
1275
+ transform: translate3d(20px, 26px, 0) scale(1.12);
1276
+ }
1277
+ }
1278
+
1279
+ @keyframes pulse {
1280
+ 0%,
1281
+ 80%,
1282
+ 100% {
1283
+ opacity: 0.24;
1284
+ transform: scale(0.8);
1285
+ }
1286
+ 40% {
1287
+ opacity: 1;
1288
+ transform: scale(1);
1289
+ }
1290
+ }
1291
+
1292
+ @media (max-width: 1100px) {
1293
+ .hero-grid,
1294
+ .chat-main,
1295
+ .feature-grid,
1296
+ .scenario-grid,
1297
+ .setup-grid {
1298
+ grid-template-columns: 1fr;
1299
+ }
1300
+
1301
+ .session-sidebar {
1302
+ position: static;
1303
+ }
1304
+
1305
+ .chat-card {
1306
+ min-height: auto;
1307
+ }
1308
+
1309
+ .hero-stats {
1310
+ grid-template-columns: 1fr;
1311
+ }
1312
+
1313
+ .community-card {
1314
+ flex-direction: column;
1315
+ }
1316
+ }
1317
+
1318
+ @media (max-width: 720px) {
1319
+ .site-shell {
1320
+ width: min(100vw - 20px, 100%);
1321
+ padding-top: 12px;
1322
+ }
1323
+
1324
+ .topbar,
1325
+ .footer-bar,
1326
+ .chat-header,
1327
+ .session-sidebar,
1328
+ .chat-card,
1329
+ .community-card,
1330
+ .sheet-card {
1331
+ border-radius: 22px;
1332
+ }
1333
+
1334
+ .topbar,
1335
+ .footer-bar,
1336
+ .chat-header {
1337
+ align-items: flex-start;
1338
+ flex-direction: column;
1339
+ }
1340
+
1341
+ .footer-legal {
1342
+ align-items: flex-start;
1343
+ text-align: left;
1344
+ }
1345
+
1346
+ .hero-title {
1347
+ max-width: none;
1348
+ }
1349
+
1350
+ .phone-shell {
1351
+ width: min(92%, 360px);
1352
+ margin: 26px auto;
1353
+ }
1354
+
1355
+ .phone-screen {
1356
+ min-height: 460px;
1357
+ }
1358
+
1359
+ .meta-grid,
1360
+ .hero-stats,
1361
+ .store-button-grid {
1362
+ grid-template-columns: 1fr;
1363
+ }
1364
+
1365
+ .composer {
1366
+ grid-template-columns: auto auto minmax(0, 1fr);
1367
+ }
1368
+
1369
+ .send-button {
1370
+ grid-column: 1 / -1;
1371
+ width: 100%;
1372
+ }
1373
+
1374
+ .message-shell {
1375
+ max-width: 92%;
1376
+ }
1377
+
1378
+ .messages-scroll {
1379
+ max-height: calc(100vh - 300px);
1380
+ }
1381
+
1382
+ .connect-aux-row,
1383
+ .scanner-actions {
1384
+ flex-direction: column;
1385
+ }
1386
+
1387
+ .connect-aux-row > .ghost-button {
1388
+ width: 100%;
1389
+ }
1390
+ }