clay-server 2.12.0 → 2.13.0-beta.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.
@@ -0,0 +1,1018 @@
1
+ /* === Mate Wizard === */
2
+
3
+ #mate-wizard {
4
+ position: fixed;
5
+ inset: 0;
6
+ z-index: 9999;
7
+ display: flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ }
11
+ #mate-wizard.hidden { display: none; }
12
+
13
+ .mate-wizard-backdrop {
14
+ position: absolute;
15
+ inset: 0;
16
+ background: rgba(var(--shadow-rgb, 0,0,0), 0.5);
17
+ backdrop-filter: blur(2px);
18
+ -webkit-backdrop-filter: blur(2px);
19
+ }
20
+ .mate-wizard-card {
21
+ position: relative;
22
+ background: var(--bg-alt, #0d0d1a);
23
+ border: 1px solid var(--border, #333);
24
+ border-radius: 14px;
25
+ width: 520px;
26
+ max-width: 95vw;
27
+ max-height: 85vh;
28
+ display: flex;
29
+ flex-direction: column;
30
+ box-shadow: 0 8px 32px rgba(var(--shadow-rgb, 0,0,0), 0.4);
31
+ }
32
+ .mate-wizard-header {
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: space-between;
36
+ padding: 16px 20px;
37
+ border-bottom: 1px solid var(--border, #333);
38
+ font-weight: 700;
39
+ font-size: 15px;
40
+ color: var(--text, #fff);
41
+ }
42
+ .mate-wizard-header button {
43
+ background: none;
44
+ border: none;
45
+ color: var(--text-secondary, #999);
46
+ font-size: 20px;
47
+ cursor: pointer;
48
+ padding: 0 4px;
49
+ line-height: 1;
50
+ }
51
+ .mate-wizard-header button:hover {
52
+ color: var(--text, #fff);
53
+ }
54
+
55
+ /* Progress dots */
56
+ .mate-wizard-progress {
57
+ display: flex;
58
+ justify-content: center;
59
+ gap: 8px;
60
+ padding: 14px 20px 6px;
61
+ }
62
+ .mate-dot {
63
+ width: 8px;
64
+ height: 8px;
65
+ border-radius: 50%;
66
+ background: var(--border, #333);
67
+ transition: background 0.2s ease;
68
+ }
69
+ .mate-dot.active {
70
+ background: var(--accent, #6c5ce7);
71
+ }
72
+ .mate-dot.done {
73
+ background: var(--text-secondary, #999);
74
+ }
75
+
76
+ /* Steps container */
77
+ .mate-wizard-steps {
78
+ padding: 16px 20px 8px;
79
+ flex: 1;
80
+ overflow-y: auto;
81
+ }
82
+ .mate-step {
83
+ display: none;
84
+ }
85
+ .mate-step.active {
86
+ display: block;
87
+ animation: mateFadeIn 0.2s ease;
88
+ }
89
+ @keyframes mateFadeIn {
90
+ from { opacity: 0; transform: translateY(4px); }
91
+ to { opacity: 1; transform: translateY(0); }
92
+ }
93
+ .mate-step h3 {
94
+ margin: 0 0 6px;
95
+ font-size: 16px;
96
+ color: var(--text);
97
+ }
98
+ .mate-hint {
99
+ margin: 0 0 14px;
100
+ font-size: 13px;
101
+ color: var(--text-muted, #9ea8c7);
102
+ line-height: 1.4;
103
+ }
104
+
105
+ /* Step 1: Relationship cards */
106
+ .mate-card-grid {
107
+ display: grid;
108
+ grid-template-columns: repeat(3, 1fr);
109
+ gap: 8px;
110
+ margin-bottom: 12px;
111
+ }
112
+ .mate-card {
113
+ display: flex;
114
+ flex-direction: column;
115
+ align-items: center;
116
+ gap: 6px;
117
+ padding: 14px 8px;
118
+ background: var(--input-bg, #1a1a2e);
119
+ border: 2px solid var(--border, #333);
120
+ border-radius: 10px;
121
+ cursor: pointer;
122
+ transition: border-color 0.15s, background 0.15s;
123
+ color: var(--text, #fff);
124
+ font-family: inherit;
125
+ font-size: 13px;
126
+ }
127
+ .mate-card:hover {
128
+ border-color: var(--text-dimmer, #6272a4);
129
+ }
130
+ .mate-card.selected {
131
+ border-color: var(--accent, #6c5ce7);
132
+ background: var(--accent-bg, rgba(108,92,231,0.12));
133
+ }
134
+ .mate-card-emoji {
135
+ font-size: 24px;
136
+ line-height: 1;
137
+ }
138
+ .mate-card-label {
139
+ font-weight: 600;
140
+ font-size: 13px;
141
+ }
142
+ .mate-card-desc {
143
+ font-size: 11px;
144
+ color: var(--text-secondary);
145
+ font-weight: 500;
146
+ line-height: 1.3;
147
+ }
148
+
149
+ /* Custom input (shared) */
150
+ .mate-custom-input {
151
+ width: 100%;
152
+ padding: 8px 12px;
153
+ background: var(--input-bg, #1a1a2e);
154
+ border: 1px solid var(--border, #333);
155
+ border-radius: 6px;
156
+ color: var(--text, #fff);
157
+ font-size: 13px;
158
+ font-family: inherit;
159
+ box-sizing: border-box;
160
+ }
161
+ .mate-custom-input:focus {
162
+ border-color: var(--accent, #6c5ce7);
163
+ outline: none;
164
+ }
165
+ .mate-custom-input::placeholder {
166
+ color: var(--text-dimmer, #6272a4);
167
+ }
168
+ .mate-custom-input.hidden {
169
+ display: none;
170
+ }
171
+
172
+ /* Step 2: Activity tags */
173
+ .mate-tag-grid {
174
+ display: flex;
175
+ flex-wrap: wrap;
176
+ gap: 8px;
177
+ margin-bottom: 12px;
178
+ }
179
+ .mate-tag {
180
+ padding: 7px 14px;
181
+ background: var(--input-bg, #1a1a2e);
182
+ border: 2px solid var(--border, #333);
183
+ border-radius: 20px;
184
+ cursor: pointer;
185
+ transition: border-color 0.15s, background 0.15s;
186
+ color: var(--text, #fff);
187
+ font-family: inherit;
188
+ font-size: 13px;
189
+ font-weight: 500;
190
+ }
191
+ .mate-tag:hover {
192
+ border-color: var(--text-dimmer, #6272a4);
193
+ }
194
+ .mate-tag.selected {
195
+ border-color: var(--accent, #6c5ce7);
196
+ background: var(--accent-bg, rgba(108,92,231,0.12));
197
+ }
198
+
199
+ /* Step 3: Sliders */
200
+ .mate-slider-group {
201
+ display: flex;
202
+ flex-direction: column;
203
+ gap: 24px;
204
+ padding: 8px 0 16px;
205
+ }
206
+ .mate-slider-row {
207
+ display: flex;
208
+ align-items: center;
209
+ gap: 12px;
210
+ }
211
+ .mate-slider-label-left,
212
+ .mate-slider-label-right {
213
+ font-size: 13px;
214
+ color: var(--text-muted, #9ea8c7);
215
+ min-width: 60px;
216
+ font-weight: 500;
217
+ }
218
+ .mate-slider-label-left {
219
+ text-align: right;
220
+ }
221
+ .mate-slider-label-right {
222
+ text-align: left;
223
+ }
224
+ .mate-slider {
225
+ flex: 1;
226
+ -webkit-appearance: none;
227
+ appearance: none;
228
+ height: 6px;
229
+ border-radius: 3px;
230
+ background: var(--border, #333);
231
+ outline: none;
232
+ }
233
+ .mate-slider::-webkit-slider-thumb {
234
+ -webkit-appearance: none;
235
+ appearance: none;
236
+ width: 18px;
237
+ height: 18px;
238
+ border-radius: 50%;
239
+ background: var(--accent, #6c5ce7);
240
+ cursor: pointer;
241
+ border: 2px solid var(--bg-alt, #0d0d1a);
242
+ }
243
+ .mate-slider::-moz-range-thumb {
244
+ width: 18px;
245
+ height: 18px;
246
+ border-radius: 50%;
247
+ background: var(--accent, #6c5ce7);
248
+ cursor: pointer;
249
+ border: 2px solid var(--bg-alt, #0d0d1a);
250
+ }
251
+
252
+ /* Step 3: Communication style cards */
253
+ .mate-style-grid {
254
+ display: grid;
255
+ grid-template-columns: 1fr 1fr;
256
+ gap: 8px;
257
+ }
258
+ .mate-style-card {
259
+ display: flex;
260
+ flex-direction: column;
261
+ align-items: flex-start;
262
+ gap: 6px;
263
+ padding: 12px 14px;
264
+ background: var(--input-bg, #1a1a2e);
265
+ border: 2px solid var(--border, #333);
266
+ border-radius: 10px;
267
+ cursor: pointer;
268
+ transition: border-color 0.15s, background 0.15s;
269
+ text-align: left;
270
+ color: var(--text, #fff);
271
+ font-family: inherit;
272
+ }
273
+ .mate-style-card:hover {
274
+ border-color: var(--text-dimmer, #6272a4);
275
+ }
276
+ .mate-style-card.selected {
277
+ border-color: var(--accent, #6c5ce7);
278
+ background: var(--accent-bg, rgba(108,92,231,0.12));
279
+ }
280
+ .mate-style-label {
281
+ font-weight: 600;
282
+ font-size: 13px;
283
+ }
284
+ .mate-style-example {
285
+ font-size: 11px;
286
+ color: var(--text-secondary);
287
+ font-weight: 500;
288
+ font-style: italic;
289
+ line-height: 1.4;
290
+ }
291
+
292
+ /* Step 4: Autonomy options */
293
+ .mate-autonomy-options {
294
+ display: flex;
295
+ flex-direction: column;
296
+ gap: 8px;
297
+ }
298
+ .mate-autonomy-btn {
299
+ display: flex;
300
+ flex-direction: column;
301
+ align-items: flex-start;
302
+ gap: 2px;
303
+ padding: 12px 16px;
304
+ background: var(--input-bg, #1a1a2e);
305
+ border: 2px solid var(--border, #333);
306
+ border-radius: 10px;
307
+ cursor: pointer;
308
+ transition: border-color 0.15s, background 0.15s;
309
+ text-align: left;
310
+ color: var(--text, #fff);
311
+ font-family: inherit;
312
+ }
313
+ .mate-autonomy-btn:hover {
314
+ border-color: var(--text-dimmer, #6272a4);
315
+ }
316
+ .mate-autonomy-btn.active {
317
+ border-color: var(--accent, #6c5ce7);
318
+ background: var(--accent-bg, rgba(108,92,231,0.12));
319
+ }
320
+ .mate-autonomy-title {
321
+ font-weight: 600;
322
+ font-size: 14px;
323
+ }
324
+ .mate-autonomy-desc {
325
+ font-size: 12px;
326
+ color: var(--text-muted, #9ea8c7);
327
+ }
328
+
329
+ /* Footer */
330
+ .mate-wizard-footer {
331
+ display: flex;
332
+ align-items: center;
333
+ justify-content: space-between;
334
+ padding: 12px 20px;
335
+ border-top: 1px solid var(--border, #333);
336
+ }
337
+ .mate-wizard-footer > div {
338
+ display: flex;
339
+ gap: 8px;
340
+ }
341
+
342
+ /* Buttons */
343
+ .mate-btn {
344
+ padding: 7px 16px;
345
+ border-radius: 8px;
346
+ font-size: 13px;
347
+ font-weight: 500;
348
+ font-family: inherit;
349
+ cursor: pointer;
350
+ border: none;
351
+ transition: opacity 0.15s;
352
+ }
353
+ .mate-btn.primary {
354
+ background: var(--accent, #6c5ce7);
355
+ color: #fff;
356
+ }
357
+ .mate-btn.primary:hover {
358
+ opacity: 0.9;
359
+ }
360
+ .mate-btn.secondary {
361
+ background: var(--input-bg, #2a2a3e);
362
+ color: var(--text, #fff);
363
+ border: 1px solid var(--border, #333);
364
+ }
365
+ .mate-btn.secondary:hover {
366
+ background: var(--border, #333);
367
+ }
368
+
369
+ /* === Mate badge in user strip === */
370
+ .icon-strip-user-mate-badge {
371
+ position: absolute;
372
+ bottom: 0;
373
+ right: 0;
374
+ width: 14px;
375
+ height: 14px;
376
+ background: var(--accent, #6c5ce7);
377
+ border-radius: 50%;
378
+ border: 2px solid var(--bg, #282a36);
379
+ display: flex;
380
+ align-items: center;
381
+ justify-content: center;
382
+ }
383
+ .icon-strip-user-mate-badge svg {
384
+ width: 8px;
385
+ height: 8px;
386
+ color: #fff;
387
+ }
388
+
389
+ /* Mate item in DM picker */
390
+ .dm-user-picker-section {
391
+ padding: 6px 10px 2px;
392
+ font-size: 10px;
393
+ font-weight: 700;
394
+ text-transform: uppercase;
395
+ letter-spacing: 0.5px;
396
+ color: var(--text-dimmer, #6272a4);
397
+ }
398
+ .dm-user-picker-create-mate {
399
+ display: flex;
400
+ align-items: center;
401
+ gap: 8px;
402
+ padding: 8px 10px;
403
+ cursor: pointer;
404
+ border-radius: 6px;
405
+ transition: background 0.12s;
406
+ color: var(--accent, #6c5ce7);
407
+ font-size: 13px;
408
+ font-weight: 600;
409
+ }
410
+ .dm-user-picker-create-mate:hover {
411
+ background: var(--accent-bg, rgba(108,92,231,0.12));
412
+ }
413
+ .dm-user-picker-create-mate svg {
414
+ width: 16px;
415
+ height: 16px;
416
+ }
417
+
418
+ /* DM header mate indicator */
419
+ .dm-header-mate-tag {
420
+ display: inline-block;
421
+ padding: 1px 6px;
422
+ background: var(--accent-bg, rgba(108,92,231,0.12));
423
+ color: var(--accent, #6c5ce7);
424
+ border-radius: 4px;
425
+ font-size: 10px;
426
+ font-weight: 700;
427
+ text-transform: uppercase;
428
+ letter-spacing: 0.3px;
429
+ margin-left: 6px;
430
+ }
431
+
432
+ /* Responsive */
433
+ @media (max-width: 560px) {
434
+ .mate-wizard-card {
435
+ width: 100%;
436
+ max-width: 100vw;
437
+ border-radius: 14px 14px 0 0;
438
+ max-height: 90vh;
439
+ }
440
+ .mate-card-grid {
441
+ grid-template-columns: repeat(2, 1fr);
442
+ }
443
+ }
444
+
445
+ /* === Mate Profile Popover === */
446
+
447
+ .mate-profile-popover {
448
+ position: fixed !important;
449
+ bottom: auto !important;
450
+ background: var(--bg-alt);
451
+ border: 1px solid var(--border);
452
+ border-radius: 14px;
453
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.35);
454
+ overflow: visible;
455
+ width: 280px;
456
+ }
457
+
458
+ /* === Mate Sidebar === */
459
+
460
+ #mate-sidebar-column {
461
+ display: flex;
462
+ flex-direction: column;
463
+ width: 260px;
464
+ min-width: 200px;
465
+ max-width: 360px;
466
+ background: var(--sidebar-bg, var(--bg-secondary, #1a1a2e));
467
+ border-right: 1px solid var(--sidebar-border, var(--border, rgba(255,255,255,0.06)));
468
+ overflow: hidden;
469
+ flex-shrink: 0;
470
+ }
471
+
472
+ #mate-sidebar-column.hidden {
473
+ display: none !important;
474
+ }
475
+
476
+ .mate-sidebar-header {
477
+ display: flex;
478
+ align-items: center;
479
+ gap: 10px;
480
+ height: 48px;
481
+ padding: 0 12px;
482
+ border-bottom: 1px solid var(--border-subtle);
483
+ flex-shrink: 0;
484
+ }
485
+
486
+ .mate-sidebar-header {
487
+ cursor: pointer;
488
+ }
489
+
490
+ .mate-sidebar-header .mate-sidebar-name {
491
+ color: #fff;
492
+ text-shadow: 0 1px 2px rgba(0,0,0,0.2);
493
+ flex: 1;
494
+ }
495
+
496
+ .mate-sidebar-header .mate-sidebar-avatar {
497
+ border: 2px solid rgba(255,255,255,0.3);
498
+ }
499
+
500
+ /* Engrave effect (Ten Commandments style) */
501
+ @keyframes engrave-char {
502
+ 0% {
503
+ opacity: 0;
504
+ transform: scale(2.5) translateY(-4px);
505
+ color: #fff700;
506
+ text-shadow: 0 0 20px #fff700, 0 0 40px #ff8c00, 0 0 60px #ff4500;
507
+ }
508
+ 30% {
509
+ opacity: 1;
510
+ transform: scale(1.3) translateY(-1px);
511
+ color: #fffbe6;
512
+ text-shadow: 0 0 14px #fff700, 0 0 28px #ff8c00;
513
+ }
514
+ 60% {
515
+ transform: scale(1.05);
516
+ color: #fff;
517
+ text-shadow: 0 0 8px rgba(255,255,255,0.6);
518
+ }
519
+ 100% {
520
+ opacity: 1;
521
+ transform: scale(1);
522
+ color: #fff;
523
+ text-shadow: 0 1px 2px rgba(0,0,0,0.2);
524
+ }
525
+ }
526
+
527
+ .mate-engrave-spark {
528
+ position: fixed;
529
+ width: 4px;
530
+ height: 4px;
531
+ border-radius: 50%;
532
+ pointer-events: none;
533
+ z-index: 99999;
534
+ animation: engrave-spark 0.6s ease-out forwards;
535
+ }
536
+
537
+ @keyframes engrave-spark {
538
+ 0% {
539
+ opacity: 1;
540
+ transform: translate(0, 0) scale(1.5);
541
+ box-shadow: 0 0 6px 2px var(--spark-color, #fff700);
542
+ }
543
+ 50% {
544
+ opacity: 0.8;
545
+ box-shadow: 0 0 3px 1px var(--spark-color, #ff8c00);
546
+ }
547
+ 100% {
548
+ opacity: 0;
549
+ transform: translate(var(--dx), var(--dy)) scale(0);
550
+ box-shadow: none;
551
+ }
552
+ }
553
+
554
+ /* Flash the header background on engrave */
555
+ @keyframes engrave-header-flash {
556
+ 0% { filter: brightness(1); }
557
+ 15% { filter: brightness(1.6); }
558
+ 100% { filter: brightness(1); }
559
+ }
560
+
561
+ .mate-sidebar-chevron {
562
+ width: 14px;
563
+ height: 14px;
564
+ color: rgba(255,255,255,0.6);
565
+ transition: transform 0.2s;
566
+ flex-shrink: 0;
567
+ }
568
+
569
+ .mate-sidebar-header.expanded .mate-sidebar-chevron {
570
+ transform: rotate(180deg);
571
+ }
572
+
573
+ /* Seed data panel */
574
+ .mate-sidebar-seed {
575
+ padding: 10px 14px;
576
+ border-bottom: 1px solid var(--border-subtle);
577
+ font-size: 12px;
578
+ color: var(--text-secondary);
579
+ display: flex;
580
+ flex-direction: column;
581
+ gap: 6px;
582
+ flex-shrink: 0;
583
+ }
584
+ .mate-sidebar-seed.hidden {
585
+ display: none;
586
+ }
587
+ .mate-sidebar-seed-row {
588
+ display: flex;
589
+ gap: 6px;
590
+ align-items: baseline;
591
+ }
592
+ .mate-sidebar-seed-label {
593
+ font-weight: 600;
594
+ font-size: 10px;
595
+ text-transform: uppercase;
596
+ letter-spacing: 0.03em;
597
+ color: var(--text-muted);
598
+ min-width: 70px;
599
+ flex-shrink: 0;
600
+ }
601
+ .mate-sidebar-seed-value {
602
+ font-size: 12px;
603
+ color: var(--text);
604
+ }
605
+ .mate-sidebar-seed-tags {
606
+ display: flex;
607
+ flex-wrap: wrap;
608
+ gap: 4px;
609
+ }
610
+ .mate-sidebar-seed-tag {
611
+ font-size: 10px;
612
+ padding: 1px 6px;
613
+ background: var(--bg-alt);
614
+ border: 1px solid var(--border-subtle);
615
+ border-radius: 4px;
616
+ color: var(--text-secondary);
617
+ }
618
+
619
+ .mate-sidebar-avatar {
620
+ width: 28px;
621
+ height: 28px;
622
+ border-radius: 50%;
623
+ object-fit: cover;
624
+ flex-shrink: 0;
625
+ }
626
+
627
+ .mate-sidebar-name {
628
+ font-size: 14px;
629
+ font-weight: 600;
630
+ color: var(--text-primary, #e0e0e0);
631
+ white-space: nowrap;
632
+ overflow: hidden;
633
+ text-overflow: ellipsis;
634
+ }
635
+
636
+ #mate-sidebar-tools {
637
+ display: flex;
638
+ flex-direction: column;
639
+ padding: 8px 8px 4px;
640
+ flex-shrink: 0;
641
+ border-bottom: 1px solid var(--border-subtle);
642
+ }
643
+
644
+ #mate-sidebar-tools button {
645
+ display: flex;
646
+ align-items: center;
647
+ gap: 10px;
648
+ padding: 6px 10px;
649
+ border: none;
650
+ background: none;
651
+ color: var(--text-muted);
652
+ font-size: 13px;
653
+ font-weight: 600;
654
+ font-family: inherit;
655
+ border-radius: 8px;
656
+ cursor: pointer;
657
+ transition: background 0.15s, color 0.15s;
658
+ }
659
+
660
+ #mate-sidebar-tools button:hover {
661
+ background: var(--sidebar-hover);
662
+ color: var(--text-secondary);
663
+ }
664
+
665
+ #mate-sidebar-tools button svg {
666
+ width: 16px;
667
+ height: 16px;
668
+ }
669
+
670
+ /* Knowledge Panel (full screen like sticky notes) */
671
+ #mate-knowledge-container {
672
+ position: absolute;
673
+ inset: 0;
674
+ z-index: 100;
675
+ background: var(--bg);
676
+ display: flex;
677
+ flex-direction: column;
678
+ overflow: hidden;
679
+ }
680
+ #mate-knowledge-container.hidden {
681
+ display: none;
682
+ }
683
+
684
+ .mate-knowledge-header {
685
+ display: flex;
686
+ align-items: center;
687
+ padding: 10px 16px;
688
+ flex-shrink: 0;
689
+ }
690
+ .mate-knowledge-title-wrap {
691
+ display: flex;
692
+ align-items: baseline;
693
+ gap: 6px;
694
+ flex: 1;
695
+ }
696
+ .mate-knowledge-title-wrap .lucide {
697
+ width: 15px;
698
+ height: 15px;
699
+ color: var(--accent);
700
+ flex-shrink: 0;
701
+ align-self: center;
702
+ }
703
+ .mate-knowledge-title-wrap h2 {
704
+ font-size: 15px;
705
+ font-weight: 700;
706
+ color: var(--text);
707
+ margin: 0;
708
+ }
709
+ .mate-knowledge-count {
710
+ font-size: 11px;
711
+ font-weight: 600;
712
+ color: var(--text-dimmer);
713
+ margin-left: 2px;
714
+ }
715
+ .mate-knowledge-header-actions {
716
+ display: flex;
717
+ align-items: center;
718
+ gap: 2px;
719
+ margin-left: auto;
720
+ }
721
+ .mate-knowledge-header-actions button {
722
+ display: flex;
723
+ align-items: center;
724
+ justify-content: center;
725
+ width: 30px;
726
+ height: 30px;
727
+ border: none;
728
+ border-radius: 6px;
729
+ background: none;
730
+ color: var(--text-muted);
731
+ cursor: pointer;
732
+ transition: background 0.12s, color 0.12s;
733
+ }
734
+ .mate-knowledge-header-actions button:hover {
735
+ background: rgba(var(--overlay-rgb), 0.08);
736
+ color: var(--text);
737
+ }
738
+ .mate-knowledge-header-actions button .lucide {
739
+ width: 16px;
740
+ height: 16px;
741
+ }
742
+
743
+ .mate-knowledge-grid {
744
+ flex: 1;
745
+ overflow-y: auto;
746
+ padding: 20px;
747
+ display: grid;
748
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
749
+ gap: 12px;
750
+ align-content: start;
751
+ }
752
+
753
+ .mate-knowledge-tile {
754
+ background: var(--bg-alt);
755
+ border: 1px solid var(--border-subtle);
756
+ border-radius: 10px;
757
+ padding: 14px 16px;
758
+ cursor: pointer;
759
+ transition: border-color 0.15s, box-shadow 0.15s;
760
+ display: flex;
761
+ flex-direction: column;
762
+ gap: 8px;
763
+ min-height: 100px;
764
+ max-height: 180px;
765
+ overflow: hidden;
766
+ }
767
+ .mate-knowledge-tile:hover {
768
+ border-color: var(--border);
769
+ box-shadow: 0 2px 8px rgba(0,0,0,0.1);
770
+ }
771
+
772
+ .mate-knowledge-tile-add {
773
+ background: none;
774
+ border: 2px dashed var(--border);
775
+ align-items: center;
776
+ justify-content: center;
777
+ text-align: center;
778
+ gap: 10px;
779
+ color: var(--text-muted);
780
+ transition: border-color 0.15s, color 0.15s;
781
+ }
782
+ .mate-knowledge-tile-add:hover {
783
+ border-color: var(--accent);
784
+ color: var(--accent);
785
+ background: none;
786
+ box-shadow: none;
787
+ }
788
+ .mate-knowledge-add-icon {
789
+ display: flex;
790
+ align-items: center;
791
+ justify-content: center;
792
+ }
793
+ .mate-knowledge-add-icon svg {
794
+ width: 24px;
795
+ height: 24px;
796
+ }
797
+ .mate-knowledge-add-label {
798
+ font-size: 13px;
799
+ font-weight: 600;
800
+ }
801
+ .mate-knowledge-tile-title {
802
+ font-size: 13px;
803
+ font-weight: 700;
804
+ color: var(--text);
805
+ white-space: nowrap;
806
+ overflow: hidden;
807
+ text-overflow: ellipsis;
808
+ }
809
+ .mate-knowledge-tile-preview {
810
+ font-size: 12px;
811
+ color: var(--text-muted);
812
+ line-height: 1.5;
813
+ overflow: hidden;
814
+ flex: 1;
815
+ display: -webkit-box;
816
+ -webkit-line-clamp: 5;
817
+ -webkit-box-orient: vertical;
818
+ }
819
+
820
+ .mate-knowledge-empty {
821
+ grid-column: 1 / -1;
822
+ text-align: center;
823
+ padding: 40px 20px;
824
+ color: var(--text-dimmer);
825
+ font-size: 14px;
826
+ }
827
+
828
+ /* Knowledge Editor Modal */
829
+ #mate-knowledge-editor {
830
+ position: fixed;
831
+ inset: 0;
832
+ z-index: 10000;
833
+ display: flex;
834
+ align-items: center;
835
+ justify-content: center;
836
+ }
837
+ #mate-knowledge-editor.hidden {
838
+ display: none;
839
+ }
840
+ .mate-knowledge-editor-backdrop {
841
+ position: absolute;
842
+ inset: 0;
843
+ background: rgba(0,0,0,0.5);
844
+ }
845
+ .mate-knowledge-editor-card {
846
+ position: relative;
847
+ width: 720px;
848
+ max-width: 90vw;
849
+ max-height: 85vh;
850
+ background: var(--bg-alt);
851
+ border: 1px solid var(--border);
852
+ border-radius: 14px;
853
+ box-shadow: 0 8px 30px rgba(0,0,0,0.35);
854
+ display: flex;
855
+ flex-direction: column;
856
+ overflow: hidden;
857
+ }
858
+ .mate-knowledge-editor-header {
859
+ display: flex;
860
+ align-items: center;
861
+ gap: 8px;
862
+ padding: 12px 16px;
863
+ border-bottom: 1px solid var(--border-subtle);
864
+ }
865
+ .mate-knowledge-editor-header input {
866
+ flex: 1;
867
+ background: none;
868
+ border: none;
869
+ color: var(--text);
870
+ font-size: 15px;
871
+ font-weight: 600;
872
+ font-family: inherit;
873
+ outline: none;
874
+ }
875
+ .mate-knowledge-editor-header button {
876
+ background: none;
877
+ border: none;
878
+ color: var(--text-muted);
879
+ font-size: 20px;
880
+ cursor: pointer;
881
+ padding: 2px 6px;
882
+ border-radius: 6px;
883
+ }
884
+ .mate-knowledge-editor-header button:hover {
885
+ color: var(--text);
886
+ }
887
+ #mate-knowledge-editor-content {
888
+ flex: 1;
889
+ min-height: 400px;
890
+ padding: 16px;
891
+ background: none;
892
+ border: none;
893
+ color: var(--text);
894
+ font-size: 14px;
895
+ font-family: inherit;
896
+ line-height: 1.7;
897
+ resize: none;
898
+ outline: none;
899
+ }
900
+ .mate-knowledge-editor-footer {
901
+ display: flex;
902
+ align-items: center;
903
+ justify-content: flex-end;
904
+ gap: 8px;
905
+ padding: 12px 16px;
906
+ border-top: 1px solid var(--border-subtle);
907
+ }
908
+
909
+ .mate-sidebar-sessions-header {
910
+ display: flex;
911
+ align-items: center;
912
+ justify-content: space-between;
913
+ padding: 10px 12px 6px;
914
+ flex-shrink: 0;
915
+ }
916
+
917
+ .mate-sidebar-sessions-header > span {
918
+ font-size: 11px;
919
+ font-weight: 600;
920
+ text-transform: uppercase;
921
+ letter-spacing: 0.04em;
922
+ color: var(--text-muted);
923
+ }
924
+
925
+ .mate-sidebar-actions {
926
+ display: flex;
927
+ gap: 4px;
928
+ }
929
+
930
+ .mate-sidebar-actions button {
931
+ background: none;
932
+ border: none;
933
+ color: var(--text-secondary, #888);
934
+ cursor: pointer;
935
+ padding: 4px;
936
+ border-radius: 6px;
937
+ display: flex;
938
+ align-items: center;
939
+ justify-content: center;
940
+ transition: background 0.15s, color 0.15s;
941
+ }
942
+
943
+ .mate-sidebar-actions button:hover {
944
+ background: var(--bg-hover, rgba(255,255,255,0.06));
945
+ color: var(--text-primary, #e0e0e0);
946
+ }
947
+
948
+ .mate-sidebar-actions button svg {
949
+ width: 16px;
950
+ height: 16px;
951
+ }
952
+
953
+ .mate-session-list {
954
+ flex: 1;
955
+ overflow-y: auto;
956
+ padding: 4px 6px;
957
+ }
958
+
959
+ .mate-session-empty {
960
+ padding: 24px 16px;
961
+ text-align: center;
962
+ font-size: 13px;
963
+ color: var(--text-secondary, #888);
964
+ opacity: 0.6;
965
+ }
966
+
967
+ .mate-session-item {
968
+ position: relative;
969
+ display: flex;
970
+ align-items: center;
971
+ gap: 4px;
972
+ padding: 0 36px 0 12px;
973
+ height: 34px;
974
+ border-radius: 10px;
975
+ cursor: pointer;
976
+ font-size: 13px;
977
+ font-weight: 600;
978
+ color: var(--text-muted);
979
+ margin-bottom: 0;
980
+ transition: background 0.35s ease, color 0.35s ease;
981
+ }
982
+
983
+ .mate-session-item:hover {
984
+ background: var(--sidebar-hover);
985
+ color: var(--text-secondary);
986
+ }
987
+
988
+ .mate-session-item.active {
989
+ background: var(--sidebar-active);
990
+ color: var(--text);
991
+ font-weight: 600;
992
+ }
993
+
994
+ .mate-session-item-text {
995
+ flex: 1;
996
+ overflow: hidden;
997
+ text-overflow: ellipsis;
998
+ white-space: nowrap;
999
+ min-width: 0;
1000
+ }
1001
+
1002
+ .mate-session-time {
1003
+ font-size: 11px;
1004
+ color: var(--text-muted);
1005
+ flex-shrink: 0;
1006
+ position: absolute;
1007
+ right: 8px;
1008
+ }
1009
+
1010
+ .mate-session-processing {
1011
+ display: inline-block;
1012
+ width: 6px;
1013
+ height: 6px;
1014
+ border-radius: 50%;
1015
+ background: var(--success);
1016
+ margin-right: 8px;
1017
+ vertical-align: middle;
1018
+ }