privateboard 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.
Files changed (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +120 -0
  3. package/dist/cli.js +10502 -0
  4. package/dist/cli.js.map +1 -0
  5. package/package.json +63 -0
  6. package/public/adjourn-overlay.css +253 -0
  7. package/public/agent-overlay.css +444 -0
  8. package/public/agent-overlay.js +604 -0
  9. package/public/agent-profile.css +3230 -0
  10. package/public/agent-profile.js +3329 -0
  11. package/public/app.js +6629 -0
  12. package/public/auto-hide-scroll.js +90 -0
  13. package/public/avatar-skill.js +793 -0
  14. package/public/avatars/chair.svg +98 -0
  15. package/public/avatars/first-principles.svg +122 -0
  16. package/public/avatars/long-horizon.svg +147 -0
  17. package/public/avatars/open_ai.png +0 -0
  18. package/public/avatars/phenomenologist.svg +130 -0
  19. package/public/avatars/socrates.svg +187 -0
  20. package/public/avatars/user-empathy.svg +117 -0
  21. package/public/avatars/value-investor.svg +117 -0
  22. package/public/favicon.svg +10 -0
  23. package/public/fonts/agent-Italic.woff2 +0 -0
  24. package/public/fonts/human-sans.woff2 +0 -0
  25. package/public/icons.css +103 -0
  26. package/public/models-cache.js +57 -0
  27. package/public/new-agent.css +1359 -0
  28. package/public/new-agent.js +675 -0
  29. package/public/onboarding.css +628 -0
  30. package/public/onboarding.js +782 -0
  31. package/public/prototype-dashboard.html +7596 -0
  32. package/public/report/spines/a16z-thesis.css +1055 -0
  33. package/public/report/spines/anthropic-essay.css +556 -0
  34. package/public/report/spines/boardroom-dark.css +1082 -0
  35. package/public/report/spines/gartner-note.css +538 -0
  36. package/public/report/spines/mckinsey-deck.css +523 -0
  37. package/public/report/spines/openai-paper.css +516 -0
  38. package/public/report.html +1417 -0
  39. package/public/room-settings.css +895 -0
  40. package/public/room-settings.js +1039 -0
  41. package/public/themes.css +338 -0
  42. package/public/user-settings.css +1236 -0
  43. package/public/user-settings.js +1291 -0
@@ -0,0 +1,1236 @@
1
+ /* ═══════════════════════════════════════════
2
+ USER SETTINGS OVERLAY · 2-column layout
3
+ Left rail: User · Theme · API Key · Sign Out
4
+ Right pane: section content
5
+ ═══════════════════════════════════════════ */
6
+
7
+ .user-settings-overlay {
8
+ position: fixed;
9
+ inset: 0;
10
+ background: rgba(0, 0, 0, 0.74);
11
+ -webkit-backdrop-filter: blur(3px);
12
+ backdrop-filter: blur(3px);
13
+ z-index: 940;
14
+ display: none;
15
+ align-items: flex-start;
16
+ justify-content: center;
17
+ padding: 32px 24px;
18
+ overflow-y: auto;
19
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
20
+ }
21
+ .user-settings-overlay.open {
22
+ display: flex;
23
+ animation: us-fade 0.14s ease-out;
24
+ }
25
+ @keyframes us-fade { from { opacity: 0; } to { opacity: 1; } }
26
+
27
+ .user-settings-modal {
28
+ position: relative;
29
+ width: 100%;
30
+ max-width: 760px;
31
+ height: 600px;
32
+ max-height: calc(100vh - 64px);
33
+ margin: auto;
34
+ background: var(--panel, #131312);
35
+ border: 0.5px solid var(--line-strong, #3A3A35);
36
+ color: var(--text, #C8C5BE);
37
+ animation: us-rise 0.18s ease-out;
38
+ display: flex;
39
+ flex-direction: column;
40
+ min-height: 0;
41
+ }
42
+ @keyframes us-rise {
43
+ from { transform: translateY(8px); opacity: 0; }
44
+ to { transform: translateY(0); opacity: 1; }
45
+ }
46
+ .user-settings-modal::before, .user-settings-modal::after {
47
+ content: "";
48
+ position: absolute;
49
+ width: 14px;
50
+ height: 14px;
51
+ border: 2px solid var(--lime, #6FB572);
52
+ pointer-events: none;
53
+ }
54
+ .user-settings-modal::before { top: -1px; left: -1px; border-right: none; border-bottom: none; }
55
+ .user-settings-modal::after { bottom: -1px; right: -1px; border-left: none; border-top: none; }
56
+
57
+ .us-classification {
58
+ background: var(--panel-2, #1A1A18);
59
+ border-bottom: 0.5px solid var(--line-bright, #2A2A26);
60
+ padding: 6px 14px;
61
+ font-size: 9px;
62
+ letter-spacing: 0.2em;
63
+ text-transform: uppercase;
64
+ color: var(--lime, #6FB572);
65
+ display: flex;
66
+ justify-content: space-between;
67
+ align-items: center;
68
+ flex: 0 0 auto;
69
+ }
70
+ .us-classification .right { color: var(--text-faint, #3A382F); letter-spacing: 0.12em; }
71
+
72
+ .us-head {
73
+ display: grid;
74
+ grid-template-columns: 1fr auto;
75
+ gap: 14px;
76
+ align-items: center;
77
+ padding: 14px 18px;
78
+ border-bottom: 0.5px dashed var(--line-bright, #2A2A26);
79
+ flex: 0 0 auto;
80
+ }
81
+ .us-head .us-title {
82
+ font-size: 14px;
83
+ font-weight: 700;
84
+ color: var(--text, #C8C5BE);
85
+ letter-spacing: -0.01em;
86
+ }
87
+ .us-head .us-title::before { content: "▸ "; color: var(--lime, #6FB572); }
88
+ .us-head .us-close {
89
+ width: 28px; height: 28px;
90
+ background: transparent;
91
+ border: 0.5px solid var(--line-bright, #2A2A26);
92
+ color: var(--text-dim, #5C5A52);
93
+ font-size: 14px;
94
+ cursor: pointer;
95
+ font-family: var(--mono);
96
+ transition: all 0.12s;
97
+ }
98
+ .us-head .us-close:hover {
99
+ border-color: var(--lime, #6FB572);
100
+ color: var(--lime, #6FB572);
101
+ }
102
+
103
+ /* ─── 2-column frame ─── */
104
+ .us-frame {
105
+ display: grid;
106
+ grid-template-columns: 160px 1fr;
107
+ flex: 1 1 auto;
108
+ min-height: 0;
109
+ }
110
+ @media (max-width: 600px) {
111
+ .us-frame { grid-template-columns: 1fr; }
112
+ }
113
+
114
+ /* Left rail */
115
+ .us-nav {
116
+ background: var(--panel-2, #1A1A18);
117
+ border-right: 0.5px solid var(--line-bright, #2A2A26);
118
+ padding: 10px 8px;
119
+ display: flex;
120
+ flex-direction: column;
121
+ gap: 2px;
122
+ overflow-y: auto;
123
+ }
124
+ @media (max-width: 600px) {
125
+ .us-nav {
126
+ flex-direction: row;
127
+ border-right: none;
128
+ border-bottom: 0.5px solid var(--line-bright, #2A2A26);
129
+ padding: 6px 8px;
130
+ gap: 2px;
131
+ overflow-x: auto;
132
+ }
133
+ }
134
+ .us-nav-item {
135
+ display: block;
136
+ padding: 8px 12px;
137
+ font-family: var(--mono);
138
+ font-size: 11px;
139
+ font-weight: 700;
140
+ letter-spacing: 0.08em;
141
+ text-transform: uppercase;
142
+ color: var(--text-dim, #5C5A52);
143
+ text-decoration: none;
144
+ cursor: pointer;
145
+ border: 0.5px solid transparent;
146
+ transition: all 0.12s;
147
+ white-space: nowrap;
148
+ }
149
+ .us-nav-item:hover {
150
+ background: var(--panel-3, #21211E);
151
+ color: var(--text, #C8C5BE);
152
+ }
153
+ .us-nav-item.active {
154
+ background: var(--bg, #0A0A0A);
155
+ color: var(--lime, #6FB572);
156
+ border-color: var(--lime-dim, #2D5532);
157
+ }
158
+ .us-nav-item.danger.active {
159
+ color: var(--red, #B5706A);
160
+ border-color: rgba(181, 112, 106, 0.5);
161
+ }
162
+ .us-nav-item.danger { color: var(--text-faint, #3A382F); }
163
+ .us-nav-item.danger:hover { color: var(--red, #B5706A); }
164
+
165
+ /* Right pane (scrollable section content) */
166
+ .us-pane {
167
+ padding: 18px 22px 18px;
168
+ overflow-y: auto;
169
+ min-height: 0;
170
+ }
171
+ .us-pane-head {
172
+ margin-bottom: 16px;
173
+ padding-bottom: 12px;
174
+ border-bottom: 0.5px dashed var(--line-bright, #2A2A26);
175
+ }
176
+ .us-pane-tag {
177
+ font-family: var(--mono);
178
+ font-size: 10px;
179
+ font-weight: 700;
180
+ letter-spacing: 0.2em;
181
+ text-transform: uppercase;
182
+ color: var(--lime, #6FB572);
183
+ margin-bottom: 6px;
184
+ }
185
+ .us-pane-deck {
186
+ font-family: var(--font-human);
187
+ font-size: 12px;
188
+ color: var(--text-soft, #8E8B83);
189
+ line-height: 1.55;
190
+ }
191
+
192
+ .us-pane-body {
193
+ display: flex;
194
+ flex-direction: column;
195
+ gap: 16px;
196
+ }
197
+
198
+ /* ─── Generic row (User section) ─── */
199
+ .us-row {
200
+ display: grid;
201
+ grid-template-columns: 92px 1fr;
202
+ gap: 14px;
203
+ align-items: start;
204
+ }
205
+ @media (max-width: 500px) {
206
+ .us-row { grid-template-columns: 1fr; gap: 6px; }
207
+ }
208
+ .us-row-label {
209
+ font-family: var(--mono);
210
+ font-size: 10px;
211
+ font-weight: 700;
212
+ letter-spacing: 0.14em;
213
+ text-transform: uppercase;
214
+ color: var(--text-faint, #3A382F);
215
+ padding-top: 8px;
216
+ }
217
+ .us-row-field { min-width: 0; }
218
+ .us-row-meta {
219
+ font-family: var(--mono);
220
+ font-size: 9.5px;
221
+ letter-spacing: 0.06em;
222
+ text-transform: uppercase;
223
+ color: var(--text-faint, #3A382F);
224
+ margin-top: 5px;
225
+ }
226
+
227
+ /* User avatar block */
228
+ .us-avatar-row {
229
+ display: flex;
230
+ align-items: center;
231
+ gap: 12px;
232
+ }
233
+ .us-avatar-frame {
234
+ width: 56px; height: 56px;
235
+ border: 0.5px solid var(--line-strong, #3A3A35);
236
+ background: var(--bg, #0A0A0A);
237
+ padding: 3px;
238
+ position: relative;
239
+ }
240
+ .us-avatar-frame::before, .us-avatar-frame::after {
241
+ content: "";
242
+ position: absolute;
243
+ width: 5px; height: 5px;
244
+ border: 0.5px solid var(--lime, #6FB572);
245
+ pointer-events: none;
246
+ }
247
+ .us-avatar-frame::before { top: -1px; left: -1px; border-right: none; border-bottom: none; }
248
+ .us-avatar-frame::after { bottom: -1px; right: -1px; border-left: none; border-top: none; }
249
+ .us-avatar-frame svg {
250
+ width: 100%; height: 100%;
251
+ image-rendering: pixelated;
252
+ image-rendering: -moz-crisp-edges;
253
+ display: block;
254
+ }
255
+
256
+ /* Buttons */
257
+ .us-mini-btn {
258
+ font-family: var(--mono);
259
+ font-size: 10px;
260
+ font-weight: 700;
261
+ text-transform: uppercase;
262
+ letter-spacing: 0.1em;
263
+ padding: 6px 12px;
264
+ border: 0.5px solid var(--line-strong, #3A3A35);
265
+ background: transparent;
266
+ color: var(--text-soft, #8E8B83);
267
+ cursor: pointer;
268
+ text-decoration: none;
269
+ transition: all 0.12s;
270
+ display: inline-flex;
271
+ align-items: center;
272
+ gap: 6px;
273
+ }
274
+ .us-mini-btn:hover { border-color: var(--lime, #6FB572); color: var(--lime, #6FB572); }
275
+ .us-mini-btn-mark { font-size: 11px; line-height: 1; color: var(--lime, #6FB572); }
276
+ .us-mini-btn.primary {
277
+ background: var(--lime, #6FB572);
278
+ color: var(--bg, #0A0A0A);
279
+ border-color: var(--lime, #6FB572);
280
+ }
281
+ .us-mini-btn.primary:hover { background: transparent; color: var(--lime, #6FB572); }
282
+ .us-mini-btn.danger {
283
+ border-color: rgba(181, 112, 106, 0.5);
284
+ color: var(--red, #B5706A);
285
+ }
286
+ .us-mini-btn.danger:hover {
287
+ background: var(--red, #B5706A);
288
+ color: var(--bg, #0A0A0A);
289
+ border-color: var(--red, #B5706A);
290
+ }
291
+
292
+ /* Inputs (shared with API Key section) */
293
+ .us-input-wrap {
294
+ border: 0.5px solid var(--line-strong, #3A3A35);
295
+ background: var(--bg, #0A0A0A);
296
+ display: flex;
297
+ align-items: stretch;
298
+ transition: border-color 0.12s;
299
+ position: relative;
300
+ }
301
+ .us-input-wrap:focus-within { border-color: var(--lime, #6FB572); }
302
+ .us-input-wrap::before {
303
+ content: ">";
304
+ color: var(--lime, #6FB572);
305
+ font-weight: 700;
306
+ font-size: 13px;
307
+ font-family: var(--mono);
308
+ padding: 9px 0 0 11px;
309
+ align-self: flex-start;
310
+ }
311
+ .us-input {
312
+ flex: 1;
313
+ border: none;
314
+ background: transparent;
315
+ font-family: var(--font-human);
316
+ font-size: 13px;
317
+ line-height: 1.5;
318
+ color: var(--text, #C8C5BE);
319
+ outline: none;
320
+ padding: 8px 12px;
321
+ letter-spacing: -0.003em;
322
+ width: 100%;
323
+ }
324
+ .us-input::placeholder { color: var(--text-faint, #3A382F); }
325
+ /* When a key is on file, we surface a 4+4 masked preview AS the
326
+ placeholder. Default placeholder colour is the dim "hint" tier,
327
+ which makes the preview read as "field is empty". Lift the colour
328
+ to text-soft + full opacity so it reads as a stored value · the
329
+ "· paste to replace" suffix still tells the user it's editable. */
330
+ .us-input.has-preview::placeholder {
331
+ color: var(--text-soft, #8E8B83);
332
+ opacity: 1;
333
+ }
334
+ /* Prevent the browser's autofill from painting the input white in dark
335
+ themes. Autofill ignores `background: transparent`, but a long inset
336
+ shadow plus a -webkit-text-fill-color override gets the job done. */
337
+ .us-input:-webkit-autofill,
338
+ .us-input:-webkit-autofill:hover,
339
+ .us-input:-webkit-autofill:focus,
340
+ .us-input:-webkit-autofill:active {
341
+ -webkit-text-fill-color: var(--text, #C8C5BE);
342
+ -webkit-box-shadow: 0 0 0 1000px var(--bg, #0A0A0A) inset;
343
+ caret-color: var(--text, #C8C5BE);
344
+ transition: background-color 0s 9999s;
345
+ }
346
+ /* Match form-control color-scheme to the active theme so the password-reveal
347
+ icon, scrollbars, and other native chrome don't render against a light
348
+ background under our dark themes. atrium (the only light theme) opts out. */
349
+ :root .us-input { color-scheme: dark; }
350
+ :root[data-theme="atrium"] .us-input { color-scheme: light; }
351
+ .us-input-wrap textarea.us-input {
352
+ resize: vertical;
353
+ min-height: 70px;
354
+ font-family: var(--font-human);
355
+ }
356
+ .us-input-wrap.tall textarea.us-input { min-height: 90px; }
357
+
358
+ /* ─── Theme picker (kept similar to before) ─── */
359
+ .us-theme-grid {
360
+ display: grid;
361
+ grid-template-columns: repeat(2, 1fr);
362
+ gap: 8px;
363
+ }
364
+ @media (max-width: 600px) { .us-theme-grid { grid-template-columns: 1fr; } }
365
+
366
+ .us-theme {
367
+ display: grid;
368
+ grid-template-columns: auto 1fr auto;
369
+ gap: 10px;
370
+ align-items: center;
371
+ padding: 9px 10px;
372
+ background: var(--bg, #0A0A0A);
373
+ border: 0.5px solid var(--line-strong, #3A3A35);
374
+ cursor: pointer;
375
+ text-decoration: none;
376
+ color: var(--text, #C8C5BE);
377
+ transition: border-color 0.12s, background 0.12s;
378
+ }
379
+ .us-theme:hover { border-color: var(--lime-dim, #2D5532); }
380
+ .us-theme.active {
381
+ border-color: var(--lime, #6FB572);
382
+ background: var(--panel-2, #1A1A18);
383
+ }
384
+ .us-theme-swatch {
385
+ display: inline-grid;
386
+ grid-template-columns: repeat(4, 6px);
387
+ grid-template-rows: repeat(2, 6px);
388
+ gap: 1px;
389
+ padding: 3px;
390
+ border: 0.5px solid var(--line-bright, #2A2A26);
391
+ background: var(--bg, #0A0A0A);
392
+ }
393
+ .us-theme-swatch span { width: 6px; height: 6px; display: block; }
394
+ .us-theme-info { min-width: 0; }
395
+ .us-theme-name {
396
+ font-family: var(--mono);
397
+ font-size: 12px;
398
+ font-weight: 700;
399
+ color: var(--text, #C8C5BE);
400
+ letter-spacing: -0.005em;
401
+ line-height: 1.2;
402
+ }
403
+ .us-theme.active .us-theme-name { color: var(--lime, #6FB572); }
404
+ .us-theme-desc {
405
+ font-family: var(--font-human);
406
+ font-size: 10.5px;
407
+ color: var(--text-dim, #5C5A52);
408
+ line-height: 1.4;
409
+ margin-top: 1px;
410
+ }
411
+ .us-theme-check {
412
+ width: 18px; height: 18px;
413
+ border: 0.5px solid var(--line-bright, #2A2A26);
414
+ background: transparent;
415
+ display: flex;
416
+ align-items: center;
417
+ justify-content: center;
418
+ font-family: var(--mono);
419
+ font-size: 10px;
420
+ color: transparent;
421
+ transition: all 0.12s;
422
+ }
423
+ .us-theme.active .us-theme-check {
424
+ border-color: var(--lime, #6FB572);
425
+ background: var(--lime, #6FB572);
426
+ color: var(--bg, #0A0A0A);
427
+ }
428
+ .us-theme.active .us-theme-check::before { content: "✓"; }
429
+
430
+ /* ─── API Key section ─── */
431
+ .us-key-row {
432
+ background: var(--bg, #0A0A0A);
433
+ border: 0.5px solid var(--line-bright, #2A2A26);
434
+ padding: 10px 12px;
435
+ }
436
+ .us-key-head {
437
+ display: flex;
438
+ justify-content: space-between;
439
+ align-items: baseline;
440
+ gap: 8px;
441
+ margin-bottom: 4px;
442
+ }
443
+ .us-key-label {
444
+ font-family: var(--mono);
445
+ font-size: 12px;
446
+ font-weight: 700;
447
+ color: var(--text, #C8C5BE);
448
+ letter-spacing: -0.003em;
449
+ }
450
+ .us-key-label .badge {
451
+ display: inline-block;
452
+ margin-left: 6px;
453
+ padding: 1px 5px;
454
+ font-size: 8.5px;
455
+ font-weight: 700;
456
+ letter-spacing: 0.14em;
457
+ text-transform: uppercase;
458
+ color: var(--bg);
459
+ background: var(--lime);
460
+ border: 0.5px solid var(--lime);
461
+ vertical-align: 2px;
462
+ }
463
+ .us-key-status {
464
+ font-family: var(--mono);
465
+ font-size: 9.5px;
466
+ letter-spacing: 0.1em;
467
+ text-transform: uppercase;
468
+ }
469
+ .us-key-status.on { color: var(--lime, #6FB572); }
470
+ .us-key-status.off { color: var(--text-faint, #3A382F); }
471
+ .us-key-hint {
472
+ font-family: var(--font-human);
473
+ font-size: 11px;
474
+ color: var(--text-dim, #5C5A52);
475
+ margin-bottom: 8px;
476
+ letter-spacing: -0.003em;
477
+ }
478
+ .us-key-row .us-input-wrap { background: var(--panel); }
479
+ .us-key-eye {
480
+ background: transparent;
481
+ border: none;
482
+ color: var(--text-faint);
483
+ font-family: var(--mono);
484
+ font-size: 14px;
485
+ cursor: pointer;
486
+ padding: 0 11px;
487
+ align-self: stretch;
488
+ transition: color 0.12s;
489
+ }
490
+ .us-key-eye:hover { color: var(--lime); }
491
+
492
+ /* Remove (×) button on non-default provider rows */
493
+ .us-key-remove {
494
+ width: 22px; height: 22px;
495
+ background: transparent;
496
+ border: 0.5px solid var(--line-bright, #2A2A26);
497
+ color: var(--text-faint, #3A382F);
498
+ font-family: var(--mono);
499
+ font-size: 11px;
500
+ line-height: 1;
501
+ cursor: pointer;
502
+ display: inline-flex;
503
+ align-items: center;
504
+ justify-content: center;
505
+ margin-left: 8px;
506
+ transition: all 0.12s;
507
+ }
508
+ .us-key-remove:hover {
509
+ border-color: var(--red, #B5706A);
510
+ color: var(--red, #B5706A);
511
+ }
512
+
513
+ /* "Set as default" CTA · sits next to the remove button on configured
514
+ non-default LLM rows. Quiet outline by default, flips to lime on
515
+ hover so it reads as a positive promotion rather than a destructive
516
+ action. */
517
+ .us-key-set-default {
518
+ background: transparent;
519
+ border: 0.5px solid var(--line-bright, #2A2A26);
520
+ color: var(--text-soft, #8E8B83);
521
+ font-family: var(--mono);
522
+ font-size: 9.5px;
523
+ font-weight: 600;
524
+ letter-spacing: 0.16em;
525
+ text-transform: uppercase;
526
+ padding: 4px 9px;
527
+ cursor: pointer;
528
+ margin-left: 8px;
529
+ white-space: nowrap;
530
+ transition: all 0.12s;
531
+ }
532
+ .us-key-set-default:hover {
533
+ border-color: var(--lime, #6FB572);
534
+ color: var(--lime, #6FB572);
535
+ }
536
+
537
+ /* Default badge on the LLM row that owns the saved defaultModelV.
538
+ Visually distinguished from the previously hardcoded openrouter
539
+ badge — the row also gets a subtle lime border to make the default
540
+ provider scannable in the column. */
541
+ .us-key-row.is-default {
542
+ border-color: var(--lime-dim, rgba(111, 181, 114, 0.45));
543
+ }
544
+ .us-key-default-badge {
545
+ background: var(--lime, #6FB572) !important;
546
+ color: var(--bg, #0A0A0A) !important;
547
+ font-weight: 700 !important;
548
+ }
549
+
550
+ /* "+ add provider" affordance */
551
+ .us-key-add {
552
+ display: flex;
553
+ align-items: center;
554
+ gap: 10px;
555
+ flex-wrap: wrap;
556
+ padding: 4px 0 2px;
557
+ }
558
+ .us-key-add-label {
559
+ font-family: var(--mono);
560
+ font-size: 10px;
561
+ font-weight: 700;
562
+ letter-spacing: 0.14em;
563
+ text-transform: uppercase;
564
+ color: var(--text-faint, #3A382F);
565
+ }
566
+ .us-key-add-chips {
567
+ display: flex;
568
+ flex-wrap: wrap;
569
+ gap: 6px;
570
+ }
571
+ .us-key-add-chip {
572
+ font-family: var(--mono);
573
+ font-size: 10px;
574
+ font-weight: 700;
575
+ letter-spacing: 0.08em;
576
+ text-transform: uppercase;
577
+ padding: 5px 10px;
578
+ background: transparent;
579
+ border: 0.5px dashed var(--line-strong, #3A3A35);
580
+ color: var(--text-soft, #8E8B83);
581
+ cursor: pointer;
582
+ transition: all 0.12s;
583
+ }
584
+ .us-key-add-chip:hover {
585
+ border-style: solid;
586
+ border-color: var(--lime, #6FB572);
587
+ color: var(--lime, #6FB572);
588
+ }
589
+
590
+ .us-key-foot {
591
+ display: flex;
592
+ justify-content: space-between;
593
+ align-items: center;
594
+ padding-top: 6px;
595
+ }
596
+ .us-key-saved {
597
+ font-family: var(--mono);
598
+ font-size: 10px;
599
+ letter-spacing: 0.1em;
600
+ text-transform: uppercase;
601
+ color: var(--text-faint);
602
+ opacity: 0;
603
+ transition: opacity 0.2s, color 0.2s;
604
+ }
605
+ .us-key-saved.flash {
606
+ color: var(--lime);
607
+ opacity: 1;
608
+ }
609
+
610
+ /* ─── Sign Out section ─── */
611
+ .us-signout-card {
612
+ background: var(--bg);
613
+ border: 0.5px solid var(--line-strong);
614
+ padding: 18px 18px;
615
+ display: flex;
616
+ flex-direction: column;
617
+ gap: 14px;
618
+ align-items: flex-start;
619
+ }
620
+ .us-signout-text {
621
+ font-family: var(--font-human);
622
+ font-size: 13px;
623
+ color: var(--text-soft);
624
+ line-height: 1.6;
625
+ }
626
+
627
+ /* ─── Footer ─── */
628
+ .us-foot {
629
+ border-top: 0.5px solid var(--line-bright, #2A2A26);
630
+ padding: 10px 18px;
631
+ background: var(--panel-2, #1A1A18);
632
+ display: flex;
633
+ justify-content: space-between;
634
+ align-items: center;
635
+ font-family: var(--mono);
636
+ font-size: 9.5px;
637
+ color: var(--text-faint, #3A382F);
638
+ letter-spacing: 0.1em;
639
+ text-transform: uppercase;
640
+ flex: 0 0 auto;
641
+ }
642
+ .us-foot .saved { color: var(--lime, #6FB572); font-weight: 700; }
643
+ .us-foot .saved::before { content: "✓ "; }
644
+ .us-foot .us-done {
645
+ font-family: var(--mono);
646
+ font-size: 10px;
647
+ font-weight: 700;
648
+ text-transform: uppercase;
649
+ letter-spacing: 0.1em;
650
+ padding: 6px 12px;
651
+ border: 0.5px solid var(--line-strong, #3A3A35);
652
+ background: transparent;
653
+ color: var(--text-soft, #8E8B83);
654
+ cursor: pointer;
655
+ transition: all 0.12s;
656
+ }
657
+ .us-foot .us-done:hover { border-color: var(--lime, #6FB572); color: var(--lime, #6FB572); }
658
+
659
+ @media (max-width: 600px) {
660
+ .user-settings-overlay { padding: 12px; }
661
+ .us-head { padding-left: 14px; padding-right: 14px; }
662
+ .us-pane { padding: 14px; }
663
+ .us-foot { padding: 10px 14px; }
664
+ }
665
+
666
+ /* ═══════════════════════════════════════════
667
+ USAGE SECTION — token consumption + model distribution
668
+ ═══════════════════════════════════════════ */
669
+ .us-usage { display: flex; flex-direction: column; gap: 22px; }
670
+
671
+ .us-usage-loading {
672
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
673
+ font-size: 10px;
674
+ letter-spacing: 0.18em;
675
+ text-transform: uppercase;
676
+ color: var(--text-faint, #3A382F);
677
+ padding: 24px 0;
678
+ text-align: center;
679
+ }
680
+
681
+ .us-usage-empty {
682
+ display: flex;
683
+ flex-direction: column;
684
+ align-items: center;
685
+ gap: 14px;
686
+ padding: 36px 12px;
687
+ border: 0.5px dashed var(--line-bright, #2A2A26);
688
+ background: var(--panel-2, #1A1A18);
689
+ }
690
+ .us-usage-empty-num {
691
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
692
+ font-size: 56px;
693
+ font-weight: 600;
694
+ color: var(--text-faint, #3A382F);
695
+ letter-spacing: -0.02em;
696
+ line-height: 1;
697
+ }
698
+ .us-usage-empty-text {
699
+ font-size: 11.5px;
700
+ letter-spacing: 0.04em;
701
+ color: var(--text-soft, #8E8B83);
702
+ text-align: center;
703
+ max-width: 360px;
704
+ line-height: 1.55;
705
+ }
706
+
707
+ /* ─── Header strip · big total + meta column ─── */
708
+ .us-usage-head {
709
+ display: grid;
710
+ grid-template-columns: 1fr auto;
711
+ gap: 24px;
712
+ align-items: end;
713
+ padding-bottom: 18px;
714
+ border-bottom: 0.5px solid var(--line-bright, #2A2A26);
715
+ }
716
+ .us-usage-total-num {
717
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
718
+ font-size: 44px;
719
+ font-weight: 700;
720
+ color: var(--lime, #6FB572);
721
+ line-height: 1;
722
+ letter-spacing: -0.02em;
723
+ }
724
+ .us-usage-total-raw {
725
+ margin-top: 6px;
726
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
727
+ font-size: 10px;
728
+ letter-spacing: 0.18em;
729
+ text-transform: uppercase;
730
+ color: var(--text-faint, #3A382F);
731
+ font-weight: 600;
732
+ }
733
+ .us-usage-meta {
734
+ display: flex;
735
+ flex-direction: column;
736
+ gap: 6px;
737
+ text-align: right;
738
+ }
739
+ .us-usage-meta-row {
740
+ display: inline-flex;
741
+ align-items: baseline;
742
+ gap: 12px;
743
+ justify-content: flex-end;
744
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
745
+ font-size: 10.5px;
746
+ }
747
+ .us-usage-meta-label {
748
+ color: var(--text-faint, #3A382F);
749
+ letter-spacing: 0.18em;
750
+ text-transform: uppercase;
751
+ font-weight: 600;
752
+ min-width: 56px;
753
+ text-align: left;
754
+ }
755
+ .us-usage-meta-value {
756
+ color: var(--text, #C8C5BE);
757
+ font-weight: 700;
758
+ font-size: 12px;
759
+ font-variant-numeric: tabular-nums;
760
+ }
761
+
762
+ /* ─── Stacked horizontal bar · model distribution ─── */
763
+ .us-usage-bar {
764
+ display: flex;
765
+ width: 100%;
766
+ height: 8px;
767
+ background: var(--panel-2, #1A1A18);
768
+ border: 0.5px solid var(--line-bright, #2A2A26);
769
+ overflow: hidden;
770
+ }
771
+ .us-usage-seg {
772
+ display: block;
773
+ height: 100%;
774
+ transition: width 0.2s ease;
775
+ }
776
+ .us-usage-seg + .us-usage-seg { border-left: 1px solid var(--bg, #0A0A0A); }
777
+
778
+ /* ─── Section header tag ─── */
779
+ .us-usage-section { display: flex; flex-direction: column; gap: 10px; }
780
+ .us-usage-section-tag {
781
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
782
+ font-size: 9.5px;
783
+ letter-spacing: 0.22em;
784
+ text-transform: uppercase;
785
+ color: var(--text-faint, #3A382F);
786
+ font-weight: 600;
787
+ padding-bottom: 6px;
788
+ border-bottom: 0.5px solid var(--line-bright, #2A2A26);
789
+ }
790
+
791
+ /* ─── Per-model rows ─── */
792
+ .us-model-list { display: flex; flex-direction: column; gap: 8px; }
793
+ .us-model-row {
794
+ display: grid;
795
+ grid-template-columns: minmax(140px, 1.4fr) minmax(80px, 2fr) minmax(140px, 1fr);
796
+ gap: 14px;
797
+ align-items: center;
798
+ padding: 8px 0;
799
+ border-bottom: 0.5px dashed var(--line, #1E1E1B);
800
+ }
801
+ .us-model-row:last-child { border-bottom: none; }
802
+ .us-model-info { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
803
+ .us-model-dot {
804
+ width: 8px; height: 8px;
805
+ border-radius: 50%;
806
+ flex: 0 0 auto;
807
+ }
808
+ .us-model-name {
809
+ font-size: 12.5px;
810
+ color: var(--text, #C8C5BE);
811
+ font-weight: 600;
812
+ letter-spacing: -0.005em;
813
+ overflow: hidden;
814
+ text-overflow: ellipsis;
815
+ white-space: nowrap;
816
+ }
817
+ .us-model-provider {
818
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
819
+ font-size: 9.5px;
820
+ letter-spacing: 0.18em;
821
+ text-transform: uppercase;
822
+ color: var(--text-faint, #3A382F);
823
+ font-weight: 600;
824
+ }
825
+ .us-model-bar {
826
+ height: 4px;
827
+ background: var(--panel-2, #1A1A18);
828
+ border: 0.5px solid var(--line, #1E1E1B);
829
+ position: relative;
830
+ overflow: hidden;
831
+ min-width: 60px;
832
+ }
833
+ .us-model-bar > span { display: block; height: 100%; }
834
+ .us-model-stats {
835
+ display: inline-flex;
836
+ align-items: baseline;
837
+ justify-content: flex-end;
838
+ gap: 14px;
839
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
840
+ }
841
+ .us-model-tokens {
842
+ font-size: 13px;
843
+ color: var(--text, #C8C5BE);
844
+ font-weight: 700;
845
+ font-variant-numeric: tabular-nums;
846
+ letter-spacing: -0.01em;
847
+ }
848
+ .us-model-pct {
849
+ font-size: 10.5px;
850
+ color: var(--text-soft, #8E8B83);
851
+ letter-spacing: 0.04em;
852
+ font-variant-numeric: tabular-nums;
853
+ min-width: 38px;
854
+ text-align: right;
855
+ }
856
+ .us-model-agents {
857
+ font-size: 9.5px;
858
+ letter-spacing: 0.18em;
859
+ text-transform: uppercase;
860
+ color: var(--text-faint, #3A382F);
861
+ font-weight: 600;
862
+ min-width: 56px;
863
+ text-align: right;
864
+ }
865
+
866
+ /* ─── Per-agent rows · top consumers ─── */
867
+ .us-agent-list { display: flex; flex-direction: column; gap: 4px; }
868
+ .us-agent-row {
869
+ display: grid;
870
+ grid-template-columns: minmax(120px, 1.2fr) minmax(80px, 1fr) minmax(80px, 1.4fr) minmax(56px, auto);
871
+ gap: 14px;
872
+ align-items: center;
873
+ padding: 7px 0;
874
+ border-bottom: 0.5px dashed var(--line, #1E1E1B);
875
+ }
876
+ .us-agent-row:last-child { border-bottom: none; }
877
+ .us-agent-name-col { display: inline-flex; align-items: baseline; gap: 8px; min-width: 0; }
878
+ .us-agent-name {
879
+ font-size: 12px;
880
+ color: var(--text, #C8C5BE);
881
+ font-weight: 600;
882
+ white-space: nowrap;
883
+ overflow: hidden;
884
+ text-overflow: ellipsis;
885
+ }
886
+ .us-agent-role {
887
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
888
+ font-size: 9px;
889
+ letter-spacing: 0.18em;
890
+ text-transform: uppercase;
891
+ color: var(--text-faint, #3A382F);
892
+ font-weight: 600;
893
+ }
894
+ .us-agent-model {
895
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
896
+ font-size: 10px;
897
+ letter-spacing: 0.06em;
898
+ font-weight: 600;
899
+ white-space: nowrap;
900
+ overflow: hidden;
901
+ text-overflow: ellipsis;
902
+ }
903
+ .us-agent-bar {
904
+ height: 3px;
905
+ background: var(--panel-2, #1A1A18);
906
+ border: 0.5px solid var(--line, #1E1E1B);
907
+ position: relative;
908
+ overflow: hidden;
909
+ }
910
+ .us-agent-bar > span { display: block; height: 100%; }
911
+ .us-agent-tokens {
912
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
913
+ font-size: 11.5px;
914
+ font-weight: 700;
915
+ color: var(--text, #C8C5BE);
916
+ font-variant-numeric: tabular-nums;
917
+ text-align: right;
918
+ letter-spacing: -0.01em;
919
+ }
920
+ .us-agent-silent {
921
+ margin-top: 6px;
922
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
923
+ font-size: 9.5px;
924
+ letter-spacing: 0.16em;
925
+ text-transform: uppercase;
926
+ color: var(--text-faint, #3A382F);
927
+ font-weight: 600;
928
+ text-align: center;
929
+ padding-top: 6px;
930
+ border-top: 0.5px dashed var(--line, #1E1E1B);
931
+ }
932
+
933
+ /* ─── Responsive · stack columns on narrow viewports ─── */
934
+ @media (max-width: 600px) {
935
+ .us-usage-head { grid-template-columns: 1fr; gap: 14px; align-items: start; }
936
+ .us-usage-meta { text-align: left; }
937
+ .us-usage-meta-row { justify-content: flex-start; }
938
+ .us-model-row { grid-template-columns: 1fr; gap: 8px; }
939
+ .us-model-stats { justify-content: flex-start; }
940
+ .us-agent-row { grid-template-columns: 1fr 80px; row-gap: 4px; }
941
+ .us-agent-bar, .us-agent-model { grid-column: 1 / -1; }
942
+ }
943
+
944
+ /* Retired-agents footer · acknowledges deleted custom agents whose
945
+ tokens still count toward the per-model totals above. */
946
+ .us-usage-retired {
947
+ display: flex;
948
+ align-items: flex-start;
949
+ gap: 10px;
950
+ margin-top: 4px;
951
+ padding: 12px 14px;
952
+ background: var(--panel-2, #1A1A18);
953
+ border: 0.5px solid var(--line-bright, #2A2A26);
954
+ }
955
+ .us-usage-retired-mark {
956
+ flex: 0 0 auto;
957
+ width: 16px;
958
+ height: 16px;
959
+ display: inline-flex;
960
+ align-items: center;
961
+ justify-content: center;
962
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
963
+ font-size: 10px;
964
+ font-weight: 700;
965
+ color: var(--lime, #6FB572);
966
+ border: 0.5px solid var(--lime, #6FB572);
967
+ letter-spacing: 0;
968
+ }
969
+ .us-usage-retired-text {
970
+ flex: 1 1 auto;
971
+ font-size: 11px;
972
+ line-height: 1.6;
973
+ color: var(--text-soft, #8E8B83);
974
+ letter-spacing: 0.02em;
975
+ }
976
+ .us-usage-retired-text strong {
977
+ color: var(--text, #C8C5BE);
978
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
979
+ font-weight: 700;
980
+ font-variant-numeric: tabular-nums;
981
+ }
982
+
983
+ /* ─── Keys section · LLM / Skill subgroups ─── */
984
+ .us-key-group { display: flex; flex-direction: column; gap: 12px; }
985
+ .us-key-group + .us-key-group {
986
+ margin-top: 14px;
987
+ padding-top: 18px;
988
+ border-top: 0.5px solid var(--line-bright, #2A2A26);
989
+ }
990
+ .us-key-group-tag {
991
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
992
+ font-size: 9.5px;
993
+ letter-spacing: 0.28em;
994
+ text-transform: uppercase;
995
+ color: var(--text-faint, #3A382F);
996
+ font-weight: 600;
997
+ padding-bottom: 6px;
998
+ border-bottom: 0.5px solid var(--line-bright, #2A2A26);
999
+ margin-bottom: 4px;
1000
+ }
1001
+ .us-key-group-deck {
1002
+ font-size: 11px;
1003
+ line-height: 1.55;
1004
+ color: var(--text-soft, #8E8B83);
1005
+ letter-spacing: 0.02em;
1006
+ margin: -4px 0 6px;
1007
+ }
1008
+
1009
+ /* ─── Available models summary + default picker ───
1010
+ Lives at the bottom of the API Key section. Pure-list layout —
1011
+ no shadows, no left accents. Provider tag + flat per-model rows
1012
+ with a route badge ("direct", "OR", or "direct · OR"). */
1013
+ .us-key-group-models .us-key-group-deck code {
1014
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
1015
+ font-size: 10px;
1016
+ letter-spacing: 0.06em;
1017
+ padding: 1px 5px;
1018
+ background: var(--panel-2, #1A1A18);
1019
+ border: 0.5px solid var(--line, #1E1E1B);
1020
+ color: var(--text-soft, #8E8B83);
1021
+ }
1022
+ .us-models-loading {
1023
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
1024
+ font-size: 10px;
1025
+ letter-spacing: 0.18em;
1026
+ text-transform: uppercase;
1027
+ color: var(--text-faint, #3A382F);
1028
+ padding: 12px 0;
1029
+ }
1030
+ .us-models-list {
1031
+ display: flex;
1032
+ flex-direction: column;
1033
+ gap: 14px;
1034
+ }
1035
+ .us-models-provider-tag {
1036
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
1037
+ font-size: 9.5px;
1038
+ letter-spacing: 0.22em;
1039
+ text-transform: uppercase;
1040
+ color: var(--text-faint, #3A382F);
1041
+ font-weight: 600;
1042
+ padding-bottom: 6px;
1043
+ border-bottom: 0.5px dashed var(--line, #1E1E1B);
1044
+ margin-bottom: 4px;
1045
+ }
1046
+ .us-models-rows { display: flex; flex-direction: column; }
1047
+ .us-models-row {
1048
+ display: grid;
1049
+ grid-template-columns: minmax(110px, auto) 1fr auto;
1050
+ gap: 12px;
1051
+ align-items: baseline;
1052
+ padding: 6px 0;
1053
+ border-bottom: 0.5px dashed var(--line, #1E1E1B);
1054
+ }
1055
+ .us-models-row:last-child { border-bottom: none; }
1056
+ .us-models-name {
1057
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
1058
+ font-size: 12px;
1059
+ font-weight: 700;
1060
+ color: var(--text, #C8C5BE);
1061
+ letter-spacing: -0.005em;
1062
+ }
1063
+ .us-models-deck {
1064
+ font-family: var(--font-human);
1065
+ font-size: 11px;
1066
+ color: var(--text-soft, #8E8B83);
1067
+ line-height: 1.4;
1068
+ letter-spacing: 0.005em;
1069
+ }
1070
+ .us-models-route {
1071
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
1072
+ font-size: 9px;
1073
+ letter-spacing: 0.18em;
1074
+ text-transform: uppercase;
1075
+ color: var(--text-soft, #8E8B83);
1076
+ padding: 2px 7px;
1077
+ border: 0.5px solid var(--line, #1E1E1B);
1078
+ background: var(--panel-2, #1A1A18);
1079
+ white-space: nowrap;
1080
+ }
1081
+
1082
+ .us-models-default {
1083
+ margin-top: 14px;
1084
+ padding-top: 14px;
1085
+ border-top: 0.5px solid var(--line-bright, #2A2A26);
1086
+ display: flex;
1087
+ flex-direction: column;
1088
+ gap: 8px;
1089
+ }
1090
+ .us-models-default-label {
1091
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
1092
+ font-size: 9.5px;
1093
+ letter-spacing: 0.22em;
1094
+ text-transform: uppercase;
1095
+ color: var(--text-faint, #3A382F);
1096
+ font-weight: 600;
1097
+ }
1098
+ .us-models-default-hint {
1099
+ font-family: var(--font-human);
1100
+ font-size: 11px;
1101
+ line-height: 1.55;
1102
+ color: var(--text-soft, #8E8B83);
1103
+ letter-spacing: 0.005em;
1104
+ }
1105
+ .us-models-default-wrap { background: var(--panel); }
1106
+ .us-models-default-wrap::before { content: "▾"; padding-left: 11px; padding-right: 4px; }
1107
+ .us-models-default-select {
1108
+ appearance: none;
1109
+ -webkit-appearance: none;
1110
+ -moz-appearance: none;
1111
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
1112
+ font-size: 12px;
1113
+ font-weight: 600;
1114
+ letter-spacing: 0.005em;
1115
+ color: var(--text, #C8C5BE);
1116
+ background: transparent;
1117
+ border: none;
1118
+ outline: none;
1119
+ padding: 8px 12px;
1120
+ width: 100%;
1121
+ cursor: pointer;
1122
+ }
1123
+ .us-models-default-static {
1124
+ display: inline-flex;
1125
+ align-items: baseline;
1126
+ gap: 10px;
1127
+ padding: 8px 12px;
1128
+ background: var(--panel);
1129
+ border: 0.5px solid var(--line-strong, #3A3A35);
1130
+ }
1131
+ .us-models-default-name {
1132
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
1133
+ font-size: 12px;
1134
+ font-weight: 700;
1135
+ color: var(--text, #C8C5BE);
1136
+ letter-spacing: -0.005em;
1137
+ }
1138
+ .us-models-default-note {
1139
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
1140
+ font-size: 9.5px;
1141
+ letter-spacing: 0.18em;
1142
+ text-transform: uppercase;
1143
+ color: var(--text-faint, #3A382F);
1144
+ }
1145
+
1146
+ @media (max-width: 600px) {
1147
+ .us-models-row { grid-template-columns: 1fr auto; row-gap: 4px; }
1148
+ .us-models-deck { grid-column: 1 / -1; }
1149
+ }
1150
+
1151
+ /* Flash highlight when an external caller deep-links to a specific
1152
+ key row (e.g. agent-profile's Web Search "Configure key" link). */
1153
+ @keyframes us-key-flash {
1154
+ 0%, 100% { background: transparent; }
1155
+ 50% { background: var(--lime, #6FB572); }
1156
+ }
1157
+ .us-key-row-flash::before {
1158
+ content: "";
1159
+ position: absolute;
1160
+ inset: -2px;
1161
+ border-radius: 0;
1162
+ pointer-events: none;
1163
+ animation: us-key-flash 1.2s ease-out;
1164
+ opacity: 0.18;
1165
+ }
1166
+ .us-key-row { position: relative; }
1167
+
1168
+ /* ── Default Model section ───────────────────────────────────────
1169
+ A focused rail tab for the global default model · grouped by
1170
+ provider (top-rule + small caps tag), each model row is a click-
1171
+ able button with an active marker on the left, deck inline, and
1172
+ the route badge on the right edge.
1173
+ No left-borders per project convention; the active state shows
1174
+ via the filled-circle marker (`●`) + background tint. */
1175
+ .us-default-list { display: flex; flex-direction: column; gap: 18px; }
1176
+ .us-default-provider { display: flex; flex-direction: column; gap: 6px; }
1177
+ .us-default-provider-tag {
1178
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
1179
+ font-size: 9px;
1180
+ letter-spacing: 0.22em;
1181
+ text-transform: uppercase;
1182
+ color: var(--text-faint, #3A382F);
1183
+ font-weight: 600;
1184
+ padding-bottom: 6px;
1185
+ border-bottom: 0.5px dashed var(--line, #1E1E1B);
1186
+ }
1187
+ .us-default-rows { display: flex; flex-direction: column; }
1188
+ .us-default-row {
1189
+ display: grid;
1190
+ grid-template-columns: 18px 1fr auto;
1191
+ gap: 10px;
1192
+ align-items: baseline;
1193
+ padding: 9px 8px 9px 6px;
1194
+ background: transparent;
1195
+ border: none;
1196
+ border-bottom: 0.5px dashed var(--line, #1E1E1B);
1197
+ cursor: pointer;
1198
+ text-align: left;
1199
+ font: inherit;
1200
+ color: inherit;
1201
+ transition: background 120ms ease;
1202
+ }
1203
+ .us-default-row:last-child { border-bottom: none; }
1204
+ .us-default-row:hover { background: var(--panel-2, #1A1A18); }
1205
+ .us-default-row.active { background: var(--panel-2, #1A1A18); }
1206
+ .us-default-row-mark {
1207
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
1208
+ font-size: 11px;
1209
+ color: var(--text-faint, #3A382F);
1210
+ line-height: 1.5;
1211
+ }
1212
+ .us-default-row.active .us-default-row-mark {
1213
+ color: var(--lime, #A8C66C);
1214
+ }
1215
+ .us-default-row-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
1216
+ .us-default-row-name {
1217
+ font-family: var(--mono, "Inter", system-ui, sans-serif);
1218
+ font-size: 12px;
1219
+ font-weight: 700;
1220
+ color: var(--text, #C8C5BE);
1221
+ letter-spacing: -0.005em;
1222
+ }
1223
+ .us-default-row.active .us-default-row-name { color: var(--text-bright, #E8E4DA); }
1224
+ .us-default-row-deck {
1225
+ font-family: var(--font-human);
1226
+ font-size: 11px;
1227
+ color: var(--text-soft, #8E8B83);
1228
+ line-height: 1.4;
1229
+ letter-spacing: 0.005em;
1230
+ }
1231
+ .us-link {
1232
+ color: var(--lime, #A8C66C);
1233
+ text-decoration: underline;
1234
+ text-decoration-style: dotted;
1235
+ cursor: pointer;
1236
+ }