fraim-framework 2.0.146 → 2.0.148

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.
@@ -1,19 +1,19 @@
1
1
  :root {
2
2
  color-scheme: light;
3
- --bg: #f4f6f2;
4
- --surface: #ffffff;
5
- --soft: #f7faf6;
6
- --line: #e3e8df;
7
- --text: #1f2a24;
8
- --muted: #6b7a72;
9
- --accent: #3d8a6e;
10
- --accent-strong: #2f7359;
11
- --accent-soft: #eaf3ee;
3
+ --bg: #ebe4d7;
4
+ --surface: #f8f4eb;
5
+ --soft: #f1ebde;
6
+ --line: #d7cdbf;
7
+ --text: #231e17;
8
+ --muted: #7c6f61;
9
+ --accent: #1f437d;
10
+ --accent-strong: #16345f;
11
+ --accent-soft: #dfe7f5;
12
12
  --warn: #b08442;
13
13
  --warn-soft: #fffaf0;
14
14
  --danger: #a24747;
15
- --shadow: 0 1px 2px rgba(20, 40, 30, 0.04);
16
- --shadow-lg: 0 12px 36px rgba(20, 40, 30, 0.18);
15
+ --shadow: 0 1px 2px rgba(35, 30, 23, 0.05);
16
+ --shadow-lg: 0 18px 48px rgba(35, 30, 23, 0.16);
17
17
  /* Issue #347 — picker group dots. Decorative only; the picker uses
18
18
  these to scan groups by color without adding semantic weight. Kept
19
19
  as variables so future themes flow through here. */
@@ -27,9 +27,11 @@ html, body { margin: 0; padding: 0; }
27
27
 
28
28
  html, body { height: 100%; }
29
29
  body {
30
- font-family: -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
30
+ font-family: "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
31
31
  color: var(--text);
32
- background: var(--bg);
32
+ background:
33
+ radial-gradient(circle at top left, rgba(255, 255, 255, 0.45), transparent 28%),
34
+ linear-gradient(180deg, #efe8dc 0%, var(--bg) 100%);
33
35
  line-height: 1.5;
34
36
  font-size: 15px;
35
37
  /* Issue #339 fix: bound the page to the viewport. The conversation
@@ -40,8 +42,9 @@ body {
40
42
  button { font: inherit; cursor: pointer; }
41
43
 
42
44
  .page {
43
- max-width: 1080px;
44
- margin: 0 auto;
45
+ max-width: none;
46
+ width: 100%;
47
+ margin: 0;
45
48
  padding: 24px;
46
49
  display: flex;
47
50
  flex-direction: column;
@@ -57,20 +60,32 @@ button { font: inherit; cursor: pointer; }
57
60
  justify-content: space-between;
58
61
  gap: 16px;
59
62
  }
63
+ .header-copy {
64
+ display: flex;
65
+ flex-direction: column;
66
+ gap: 4px;
67
+ }
68
+ .header-eyebrow {
69
+ font-size: 11px;
70
+ font-weight: 700;
71
+ letter-spacing: 0.08em;
72
+ text-transform: uppercase;
73
+ color: var(--muted);
74
+ }
60
75
  .header h1 {
61
- font-size: 22px;
62
- font-weight: 600;
76
+ font-size: 34px;
77
+ font-weight: 700;
63
78
  margin: 0;
64
- letter-spacing: -0.01em;
79
+ letter-spacing: -0.03em;
65
80
  }
66
81
  .project-button {
67
82
  display: inline-flex;
68
83
  align-items: center;
69
84
  gap: 8px;
70
- background: var(--surface);
85
+ background: rgba(255, 255, 255, 0.5);
71
86
  border: 1px solid var(--line);
72
- border-radius: 10px;
73
- padding: 8px 14px;
87
+ border-radius: 14px;
88
+ padding: 10px 16px;
74
89
  color: var(--text);
75
90
  box-shadow: var(--shadow);
76
91
  max-width: 360px;
@@ -87,10 +102,10 @@ button { font: inherit; cursor: pointer; }
87
102
 
88
103
  /* Welcome line */
89
104
  .welcome {
90
- background: var(--surface);
105
+ background: rgba(248, 244, 235, 0.86);
91
106
  border: 1px solid var(--line);
92
- border-radius: 14px;
93
- padding: 18px 24px;
107
+ border-radius: 20px;
108
+ padding: 20px 24px;
94
109
  box-shadow: var(--shadow);
95
110
  font-size: 15px;
96
111
  line-height: 1.7;
@@ -184,7 +199,7 @@ button { font: inherit; cursor: pointer; }
184
199
  /* Layout */
185
200
  .layout {
186
201
  display: grid;
187
- grid-template-columns: 260px minmax(0, 1fr);
202
+ grid-template-columns: 326px minmax(0, 1fr);
188
203
  gap: 20px;
189
204
  align-items: stretch;
190
205
  flex: 1;
@@ -196,49 +211,71 @@ button { font: inherit; cursor: pointer; }
196
211
  display: grid;
197
212
  grid-template-columns: minmax(0, 1fr);
198
213
  grid-auto-rows: min-content;
199
- gap: 8px;
214
+ gap: 14px;
200
215
  min-width: 0;
201
216
  align-self: start;
202
217
  max-height: 100%;
203
218
  overflow-y: auto;
219
+ border-radius: 28px;
220
+ background: rgba(248, 244, 235, 0.84);
221
+ box-shadow: var(--shadow);
204
222
  }
205
223
  .new-conv {
206
224
  width: 100%;
207
225
  background: var(--accent);
208
226
  color: #fff;
209
227
  border: none;
210
- border-radius: 10px;
211
- padding: 10px 14px;
228
+ border-radius: 14px;
229
+ padding: 13px 16px;
212
230
  font-weight: 600;
213
231
  box-shadow: var(--shadow);
214
232
  }
233
+ .rail-note {
234
+ padding: 0 2px;
235
+ font-size: 12px;
236
+ color: var(--muted);
237
+ line-height: 1.45;
238
+ }
239
+ .rail-section {
240
+ display: grid;
241
+ gap: 10px;
242
+ }
243
+ .rail-section-label {
244
+ font-size: 11px;
245
+ font-weight: 700;
246
+ letter-spacing: 0.14em;
247
+ text-transform: uppercase;
248
+ color: var(--muted);
249
+ padding: 0 2px;
250
+ }
215
251
  .new-conv:hover { background: var(--accent-strong); }
216
252
  .new-conv:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 2px; }
217
253
  .conv-list {
218
254
  display: grid;
219
255
  grid-template-columns: minmax(0, 1fr);
220
- gap: 4px;
221
- margin-top: 4px;
256
+ gap: 10px;
257
+ margin-top: 0;
222
258
  min-width: 0;
223
259
  }
224
260
  .conv-item {
225
261
  width: 100%;
226
262
  text-align: left;
227
- background: transparent;
228
- border: 1px solid transparent;
229
- border-radius: 10px;
230
- padding: 8px 10px;
263
+ background: rgba(255, 255, 255, 0.44);
264
+ border: 1px solid rgba(31, 67, 125, 0.08);
265
+ border-radius: 22px;
266
+ padding: 14px;
231
267
  display: flex;
232
- align-items: center;
268
+ align-items: flex-start;
233
269
  justify-content: space-between;
234
- gap: 10px;
270
+ gap: 12px;
235
271
  color: var(--text);
272
+ box-shadow: 0 10px 24px rgba(35, 30, 23, 0.04);
236
273
  }
237
274
  .conv-item:hover { background: var(--soft); }
238
275
  .conv-item.active {
239
- background: var(--surface);
240
- border-color: var(--line);
241
- box-shadow: var(--shadow);
276
+ background: rgba(229, 236, 248, 0.92);
277
+ border-color: rgba(31, 67, 125, 0.2);
278
+ box-shadow: 0 14px 28px rgba(31, 67, 125, 0.12);
242
279
  }
243
280
  /* Text column: stacks persona name label above job title */
244
281
  .conv-body {
@@ -246,7 +283,7 @@ button { font: inherit; cursor: pointer; }
246
283
  min-width: 0;
247
284
  display: flex;
248
285
  flex-direction: column;
249
- gap: 1px;
286
+ gap: 4px;
250
287
  }
251
288
  .conv-persona-name {
252
289
  font-size: 10px;
@@ -258,15 +295,24 @@ button { font: inherit; cursor: pointer; }
258
295
  overflow: hidden;
259
296
  text-overflow: ellipsis;
260
297
  }
261
- .conv-title { font-size: 13px; font-weight: 500; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
298
+ .conv-title {
299
+ font-size: 17px;
300
+ font-weight: 700;
301
+ min-width: 0;
302
+ line-height: 1.3;
303
+ overflow: hidden;
304
+ display: -webkit-box;
305
+ -webkit-line-clamp: 2;
306
+ -webkit-box-orient: vertical;
307
+ }
262
308
  /* Persona avatar chip — enlarged to 34px to serve as a clear visual anchor */
263
309
  .conv-persona-chip {
264
310
  flex-shrink: 0;
265
- width: 34px;
266
- height: 34px;
267
- border-radius: 50%;
268
- background: var(--accent-soft);
269
- border: 1.5px solid var(--accent);
311
+ width: 48px;
312
+ height: 48px;
313
+ border-radius: 16px;
314
+ background: #ffffff;
315
+ border: 2px solid rgba(31, 67, 125, 0.14);
270
316
  display: flex;
271
317
  align-items: center;
272
318
  justify-content: center;
@@ -277,13 +323,15 @@ button { font: inherit; cursor: pointer; }
277
323
  line-height: 1;
278
324
  text-transform: uppercase;
279
325
  }
280
- .conv-persona-chip img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
326
+ .conv-persona-chip img { width: 100%; height: 100%; object-fit: cover; border-radius: 16px; }
281
327
  .conv-persona-chip--free { background: transparent; border-color: var(--line); color: var(--muted); }
282
328
  .conv-status {
283
329
  font-size: 11px;
284
330
  color: var(--muted);
285
331
  font-weight: 500;
286
332
  flex-shrink: 0;
333
+ white-space: nowrap;
334
+ padding-top: 4px;
287
335
  }
288
336
  .conv-status.running { color: var(--accent); }
289
337
  .conv-status.attention { color: var(--warn); }
@@ -292,11 +340,11 @@ button { font: inherit; cursor: pointer; }
292
340
  /* Conversation pane — fills the layout column vertically. Inner regions
293
341
  manage their own height; the .messages list is the only scrollable area. */
294
342
  .conversation {
295
- background: var(--surface);
343
+ background: rgba(248, 244, 235, 0.94);
296
344
  border: 1px solid var(--line);
297
- border-radius: 14px;
298
- box-shadow: var(--shadow);
299
- padding: 18px 20px;
345
+ border-radius: 30px;
346
+ box-shadow: var(--shadow-lg);
347
+ padding: 24px 26px;
300
348
  display: flex;
301
349
  flex-direction: column;
302
350
  gap: 14px;
@@ -313,13 +361,26 @@ button { font: inherit; cursor: pointer; }
313
361
  color: var(--muted);
314
362
  padding: 80px 16px;
315
363
  }
364
+ .empty-state::before {
365
+ content: "F";
366
+ width: 56px;
367
+ height: 56px;
368
+ border-radius: 18px;
369
+ display: inline-flex;
370
+ align-items: center;
371
+ justify-content: center;
372
+ background: var(--accent-soft);
373
+ color: var(--accent-strong);
374
+ font-weight: 700;
375
+ font-size: 24px;
376
+ }
316
377
  .empty-state h3 { margin: 0; color: var(--text); font-weight: 600; font-size: 17px; }
317
378
  .empty-state p { margin: 0; max-width: 320px; }
318
379
 
319
380
  #active-conv {
320
381
  display: flex;
321
382
  flex-direction: column;
322
- gap: 12px;
383
+ gap: 14px;
323
384
  min-width: 0;
324
385
  flex: 1;
325
386
  min-height: 0;
@@ -331,6 +392,76 @@ button { font: inherit; cursor: pointer; }
331
392
  .progress {
332
393
  flex-shrink: 0;
333
394
  }
395
+ .conv-topline {
396
+ display: flex;
397
+ align-items: center;
398
+ justify-content: space-between;
399
+ gap: 12px;
400
+ }
401
+ .employee-identity {
402
+ display: inline-flex;
403
+ align-items: center;
404
+ gap: 12px;
405
+ min-width: 0;
406
+ }
407
+ .identity-avatar {
408
+ width: 52px;
409
+ height: 52px;
410
+ border-radius: 18px;
411
+ background: #ffffff;
412
+ border: 1px solid rgba(31, 67, 125, 0.14);
413
+ display: inline-flex;
414
+ align-items: center;
415
+ justify-content: center;
416
+ overflow: hidden;
417
+ font-size: 16px;
418
+ font-weight: 700;
419
+ color: var(--accent-strong);
420
+ flex-shrink: 0;
421
+ }
422
+ .identity-avatar img {
423
+ width: 100%;
424
+ height: 100%;
425
+ object-fit: cover;
426
+ }
427
+ .identity-copy {
428
+ display: flex;
429
+ flex-direction: column;
430
+ min-width: 0;
431
+ }
432
+ .identity-copy strong {
433
+ font-size: 16px;
434
+ font-weight: 700;
435
+ color: var(--text);
436
+ }
437
+ .identity-copy small {
438
+ font-size: 13px;
439
+ color: var(--muted);
440
+ }
441
+ .run-state-pill {
442
+ display: inline-flex;
443
+ align-items: center;
444
+ justify-content: center;
445
+ padding: 7px 12px;
446
+ border-radius: 999px;
447
+ font-size: 11px;
448
+ font-weight: 700;
449
+ letter-spacing: 0.08em;
450
+ text-transform: uppercase;
451
+ background: rgba(31, 67, 125, 0.1);
452
+ color: var(--accent-strong);
453
+ }
454
+ .run-state-pill.running {
455
+ background: rgba(31, 67, 125, 0.14);
456
+ }
457
+ .run-state-pill.failed {
458
+ background: #fbebeb;
459
+ color: var(--danger);
460
+ }
461
+ .run-state-pill.completed {
462
+ background: #e4f0ea;
463
+ color: #2c6b4e;
464
+ }
334
465
  .conv-header {
335
466
  display: flex;
336
467
  flex-wrap: wrap;
@@ -338,11 +469,27 @@ button { font: inherit; cursor: pointer; }
338
469
  column-gap: 12px;
339
470
  row-gap: 4px;
340
471
  }
472
+ .title-block {
473
+ display: flex;
474
+ flex-direction: column;
475
+ gap: 4px;
476
+ min-width: 0;
477
+ flex: 1 1 auto;
478
+ }
341
479
  .conv-header h2 { flex: 1 1 auto; min-width: 0; }
342
480
  #artifact-slot { flex: 0 0 auto; }
343
481
 
344
- .conv-header h2 { margin: 0; font-size: 18px; font-weight: 600; }
482
+ .conv-header h2 { margin: 0; font-size: 34px; font-weight: 700; letter-spacing: -0.03em; }
345
483
  .conv-job { color: var(--muted); font-size: 14px; margin-top: 2px; }
484
+ .summary-strip {
485
+ background: rgba(255, 255, 255, 0.56);
486
+ border: 1px solid rgba(31, 67, 125, 0.08);
487
+ border-radius: 18px;
488
+ padding: 14px 16px;
489
+ color: var(--text);
490
+ font-size: 14px;
491
+ line-height: 1.55;
492
+ }
346
493
 
347
494
  .section-title {
348
495
  font-size: 13px;
@@ -378,7 +525,7 @@ button { font: inherit; cursor: pointer; }
378
525
  /* Progress is now a single-line status strip (was a tall card) so the
379
526
  messages region gets the vertical space it needs. */
380
527
  .progress {
381
- background: var(--soft);
528
+ background: rgba(255, 255, 255, 0.46);
382
529
  border: 1px solid var(--line);
383
530
  border-radius: 8px;
384
531
  padding: 8px 12px;
@@ -420,24 +567,48 @@ button { font: inherit; cursor: pointer; }
420
567
  50% { opacity: 0.5; transform: scale(0.8); }
421
568
  }
422
569
 
570
+ .thread-surface {
571
+ display: flex;
572
+ flex-direction: column;
573
+ gap: 14px;
574
+ min-height: 280px;
575
+ flex: 1;
576
+ padding: 18px 18px 16px;
577
+ border-radius: 28px;
578
+ border: 1px solid rgba(31, 67, 125, 0.1);
579
+ background:
580
+ linear-gradient(180deg, rgba(255, 255, 255, 0.74), rgba(255, 255, 255, 0.5)),
581
+ radial-gradient(circle at top left, rgba(31, 67, 125, 0.06), transparent 34%);
582
+ }
583
+
584
+ .thread-surface-label {
585
+ font-size: 11px;
586
+ font-weight: 700;
587
+ letter-spacing: 0.14em;
588
+ text-transform: uppercase;
589
+ color: var(--muted);
590
+ }
591
+
423
592
  .messages {
424
593
  display: grid;
425
594
  grid-template-columns: minmax(0, 1fr);
426
- gap: 10px;
427
- margin-top: 12px;
595
+ gap: 24px;
596
+ margin-top: 0;
428
597
  min-width: 0;
429
598
  /* Scroll messages here, not the page. */
430
599
  flex: 1;
431
- min-height: 0;
600
+ min-height: 180px;
432
601
  overflow-y: auto;
433
- padding-right: 4px;
602
+ padding: 8px 8px 8px 2px;
603
+ scroll-behavior: smooth;
434
604
  }
435
- .message { word-wrap: break-word; overflow-wrap: anywhere; }
436
605
  .message {
437
- border-radius: 10px;
438
- padding: 10px 14px;
439
- font-size: 14px;
440
- line-height: 1.5;
606
+ word-wrap: break-word;
607
+ overflow-wrap: anywhere;
608
+ max-width: 100%;
609
+ width: 100%;
610
+ display: grid;
611
+ gap: 10px;
441
612
  animation: slidein 280ms ease;
442
613
  }
443
614
  @keyframes slidein {
@@ -445,23 +616,91 @@ button { font: inherit; cursor: pointer; }
445
616
  to { opacity: 1; transform: translateY(0); }
446
617
  }
447
618
  .message.manager {
448
- background: var(--accent-soft);
449
- border: 1px solid #c5dcd0;
450
- color: var(--text);
619
+ justify-items: end;
620
+ padding-left: 24%;
451
621
  }
452
622
  .message.employee {
453
- background: var(--soft);
454
- border: 1px solid var(--line);
455
- color: var(--text);
623
+ justify-items: start;
624
+ padding-right: 24%;
625
+ }
626
+ .message.system {
627
+ justify-items: stretch;
628
+ padding-right: 16%;
629
+ }
630
+ .message-meta {
631
+ display: inline-flex;
632
+ align-items: center;
633
+ gap: 8px;
634
+ margin-bottom: 0;
635
+ }
636
+ .message.manager .message-meta {
637
+ justify-content: flex-end;
638
+ }
639
+ .message-avatar {
640
+ width: 28px;
641
+ height: 28px;
642
+ border-radius: 10px;
643
+ display: inline-flex;
644
+ align-items: center;
645
+ justify-content: center;
646
+ overflow: hidden;
647
+ font-size: 11px;
648
+ font-weight: 700;
649
+ border: 1px solid rgba(31, 67, 125, 0.1);
650
+ }
651
+ .message-avatar.manager {
652
+ background: rgba(31, 67, 125, 0.12);
653
+ color: var(--accent-strong);
654
+ }
655
+ .message-avatar.employee {
656
+ background: #ffffff;
657
+ color: var(--accent-strong);
658
+ }
659
+ .message-avatar.system {
660
+ background: rgba(35, 30, 23, 0.08);
661
+ color: var(--muted);
662
+ }
663
+ .message-avatar img {
664
+ width: 100%;
665
+ height: 100%;
666
+ object-fit: cover;
456
667
  }
457
668
  .message .who {
458
669
  font-size: 11px;
459
- font-weight: 600;
670
+ font-weight: 700;
460
671
  text-transform: uppercase;
461
- letter-spacing: 0.04em;
672
+ letter-spacing: 0.08em;
462
673
  color: var(--muted);
463
- display: block;
464
- margin-bottom: 4px;
674
+ }
675
+ .message .lane-label {
676
+ font-size: 11px;
677
+ color: var(--muted);
678
+ opacity: 0.88;
679
+ }
680
+ .transport-raw {
681
+ display: none;
682
+ }
683
+ .bubble {
684
+ border-radius: 26px;
685
+ padding: 16px 18px;
686
+ font-size: 14px;
687
+ line-height: 1.6;
688
+ box-shadow: 0 12px 26px rgba(35, 30, 23, 0.05);
689
+ max-width: min(760px, 100%);
690
+ }
691
+ .message.manager .bubble {
692
+ background: var(--accent);
693
+ color: #fff;
694
+ }
695
+ .message.employee .bubble {
696
+ background: rgba(255, 255, 255, 0.86);
697
+ border: 1px solid rgba(31, 67, 125, 0.1);
698
+ color: var(--text);
699
+ }
700
+ .message.system .bubble {
701
+ background: rgba(255, 255, 255, 0.6);
702
+ border: 1px solid rgba(35, 30, 23, 0.08);
703
+ color: var(--text);
465
704
  }
466
705
 
467
706
  /* Inline artifact pill that sits in the .conv-header next to the title.
@@ -510,14 +749,20 @@ button { font: inherit; cursor: pointer; }
510
749
  max-height: 30vh;
511
750
  resize: vertical;
512
751
  border: 1px solid var(--line);
513
- border-radius: 10px;
514
- padding: 10px 14px;
752
+ border-radius: 18px;
753
+ padding: 13px 15px;
515
754
  font: inherit;
516
755
  color: var(--text);
517
756
  background: var(--surface);
518
757
  }
519
758
  .coach textarea:focus { outline: none; border-color: var(--accent); }
520
759
  .coach-actions { display: flex; justify-content: flex-end; margin-top: 10px; }
760
+ .coach-note {
761
+ margin-top: 10px;
762
+ color: var(--muted);
763
+ font-size: 12px;
764
+ line-height: 1.5;
765
+ }
521
766
  .send-button {
522
767
  background: var(--accent);
523
768
  color: #fff;
@@ -758,6 +1003,22 @@ button.small { padding: 4px 10px; font-size: 12px; }
758
1003
  .conv-stream { flex: initial; }
759
1004
  .messages { flex: initial; max-height: 60vh; }
760
1005
  .header { flex-wrap: wrap; }
1006
+ .conv-topline { align-items: flex-start; flex-direction: column; }
1007
+ .conv-header h2 { font-size: 28px; }
1008
+ .thread-surface {
1009
+ padding: 16px 14px 14px;
1010
+ }
1011
+ .message,
1012
+ .message.manager,
1013
+ .message.employee,
1014
+ .message.system {
1015
+ max-width: 100%;
1016
+ padding-left: 0;
1017
+ padding-right: 0;
1018
+ }
1019
+ .team-roster {
1020
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
1021
+ }
761
1022
  .popover { width: min(320px, calc(100vw - 60px)); }
762
1023
  }
763
1024
 
@@ -956,30 +1217,66 @@ button.small { padding: 4px 10px; font-size: 12px; }
956
1217
 
957
1218
  /* Team roster — horizontal chip row above conv list */
958
1219
  .team-roster {
959
- display: flex;
960
- align-items: center;
961
- gap: 6px;
962
- padding: 8px 10px 4px;
963
- flex-wrap: wrap;
1220
+ display: grid;
1221
+ gap: 10px;
964
1222
  }
965
1223
  .roster-chip {
966
- display: flex;
1224
+ display: grid;
1225
+ grid-template-columns: 48px minmax(0, 1fr);
1226
+ align-items: center;
1227
+ gap: 12px;
1228
+ width: 100%;
1229
+ min-height: 74px;
1230
+ border-radius: 22px;
1231
+ background: rgba(255, 255, 255, 0.5);
1232
+ border: 1px solid rgba(31, 67, 125, 0.1);
1233
+ font-size: 12px;
1234
+ color: var(--text);
1235
+ cursor: pointer;
1236
+ overflow: hidden;
1237
+ padding: 12px 14px;
1238
+ text-align: left;
1239
+ box-shadow: 0 10px 24px rgba(35, 30, 23, 0.04);
1240
+ }
1241
+ .roster-chip.active {
1242
+ border-color: rgba(31, 67, 125, 0.22);
1243
+ background: rgba(223, 231, 245, 0.92);
1244
+ box-shadow: 0 14px 28px rgba(31, 67, 125, 0.1);
1245
+ }
1246
+ .roster-avatar {
1247
+ width: 48px;
1248
+ height: 48px;
1249
+ border-radius: 16px;
1250
+ display: inline-flex;
967
1251
  align-items: center;
968
1252
  justify-content: center;
969
- width: 36px;
970
- height: 36px;
971
- border-radius: 50%;
972
- background: var(--accent-soft);
973
- border: 2px solid var(--line);
974
- font-size: 11px;
975
- font-weight: 700;
1253
+ background: #ffffff;
976
1254
  color: var(--accent-strong);
977
- cursor: pointer;
1255
+ font-size: 12px;
1256
+ font-weight: 700;
1257
+ border: 1px solid rgba(31, 67, 125, 0.1);
978
1258
  overflow: hidden;
979
- flex-shrink: 0;
980
1259
  }
981
- .roster-chip.active { border-color: var(--accent); }
982
- .roster-chip img { width: 100%; height: 100%; object-fit: cover; }
1260
+ .roster-avatar img { width: 100%; height: 100%; object-fit: cover; }
1261
+ .roster-copy {
1262
+ display: flex;
1263
+ flex-direction: column;
1264
+ min-width: 0;
1265
+ }
1266
+ .roster-copy strong {
1267
+ font-size: 16px;
1268
+ font-weight: 700;
1269
+ color: var(--text);
1270
+ line-height: 1.25;
1271
+ }
1272
+ .roster-copy small {
1273
+ font-size: 13px;
1274
+ color: var(--muted);
1275
+ line-height: 1.4;
1276
+ }
1277
+ .roster-chip--all .roster-avatar {
1278
+ background: var(--accent-soft);
1279
+ }
983
1280
  .roster-chip-add {
984
1281
  width: 36px;
985
1282
  height: 36px;