privateboard 0.1.19 → 0.1.21

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.
@@ -30,9 +30,9 @@
30
30
  max-width: 600px;
31
31
  max-height: calc(100vh - 48px);
32
32
  margin: auto;
33
- background: var(--panel, #131312);
34
- border: 0.5px solid var(--line-strong, #3A3A35);
35
- color: var(--text, #C8C5BE);
33
+ background: var(--panel);
34
+ border: 0.5px solid var(--line-strong);
35
+ color: var(--text);
36
36
  display: flex;
37
37
  flex-direction: column;
38
38
  min-height: 0;
@@ -52,7 +52,7 @@
52
52
  position: absolute;
53
53
  width: 14px;
54
54
  height: 14px;
55
- border: 2px solid var(--lime, #6FB572);
55
+ border: 2px solid var(--lime);
56
56
  pointer-events: none;
57
57
  }
58
58
  .new-agent-modal::before { top: -1px; left: -1px; border-right: none; border-bottom: none; }
@@ -74,21 +74,21 @@
74
74
  discipline (lime classification, dashed header bottom, lime ▸
75
75
  title prefix), different class names because the JSX is na-*. */
76
76
  .na-classification {
77
- background: var(--panel-2, #1A1A18);
78
- border-bottom: 0.5px solid var(--line-bright, #2A2A26);
77
+ background: var(--strip-bg);
78
+ border-bottom: 0.5px solid var(--line-bright);
79
79
  padding: 6px 14px;
80
80
  font-family: var(--mono);
81
81
  font-size: 9px;
82
82
  letter-spacing: 0.2em;
83
83
  text-transform: uppercase;
84
- color: var(--lime, #6FB572);
84
+ color: var(--lime);
85
85
  display: flex;
86
86
  justify-content: space-between;
87
87
  align-items: center;
88
88
  }
89
- .na-classification .dot { color: var(--lime, #6FB572); margin-right: 4px; }
89
+ .na-classification .dot { color: var(--lime); margin-right: 4px; }
90
90
  .na-classification .right {
91
- color: var(--text-faint, #3A382F);
91
+ color: var(--text-faint);
92
92
  letter-spacing: 0.12em;
93
93
  }
94
94
 
@@ -98,42 +98,43 @@
98
98
  gap: 14px;
99
99
  align-items: start;
100
100
  padding: 16px 18px 14px;
101
- border-bottom: 0.5px dashed var(--line-bright, #2A2A26);
101
+ background: var(--strip-bg);
102
+ border-bottom: 0.5px dashed var(--line-bright);
102
103
  }
103
104
  .na-head > div { min-width: 0; }
104
105
  .na-head .na-step-num {
105
106
  font-family: var(--mono);
106
107
  font-size: 10px;
107
- color: var(--text-dim, #5C5A52);
108
+ color: var(--text-dim);
108
109
  text-transform: uppercase;
109
110
  letter-spacing: 0.12em;
110
111
  margin-bottom: 6px;
111
112
  }
112
113
  .na-head .na-step-num .hl {
113
- color: var(--lime, #6FB572);
114
+ color: var(--lime);
114
115
  font-weight: 700;
115
116
  }
116
117
  .na-head .na-step-title {
117
118
  font-family: var(--font-human, "Inter", sans-serif);
118
119
  font-size: 15px;
119
120
  font-weight: 700;
120
- color: var(--text, #C8C5BE);
121
+ color: var(--text);
121
122
  letter-spacing: -0.01em;
122
123
  line-height: 1.3;
123
124
  }
124
125
  .na-head .na-step-title::before {
125
126
  content: "▸ ";
126
- color: var(--lime, #6FB572);
127
+ color: var(--lime);
127
128
  }
128
129
  .na-head .na-step-title em {
129
130
  font-style: italic;
130
- color: var(--lime, #6FB572);
131
+ color: var(--lime);
131
132
  }
132
133
  .na-head .na-close {
133
134
  width: 28px; height: 28px;
134
135
  background: transparent;
135
- border: 0.5px solid var(--line-bright, #2A2A26);
136
- color: var(--text-dim, #5C5A52);
136
+ border: 0.5px solid var(--line-bright);
137
+ color: var(--text-dim);
137
138
  font-size: 14px;
138
139
  line-height: 1;
139
140
  cursor: pointer;
@@ -145,8 +146,8 @@
145
146
  flex-shrink: 0;
146
147
  }
147
148
  .na-head .na-close:hover {
148
- border-color: var(--lime, #6FB572);
149
- color: var(--lime, #6FB572);
149
+ border-color: var(--lime);
150
+ color: var(--lime);
150
151
  }
151
152
 
152
153
  /* Body */
@@ -167,35 +168,35 @@
167
168
  font-weight: 700;
168
169
  text-transform: uppercase;
169
170
  letter-spacing: 0.16em;
170
- color: var(--lime, #6FB572);
171
+ color: var(--lime);
171
172
  }
172
- .na-section-label::before { content: "[ "; color: var(--text-dim, #5C5A52); }
173
- .na-section-label::after { content: " ]"; color: var(--text-dim, #5C5A52); }
173
+ .na-section-label::before { content: "[ "; color: var(--text-dim); }
174
+ .na-section-label::after { content: " ]"; color: var(--text-dim); }
174
175
  .na-section-hint {
175
176
  font-family: var(--font-human);
176
177
  font-size: 11px;
177
- color: var(--text-faint, #3A382F);
178
+ color: var(--text-faint);
178
179
  letter-spacing: -0.003em;
179
180
  }
180
181
  .na-section-hint .opt {
181
- color: var(--text-dim, #5C5A52);
182
+ color: var(--text-dim);
182
183
  margin-left: 4px;
183
184
  }
184
185
 
185
186
  /* Inputs */
186
187
  .na-input-wrap, .na-textarea-wrap {
187
- border: 0.5px solid var(--line-strong, #3A3A35);
188
- background: var(--bg, #0A0A0A);
188
+ border: 0.5px solid var(--line-strong);
189
+ background: var(--bg);
189
190
  transition: border-color 0.12s;
190
191
  display: flex;
191
192
  align-items: stretch;
192
193
  }
193
194
  .na-input-wrap:focus-within, .na-textarea-wrap:focus-within {
194
- border-color: var(--lime, #6FB572);
195
+ border-color: var(--lime);
195
196
  }
196
197
  .na-input-wrap::before, .na-textarea-wrap::before {
197
198
  content: ">";
198
- color: var(--lime, #6FB572);
199
+ color: var(--lime);
199
200
  font-weight: 700;
200
201
  font-size: 12px;
201
202
  font-family: var(--mono);
@@ -210,14 +211,14 @@
210
211
  font-family: var(--font-human);
211
212
  font-size: 14px;
212
213
  line-height: 1.55;
213
- color: var(--text, #C8C5BE);
214
+ color: var(--text);
214
215
  outline: none;
215
216
  padding: 7px 12px;
216
217
  letter-spacing: -0.003em;
217
218
  }
218
219
  .na-input-wrap input::placeholder,
219
220
  .na-textarea-wrap textarea::placeholder {
220
- color: var(--text-faint, #3A382F);
221
+ color: var(--text-faint);
221
222
  }
222
223
  .na-textarea-wrap textarea {
223
224
  resize: vertical;
@@ -231,12 +232,12 @@
231
232
  margin-top: 5px;
232
233
  font-family: var(--mono);
233
234
  font-size: 10px;
234
- color: var(--text-faint, #3A382F);
235
+ color: var(--text-faint);
235
236
  letter-spacing: 0.06em;
236
237
  text-transform: uppercase;
237
238
  }
238
- .na-input-meta .accent { color: var(--lime, #6FB572); }
239
- .na-input-meta .handle { color: var(--text-soft, #8E8B83); }
239
+ .na-input-meta .accent { color: var(--lime); }
240
+ .na-input-meta .handle { color: var(--text-soft); }
240
241
 
241
242
  /* Avatar picker — 8-bit portrait + regenerate button */
242
243
  .na-avatar-row {
@@ -247,8 +248,8 @@
247
248
  }
248
249
  .na-avatar-frame {
249
250
  width: 80px; height: 80px;
250
- border: 0.5px solid var(--line-strong, #3A3A35);
251
- background: var(--bg, #0A0A0A);
251
+ border: 0.5px solid var(--line-strong);
252
+ background: var(--bg);
252
253
  padding: 4px;
253
254
  display: grid;
254
255
  place-items: center;
@@ -258,14 +259,14 @@
258
259
  content: "";
259
260
  position: absolute;
260
261
  width: 6px; height: 6px;
261
- border: 0.5px solid var(--lime, #6FB572);
262
+ border: 0.5px solid var(--lime);
262
263
  pointer-events: none;
263
264
  }
264
265
  .na-avatar-frame::before { top: -1px; left: -1px; border-right: none; border-bottom: none; }
265
266
  .na-avatar-frame::after { bottom: -1px; right: -1px; border-left: none; border-top: none; }
266
267
  .na-avatar-frame.placeholder::before,
267
268
  .na-avatar-frame.placeholder::after {
268
- border-color: var(--line-strong, #3A3A35);
269
+ border-color: var(--line-strong);
269
270
  }
270
271
  .na-avatar-frame svg {
271
272
  width: 100%; height: 100%;
@@ -285,21 +286,21 @@
285
286
  align-items: center;
286
287
  gap: 7px;
287
288
  padding: 6px 11px;
288
- border: 0.5px solid var(--line-strong, #3A3A35);
289
- background: var(--panel-2, #1A1A18);
289
+ border: 0.5px solid var(--line-strong);
290
+ background: var(--panel-2);
290
291
  font-family: var(--mono);
291
292
  font-size: 10px;
292
293
  font-weight: 700;
293
294
  text-transform: uppercase;
294
295
  letter-spacing: 0.1em;
295
- color: var(--text-soft, #8E8B83);
296
+ color: var(--text-soft);
296
297
  text-decoration: none;
297
298
  cursor: pointer;
298
299
  transition: all 0.12s;
299
300
  }
300
301
  .na-avatar-regen:hover {
301
- border-color: var(--lime, #6FB572);
302
- color: var(--lime, #6FB572);
302
+ border-color: var(--lime);
303
+ color: var(--lime);
303
304
  }
304
305
  .na-avatar-regen .icon {
305
306
  font-family: var(--mono);
@@ -314,21 +315,21 @@
314
315
  .na-avatar-meta {
315
316
  font-family: var(--mono);
316
317
  font-size: 10px;
317
- color: var(--text-faint, #3A382F);
318
+ color: var(--text-faint);
318
319
  letter-spacing: 0.06em;
319
320
  text-transform: uppercase;
320
321
  }
321
322
  .na-avatar-meta-label::after { content: ":"; margin-right: 4px; }
322
- .na-avatar-seed { color: var(--lime, #6FB572); }
323
- .na-avatar-roll { color: var(--text-soft, #8E8B83); }
323
+ .na-avatar-seed { color: var(--lime); }
324
+ .na-avatar-roll { color: var(--text-soft); }
324
325
  .na-avatar-hint {
325
326
  font-family: var(--font-human);
326
327
  font-size: 10px;
327
- color: var(--text-dim, #5C5A52);
328
+ color: var(--text-dim);
328
329
  letter-spacing: -0.003em;
329
330
  line-height: 1.3;
330
331
  }
331
- .na-avatar-hint .ink { color: var(--text-soft, #8E8B83); }
332
+ .na-avatar-hint .ink { color: var(--text-soft); }
332
333
 
333
334
  /* Model picker — dropdown selection */
334
335
  .na-model-select { position: relative; }
@@ -339,16 +340,16 @@
339
340
  gap: 12px;
340
341
  align-items: center;
341
342
  padding: 10px 12px;
342
- background: var(--bg, #0A0A0A);
343
- border: 0.5px solid var(--line-strong, #3A3A35);
343
+ background: var(--bg);
344
+ border: 0.5px solid var(--line-strong);
344
345
  font-family: var(--mono);
345
346
  cursor: pointer;
346
347
  text-align: left;
347
348
  transition: border-color 0.12s;
348
349
  }
349
- .na-model-trigger:hover { border-color: var(--lime-dim, #2D5532); }
350
+ .na-model-trigger:hover { border-color: var(--lime-dim); }
350
351
  .na-model-select[data-open="true"] .na-model-trigger {
351
- border-color: var(--lime, #6FB572);
352
+ border-color: var(--lime);
352
353
  }
353
354
  .na-model-trigger .trigger-l {
354
355
  display: inline-flex;
@@ -358,12 +359,12 @@
358
359
  }
359
360
  .na-model-trigger .trigger-l .mark {
360
361
  font-size: 8px;
361
- color: var(--lime, #6FB572);
362
+ color: var(--lime);
362
363
  }
363
364
  .na-model-trigger .trigger-l .name {
364
365
  font-size: 13px;
365
366
  font-weight: 700;
366
- color: var(--text, #C8C5BE);
367
+ color: var(--text);
367
368
  letter-spacing: -0.003em;
368
369
  white-space: nowrap;
369
370
  overflow: hidden;
@@ -375,60 +376,60 @@
375
376
  gap: 7px;
376
377
  font-family: var(--mono);
377
378
  font-size: 10px;
378
- color: var(--text-soft, #8E8B83);
379
+ color: var(--text-soft);
379
380
  }
380
381
  .na-model-trigger .trigger-r .prov {
381
382
  font-size: 10px;
382
383
  font-weight: 700;
383
384
  text-transform: uppercase;
384
385
  letter-spacing: 0.14em;
385
- color: var(--text-faint, #3A382F);
386
+ color: var(--text-faint);
386
387
  }
387
- .na-model-trigger .trigger-r .dot { color: var(--text-faint, #3A382F); }
388
+ .na-model-trigger .trigger-r .dot { color: var(--text-faint); }
388
389
  .na-model-trigger .trigger-r .deck {
389
390
  font-family: var(--font-human);
390
391
  font-size: 11px;
391
392
  letter-spacing: -0.003em;
392
- color: var(--text-soft, #8E8B83);
393
+ color: var(--text-soft);
393
394
  }
394
395
  .na-model-trigger .chev {
395
396
  margin-left: 4px;
396
- color: var(--text-soft, #8E8B83);
397
+ color: var(--text-soft);
397
398
  font-size: 11px;
398
399
  display: inline-block;
399
400
  transition: transform 0.14s;
400
401
  }
401
402
  .na-model-select[data-open="true"] .chev {
402
403
  transform: rotate(180deg);
403
- color: var(--lime, #6FB572);
404
+ color: var(--lime);
404
405
  }
405
406
 
406
407
  .na-model-dropdown {
407
408
  display: none;
408
409
  position: fixed;
409
410
  z-index: 1100;
410
- background: var(--panel-2, #1A1A18);
411
- border: 0.5px solid var(--lime, #6FB572);
411
+ background: var(--panel-2);
412
+ border: 0.5px solid var(--lime);
412
413
  padding: 6px 0;
413
414
  overflow-y: auto;
414
415
  overscroll-behavior: contain;
415
416
  box-sizing: border-box;
416
417
  scrollbar-width: thin;
417
- scrollbar-color: var(--lime-dim, #2D5532) var(--panel-2, #1A1A18);
418
+ scrollbar-color: var(--lime-dim) var(--panel-2);
418
419
  }
419
420
  .na-model-dropdown::-webkit-scrollbar { width: 8px; }
420
- .na-model-dropdown::-webkit-scrollbar-track { background: var(--panel-2, #1A1A18); }
421
+ .na-model-dropdown::-webkit-scrollbar-track { background: var(--panel-2); }
421
422
  .na-model-dropdown::-webkit-scrollbar-thumb {
422
- background: var(--lime-dim, #2D5532);
423
- border: 2px solid var(--panel-2, #1A1A18);
423
+ background: var(--lime-dim);
424
+ border: 2px solid var(--panel-2);
424
425
  }
425
- .na-model-dropdown::-webkit-scrollbar-thumb:hover { background: var(--lime, #6FB572); }
426
+ .na-model-dropdown::-webkit-scrollbar-thumb:hover { background: var(--lime); }
426
427
  .na-model-select[data-open="true"] .na-model-dropdown {
427
428
  display: block;
428
429
  animation: na-fade 0.12s ease-out;
429
430
  }
430
431
  .na-model-grp + .na-model-grp {
431
- border-top: 0.5px dashed var(--line-bright, #2A2A26);
432
+ border-top: 0.5px dashed var(--line-bright);
432
433
  margin-top: 4px;
433
434
  padding-top: 4px;
434
435
  }
@@ -438,7 +439,7 @@
438
439
  font-weight: 700;
439
440
  text-transform: uppercase;
440
441
  letter-spacing: 0.18em;
441
- color: var(--text-faint, #3A382F);
442
+ color: var(--text-faint);
442
443
  padding: 4px 14px 3px;
443
444
  display: flex;
444
445
  align-items: baseline;
@@ -451,9 +452,9 @@
451
452
  letter-spacing: 0.1em;
452
453
  text-transform: uppercase;
453
454
  }
454
- .na-model-grp-status.direct { color: var(--lime, #6FB572); }
455
- .na-model-grp-status.via { color: var(--amber, #B59560); }
456
- .na-model-grp-status.none { color: var(--text-faint, #3A382F); }
455
+ .na-model-grp-status.direct { color: var(--lime); }
456
+ .na-model-grp-status.via { color: var(--amber); }
457
+ .na-model-grp-status.none { color: var(--text-faint); }
457
458
  .na-model-opt {
458
459
  display: grid;
459
460
  grid-template-columns: 14px 1fr auto;
@@ -466,7 +467,7 @@
466
467
  transition: background 0.1s;
467
468
  }
468
469
  .na-model-opt .mark {
469
- color: var(--lime, #6FB572);
470
+ color: var(--lime);
470
471
  font-size: 8px;
471
472
  visibility: hidden;
472
473
  text-align: center;
@@ -474,25 +475,25 @@
474
475
  .na-model-opt .name {
475
476
  font-size: 12px;
476
477
  font-weight: 700;
477
- color: var(--text-soft, #8E8B83);
478
+ color: var(--text-soft);
478
479
  letter-spacing: -0.003em;
479
480
  }
480
481
  .na-model-opt .deck {
481
482
  font-family: var(--font-human);
482
483
  font-size: 10px;
483
- color: var(--text-dim, #5C5A52);
484
+ color: var(--text-dim);
484
485
  letter-spacing: -0.003em;
485
486
  }
486
487
  .na-model-opt:hover {
487
488
  background: rgba(111, 181, 114, 0.05);
488
489
  }
489
- .na-model-opt:hover .name { color: var(--text, #C8C5BE); }
490
+ .na-model-opt:hover .name { color: var(--text); }
490
491
  .na-model-opt.active {
491
492
  background: rgba(111, 181, 114, 0.07);
492
493
  }
493
494
  .na-model-opt.active .mark { visibility: visible; }
494
- .na-model-opt.active .name { color: var(--lime, #6FB572); }
495
- .na-model-opt.active .deck { color: var(--text-soft, #8E8B83); }
495
+ .na-model-opt.active .name { color: var(--lime); }
496
+ .na-model-opt.active .deck { color: var(--text-soft); }
496
497
 
497
498
  /* Knowledge upload */
498
499
  .na-know-drop {
@@ -501,42 +502,42 @@
501
502
  gap: 14px;
502
503
  align-items: center;
503
504
  padding: 14px 16px;
504
- background: var(--bg, #0A0A0A);
505
- border: 0.5px dashed var(--line-strong, #3A3A35);
505
+ background: var(--bg);
506
+ border: 0.5px dashed var(--line-strong);
506
507
  cursor: pointer;
507
508
  transition: all 0.12s;
508
509
  text-decoration: none;
509
510
  color: inherit;
510
511
  }
511
512
  .na-know-drop:hover {
512
- border-color: var(--lime, #6FB572);
513
+ border-color: var(--lime);
513
514
  border-style: solid;
514
515
  background: linear-gradient(135deg, var(--bg) 0%, rgba(111, 181, 114, 0.04) 100%);
515
516
  }
516
517
  .na-know-drop .icon {
517
518
  width: 32px;
518
519
  height: 32px;
519
- border: 0.5px solid var(--line-strong, #3A3A35);
520
+ border: 0.5px solid var(--line-strong);
520
521
  display: flex;
521
522
  align-items: center;
522
523
  justify-content: center;
523
524
  font-family: var(--mono);
524
525
  font-size: 16px;
525
- color: var(--text-dim, #5C5A52);
526
+ color: var(--text-dim);
526
527
  font-weight: 400;
527
528
  }
528
529
  .na-know-drop:hover .icon { border-color: var(--lime); color: var(--lime); }
529
530
  .na-know-drop .title {
530
531
  font-family: var(--mono);
531
532
  font-size: 12px;
532
- color: var(--text, #C8C5BE);
533
+ color: var(--text);
533
534
  font-weight: 700;
534
535
  letter-spacing: -0.003em;
535
536
  }
536
537
  .na-know-drop .deck {
537
538
  font-family: var(--font-human);
538
539
  font-size: 10px;
539
- color: var(--text-dim, #5C5A52);
540
+ color: var(--text-dim);
540
541
  margin-top: 2px;
541
542
  letter-spacing: -0.003em;
542
543
  }
@@ -547,9 +548,9 @@
547
548
  text-transform: uppercase;
548
549
  letter-spacing: 0.1em;
549
550
  padding: 4px 9px;
550
- border: 0.5px solid var(--line-strong, #3A3A35);
551
- color: var(--text-soft, #8E8B83);
552
- background: var(--panel-2, #1A1A18);
551
+ border: 0.5px solid var(--line-strong);
552
+ color: var(--text-soft);
553
+ background: var(--panel-2);
553
554
  white-space: nowrap;
554
555
  }
555
556
  .na-know-drop:hover .pill {
@@ -568,8 +569,8 @@
568
569
  gap: 10px;
569
570
  align-items: center;
570
571
  padding: 7px 10px;
571
- background: var(--panel-2, #1A1A18);
572
- border: 0.5px solid var(--line-bright, #2A2A26);
572
+ background: var(--panel-2);
573
+ border: 0.5px solid var(--line-bright);
573
574
  font-family: var(--mono);
574
575
  font-size: 11px;
575
576
  }
@@ -611,9 +612,9 @@
611
612
  /* Footer · padding aligned with the head's horizontal scale (22px) so
612
613
  the modal's left/right edges feel like one ruled column. */
613
614
  .na-foot {
614
- border-top: 0.5px solid var(--line, #1f1f1c);
615
+ border-top: 0.5px solid var(--line);
615
616
  padding: 10px 22px;
616
- background: var(--panel-2, #1A1A18);
617
+ background: var(--panel-2);
617
618
  display: flex;
618
619
  justify-content: space-between;
619
620
  align-items: center;
@@ -622,10 +623,10 @@
622
623
  .na-foot .summary {
623
624
  font-family: var(--mono);
624
625
  font-size: 10px;
625
- color: var(--text-faint, #3A382F);
626
+ color: var(--text-faint);
626
627
  letter-spacing: 0.06em;
627
628
  }
628
- .na-foot .summary .v { color: var(--text-soft, #8E8B83); }
629
+ .na-foot .summary .v { color: var(--text-soft); }
629
630
  .na-foot-actions { display: flex; gap: 6px; }
630
631
  .na-foot .btn {
631
632
  font-family: var(--mono);
@@ -634,21 +635,21 @@
634
635
  text-transform: uppercase;
635
636
  letter-spacing: 0.1em;
636
637
  padding: 7px 13px;
637
- border: 0.5px solid var(--line-strong, #3A3A35);
638
+ border: 0.5px solid var(--line-strong);
638
639
  background: transparent;
639
- color: var(--text-soft, #8E8B83);
640
+ color: var(--text-soft);
640
641
  cursor: pointer;
641
642
  text-decoration: none;
642
643
  transition: all 0.12s;
643
644
  }
644
- .na-foot .btn:hover { border-color: var(--lime, #6FB572); color: var(--lime, #6FB572); }
645
+ .na-foot .btn:hover { border-color: var(--lime); color: var(--lime); }
645
646
  .na-foot .btn.primary {
646
- background: var(--lime, #6FB572);
647
- border-color: var(--lime, #6FB572);
648
- color: var(--bg, #0A0A0A);
647
+ background: var(--lime);
648
+ border-color: var(--lime);
649
+ color: var(--bg);
649
650
  }
650
651
  .na-foot .btn.primary:hover {
651
- background: transparent; color: var(--lime, #6FB572);
652
+ background: transparent; color: var(--lime);
652
653
  }
653
654
  .na-foot .btn:disabled,
654
655
  .na-foot .btn.primary:disabled {
@@ -1028,8 +1029,8 @@
1028
1029
  max-width: 320px;
1029
1030
  max-height: 320px;
1030
1031
  overflow-y: auto;
1031
- background: var(--panel-2, #1A1A18);
1032
- border: 0.5px solid var(--line-bright, #2A2A26);
1032
+ background: var(--panel-2);
1033
+ border: 0.5px solid var(--line-bright);
1033
1034
  display: flex;
1034
1035
  flex-direction: column;
1035
1036
  }
@@ -1040,20 +1041,20 @@
1040
1041
  padding: 10px 12px;
1041
1042
  background: transparent;
1042
1043
  border: none;
1043
- border-bottom: 0.5px solid var(--line-bright, #2A2A26);
1044
- color: var(--text, #C8C5BE);
1044
+ border-bottom: 0.5px solid var(--line-bright);
1045
+ color: var(--text);
1045
1046
  cursor: pointer;
1046
1047
  text-align: left;
1047
1048
  font-family: var(--font-human);
1048
1049
  transition: background 0.1s;
1049
1050
  }
1050
1051
  .na-skill-pick:last-child { border-bottom: none; }
1051
- .na-skill-pick:hover { background: var(--panel-3, #21211E); }
1052
+ .na-skill-pick:hover { background: var(--panel-3); }
1052
1053
  .na-skill-pick-icon {
1053
1054
  width: 28px; height: 28px;
1054
- border: 0.5px solid var(--line-bright, #2A2A26);
1055
- background: var(--bg, #0A0A0A);
1056
- color: var(--text, #C8C5BE);
1055
+ border: 0.5px solid var(--line-bright);
1056
+ background: var(--bg);
1057
+ color: var(--text);
1057
1058
  display: flex;
1058
1059
  align-items: center;
1059
1060
  justify-content: center;
@@ -1070,12 +1071,12 @@
1070
1071
  .na-skill-pick-name {
1071
1072
  font-size: 12px;
1072
1073
  font-weight: 700;
1073
- color: var(--text, #C8C5BE);
1074
+ color: var(--text);
1074
1075
  }
1075
1076
  .na-skill-pick-deck {
1076
1077
  font-family: var(--mono);
1077
1078
  font-size: 10px;
1078
- color: var(--text-faint, #5C5A52);
1079
+ color: var(--text-faint);
1079
1080
  letter-spacing: 0.06em;
1080
1081
  text-transform: uppercase;
1081
1082
  }
@@ -405,7 +405,10 @@
405
405
  function getProviderStatus(provider) {
406
406
  const keys = (typeof window.boardroomKeys === "function" ? window.boardroomKeys() : {}) || {};
407
407
  if (keys[provider]) return { label: t("na_key_direct"), cls: "direct" };
408
- if (keys.openrouter) return { label: t("na_key_via"), cls: "via" };
408
+ // Any universal aggregator (OR or B.AI) routes this provider's
409
+ // models · without `|| keys.bai` here, a B.AI-only user would see
410
+ // every model labeled "no key" even though most are reachable.
411
+ if (keys.openrouter || keys.bai) return { label: t("na_key_via"), cls: "via" };
409
412
  return { label: t("na_key_none"), cls: "none" };
410
413
  }
411
414