anentrypoint-design 0.0.165 → 0.0.167

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.
package/dist/247420.css CHANGED
@@ -54,8 +54,32 @@
54
54
 
55
55
  --accent: var(--green);
56
56
  --accent-fg: var(--paper);
57
+ --accent-bright: var(--green-2); /* base value so var(--accent-bright) never falls back empty; ink + [data-accent] retune it */
57
58
  --accent-tint: color-mix(in oklab, var(--accent) 26%, var(--bg));
58
59
 
60
+ /* On-color foregrounds — text/icons that sit ON a saturated fill (accent,
61
+ danger, category chips). Theme-driven so white-on-color never hard-codes
62
+ #fff. --on-accent tracks --accent-fg; --on-color is the generic light
63
+ foreground for any colored fill. */
64
+ --on-accent: var(--accent-fg);
65
+ --on-color: #fff;
66
+
67
+ /* Scrims — modal/overlay backdrops. Derived from --fg so a dark theme dims
68
+ with its own ink rather than a baked rgba(0,0,0). */
69
+ --scrim: color-mix(in oklab, var(--fg) 40%, transparent);
70
+ --scrim-strong: color-mix(in oklab, var(--fg) 72%, transparent);
71
+ --scrim-media: color-mix(in oklab, var(--fg) 85%, transparent);
72
+
73
+ /* Category palette — surfaces (forum tags, project cards) that color-code by
74
+ category. Canonical so a theme/accent swap recolors categories instead of
75
+ drifting from a private --cat-* block. Derived from the base palette. */
76
+ --cat-green: var(--green-2);
77
+ --cat-purple: var(--purple-2);
78
+ --cat-mascot: var(--mascot);
79
+ --cat-sun: var(--sun);
80
+ --cat-flame: var(--flame);
81
+ --cat-sky: var(--sky);
82
+
59
83
  --panel-bg: var(--bg);
60
84
  --panel-bg-2: var(--bg-2);
61
85
  --panel-accent: var(--accent);
@@ -277,6 +301,33 @@
277
301
  --panel-text-3: inherit;
278
302
  --panel-accent-2: inherit;
279
303
  --panel-shadow: inherit;
304
+ --on-accent: inherit;
305
+ --on-color: inherit;
306
+ --scrim: inherit;
307
+ --scrim-strong: inherit;
308
+ --scrim-media: inherit;
309
+ --cat-green: inherit;
310
+ --cat-purple: inherit;
311
+ --cat-mascot: inherit;
312
+ --cat-sun: inherit;
313
+ --cat-flame: inherit;
314
+ --cat-sky: inherit;
315
+ }
316
+
317
+ /* ============================================================
318
+ Named-theme preset contract
319
+ ------------------------------------------------------------
320
+ A theme is one [data-theme="X"] block that overrides ONLY the semantic
321
+ surface tokens — never component rules, never raw literals in component
322
+ sheets. The base :root above IS the "paper" theme; [data-theme="paper"]
323
+ restates it so the attribute is explicit and round-trippable. To add a
324
+ theme: copy a block, rename the attr, retune the ~8 semantic tokens.
325
+ ============================================================ */
326
+ .ds-247420[data-theme="paper"] {
327
+ color-scheme: light;
328
+ --bg: var(--paper); --bg-2: var(--paper-2); --bg-3: var(--paper-3);
329
+ --fg: var(--ink); --fg-2: var(--ink-2); --fg-3: var(--ink-3);
330
+ --accent: var(--green); --accent-fg: var(--paper);
280
331
  }
281
332
 
282
333
  .ds-247420[data-density="compact"] { --density: 0.75; }
@@ -322,6 +373,10 @@
322
373
  0 2px 4px color-mix(in oklab, var(--fg) 6%, transparent);
323
374
  --shadow-3: 0 12px 32px color-mix(in oklab, var(--fg) 14%, transparent),
324
375
  0 4px 8px color-mix(in oklab, var(--fg) 8%, transparent);
376
+ /* Overlay elevation — the float for dialogs/lightboxes that sit above a
377
+ scrim; heavier than --shadow-3 and theme-driven (was raw rgba(0,0,0,.4)). */
378
+ --shadow-overlay: 0 12px 40px color-mix(in oklab, var(--fg) 28%, transparent),
379
+ 0 4px 12px color-mix(in oklab, var(--fg) 16%, transparent);
325
380
  --z-dropdown: 600;
326
381
  --z-popover: 700;
327
382
  --z-modal: 800;
@@ -466,7 +521,7 @@
466
521
 
467
522
  .ds-247420 pre {
468
523
  font-family: var(--ff-mono);
469
- background: var(--panel-bg, #15151a);
524
+ background: var(--panel-bg);
470
525
  color: var(--panel-text, inherit);
471
526
  padding: var(--space-5);
472
527
  overflow-x: auto;
@@ -477,7 +532,7 @@
477
532
  }
478
533
  .ds-247420 pre .k { color: var(--mascot); }
479
534
  .ds-247420 pre .s { color: var(--sun); }
480
- .ds-247420 pre .c { color: #9A9AA2; }
535
+ .ds-247420 pre .c { color: var(--fg-3); }
481
536
  .ds-247420 pre .n { color: var(--green-2); }
482
537
 
483
538
  /* ============================================================
@@ -921,10 +976,10 @@
921
976
  .ds-247420 .cli .copy {
922
977
  padding: 8px 16px; background: transparent; color: var(--paper);
923
978
  font-size: var(--fs-tiny); text-transform: uppercase; letter-spacing: var(--tr-caps);
924
- cursor: pointer; box-shadow: inset 0 0 0 1px #6A6A70;
979
+ cursor: pointer; box-shadow: inset 0 0 0 1px var(--rule-strong);
925
980
  border-radius: var(--r-pill);
926
981
  }
927
- .ds-247420 .cli .copy:hover { background: #6A6A70; }
982
+ .ds-247420 .cli .copy:hover { background: var(--fg-3); }
928
983
 
929
984
  /* Multi-line CLI block: when .cli holds .cli-line / .cli-cmt children
930
985
  (quickstart scripts, multi-command snippets) it stacks as a column
@@ -1617,7 +1672,7 @@
1617
1672
  .ds-247420 .btn-primary.danger {
1618
1673
  background: var(--warn);
1619
1674
  border-color: var(--warn);
1620
- color: #fff;
1675
+ color: var(--on-color);
1621
1676
  }
1622
1677
 
1623
1678
  /* ── Preview ──────────────────────────────────────────────── */
@@ -1801,7 +1856,7 @@
1801
1856
  .ds-247420 .ds-segmented .ds-seg-btn:hover { color: var(--fg); }
1802
1857
  .ds-247420 .ds-segmented .ds-seg-btn.is-on {
1803
1858
  background: var(--bg); color: var(--fg);
1804
- box-shadow: 0 1px 2px rgba(0,0,0,0.08);
1859
+ box-shadow: var(--shadow-1);
1805
1860
  }
1806
1861
  .ds-247420 .ds-theme-toggle.btn {
1807
1862
  font-family: var(--ff-mono); font-size: var(--fs-xs);
@@ -2571,7 +2626,7 @@
2571
2626
  }
2572
2627
  .ds-247420 .ds-field input[aria-invalid="true"],
2573
2628
  .ds-247420 .ds-field textarea[aria-invalid="true"] {
2574
- box-shadow: inset 0 0 0 var(--bw-hair, 1px) var(--flame, #d64545);
2629
+ box-shadow: inset 0 0 0 var(--bw-hair, 1px) var(--flame);
2575
2630
  }
2576
2631
 
2577
2632
  /* Clear button for text inputs */
@@ -4433,9 +4488,9 @@
4433
4488
  cursor: pointer; font-size: 16px; line-height: 1;
4434
4489
  }
4435
4490
  .ds-247420 .vx-vc-btn:hover { background: var(--bg-4, var(--bg-3)); }
4436
- .ds-247420 .vx-vc-on { background: var(--accent); color: var(--accent-fg, #fff); border-color: var(--accent); }
4491
+ .ds-247420 .vx-vc-on { background: var(--accent); color: var(--accent-fg); border-color: var(--accent); }
4437
4492
  .ds-247420 .vx-vc-disabled, .ds-247420 .vx-vc-btn:disabled { opacity: .4; cursor: not-allowed; }
4438
- .ds-247420 .vx-vc-leave { margin-left: auto; background: var(--danger, #d04545); color: #fff; border-color: var(--danger, #d04545); }
4493
+ .ds-247420 .vx-vc-leave { margin-left: auto; background: var(--danger); color: var(--on-color); border-color: var(--danger); }
4439
4494
  .ds-247420 .vx-vc-glyph { pointer-events: none; }
4440
4495
 
4441
4496
  /* ThreadPanel — cm-thread-panel / cm-tp-* */
@@ -4478,7 +4533,7 @@
4478
4533
  .ds-247420 .cm-forum-toolbar { display: flex; gap: var(--space-2); align-items: center; padding: var(--space-2); border-bottom: var(--bw-hair) solid var(--rule); }
4479
4534
  .ds-247420 .cm-forum-search { flex: 1; padding: var(--space-1) var(--space-2); border: var(--bw-hair) solid var(--rule-strong); border-radius: var(--r-1); background: var(--bg-3); color: var(--fg); }
4480
4535
  .ds-247420 .cm-forum-sort { padding: var(--space-1); border: var(--bw-hair) solid var(--rule-strong); border-radius: var(--r-1); background: var(--bg-3); color: var(--fg); }
4481
- .ds-247420 .cm-forum-new { padding: var(--space-1) var(--space-2); border: none; border-radius: var(--r-1); background: var(--accent); color: var(--accent-fg, #fff); cursor: pointer; }
4536
+ .ds-247420 .cm-forum-new { padding: var(--space-1) var(--space-2); border: none; border-radius: var(--r-1); background: var(--accent); color: var(--accent-fg); cursor: pointer; }
4482
4537
  .ds-247420 .cm-forum-list { flex: 1; min-height: 0; overflow-y: auto; }
4483
4538
  .ds-247420 .cm-forum-item { display: flex; flex-direction: column; gap: var(--space-1); width: 100%; text-align: left; cursor: pointer; padding: var(--space-2) var(--space-3); border: none; background: transparent; border-bottom: var(--bw-hair) solid var(--rule); color: var(--fg); }
4484
4539
  .ds-247420 .cm-forum-item:hover { background: var(--bg-3); }
@@ -4551,21 +4606,21 @@
4551
4606
  white-space: nowrap;
4552
4607
  margin-left: auto;
4553
4608
  font-size: .85em;
4554
- color: var(--muted, #8a8f98);
4609
+ color: var(--fg-3);
4555
4610
  }
4556
4611
  /* status disc — a CSS-drawn dot, not a glyph; pulses while streaming */
4557
4612
  .ds-247420 .agentchat-status .status-dot-disc {
4558
4613
  flex: none; width: 8px; height: 8px; border-radius: 50%;
4559
- background: var(--muted, #8a8f98);
4614
+ background: var(--fg-3);
4560
4615
  }
4561
4616
  .ds-247420 .agentchat-status .status-dot-disc.status-dot-live {
4562
- background: var(--accent, #50c878);
4617
+ background: var(--accent);
4563
4618
  animation: agentchat-pulse 2s infinite;
4564
4619
  }
4565
4620
  @keyframes agentchat-pulse {
4566
- 0% { box-shadow: 0 0 0 0 rgba(80, 200, 120, .5); }
4567
- 70% { box-shadow: 0 0 0 6px rgba(80, 200, 120, 0); }
4568
- 100% { box-shadow: 0 0 0 0 rgba(80, 200, 120, 0); }
4621
+ 0% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 50%, transparent); }
4622
+ 70% { box-shadow: 0 0 0 6px color-mix(in oklab, var(--accent) 0%, transparent); }
4623
+ 100% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 0%, transparent); }
4569
4624
  }
4570
4625
  @media (prefers-reduced-motion: reduce) {
4571
4626
  .ds-247420 .agentchat-status .status-dot-disc { animation: none !important; }
@@ -4577,7 +4632,7 @@
4577
4632
  align-items: center;
4578
4633
  gap: var(--space-2, 8px);
4579
4634
  font-size: .85em;
4580
- color: var(--muted, #8a8f98);
4635
+ color: var(--fg-3);
4581
4636
  flex-wrap: wrap;
4582
4637
  }
4583
4638
  .ds-247420 .agentchat-cwd-text {
@@ -4588,20 +4643,20 @@
4588
4643
  }
4589
4644
  .ds-247420 .agentchat-cwd-btn {
4590
4645
  background: none;
4591
- border: 1px solid var(--border, #2a2f3a);
4646
+ border: 1px solid var(--rule);
4592
4647
  color: inherit;
4593
4648
  border-radius: 6px;
4594
4649
  padding: 2px 8px;
4595
4650
  cursor: pointer;
4596
4651
  font: inherit;
4597
4652
  }
4598
- .ds-247420 .agentchat-cwd-btn:hover { border-color: var(--accent, #50c878); }
4653
+ .ds-247420 .agentchat-cwd-btn:hover { border-color: var(--accent); }
4599
4654
  .ds-247420 .agentchat-cwd-input {
4600
4655
  flex: 1;
4601
4656
  min-width: 12ch;
4602
- background: var(--surface, #11151c);
4603
- border: 1px solid var(--border, #2a2f3a);
4604
- color: var(--text, #e6e9ee);
4657
+ background: var(--bg-2);
4658
+ border: 1px solid var(--rule);
4659
+ color: var(--fg);
4605
4660
  border-radius: 6px;
4606
4661
  padding: 4px 8px;
4607
4662
  font: inherit;
@@ -4614,7 +4669,7 @@
4614
4669
  gap: .5em;
4615
4670
  }
4616
4671
  .ds-247420 .agentchat-title { font-size: 1em; margin: 0; }
4617
- .ds-247420 .agentchat-sub { font-size: .85em; color: var(--muted, #8a8f98); }
4672
+ .ds-247420 .agentchat-sub { font-size: .85em; color: var(--fg-3); }
4618
4673
  .ds-247420 .agentchat-thread {
4619
4674
  flex: 1;
4620
4675
  min-height: 0;
@@ -4864,7 +4919,7 @@
4864
4919
  color: var(--panel-text, var(--fg-text));
4865
4920
  border: 1px solid var(--rule);
4866
4921
  border-radius: var(--r-2, 8px);
4867
- box-shadow: 0 8px 28px rgba(0,0,0,0.18);
4922
+ box-shadow: var(--shadow-2);
4868
4923
  padding: 4px;
4869
4924
  display: flex; flex-direction: column;
4870
4925
  outline: none;
@@ -4881,7 +4936,7 @@
4881
4936
  .ds-247420 .ds-ep-ctxmenu-item:focus-visible {
4882
4937
  background: var(--panel-2, var(--rule));
4883
4938
  }
4884
- .ds-247420 .ds-ep-ctxmenu-item.danger { color: var(--danger, #c33); }
4939
+ .ds-247420 .ds-ep-ctxmenu-item.danger { color: var(--danger); }
4885
4940
  .ds-247420 .ds-ep-ctxmenu-item.disabled { opacity: 0.45; cursor: not-allowed; }
4886
4941
  .ds-247420 .ds-ep-ctxmenu-icon { width: 16px; display: inline-flex; justify-content: center; }
4887
4942
  .ds-247420 .ds-ep-ctxmenu-sep { height: 1px; background: var(--rule); margin: 4px 6px; }
@@ -4891,13 +4946,13 @@
4891
4946
  --------------------------------------------------------------- */
4892
4947
  .ds-247420 .ds-ep-drawer-backdrop {
4893
4948
  position: fixed; inset: 0; z-index: 8500;
4894
- background: rgba(0,0,0,0.42);
4949
+ background: var(--scrim);
4895
4950
  }
4896
4951
  .ds-247420 .ds-ep-drawer {
4897
4952
  position: absolute;
4898
4953
  background: var(--panel-1, var(--panel-bg));
4899
4954
  color: var(--panel-text, var(--fg-text));
4900
- box-shadow: 0 12px 40px rgba(0,0,0,0.28);
4955
+ box-shadow: var(--shadow-overlay);
4901
4956
  outline: none;
4902
4957
  transition: transform 180ms ease;
4903
4958
  padding: 12px;
@@ -4918,7 +4973,7 @@
4918
4973
  --------------------------------------------------------------- */
4919
4974
  .ds-247420 .ds-ep-dialog-backdrop {
4920
4975
  position: fixed; inset: 0; z-index: 9500;
4921
- background: rgba(0,0,0,0.5);
4976
+ background: var(--scrim-strong);
4922
4977
  display: flex; align-items: center; justify-content: center;
4923
4978
  padding: 16px;
4924
4979
  }
@@ -4927,7 +4982,7 @@
4927
4982
  color: var(--panel-text, var(--fg-text));
4928
4983
  border: 1px solid var(--rule);
4929
4984
  border-radius: var(--r-2, 10px);
4930
- box-shadow: 0 20px 60px rgba(0,0,0,0.36);
4985
+ box-shadow: var(--shadow-overlay);
4931
4986
  min-width: 280px; max-width: min(560px, 100%);
4932
4987
  max-height: 90vh; overflow: auto;
4933
4988
  display: flex; flex-direction: column;
@@ -4951,7 +5006,7 @@
4951
5006
  background: var(--accent); color: var(--accent-fg); border-color: var(--accent);
4952
5007
  }
4953
5008
  .ds-247420 .ds-ep-dialog-btn.kind-danger {
4954
- background: var(--danger, #c33); color: #fff; border-color: var(--danger, #c33);
5009
+ background: var(--danger); color: var(--on-accent); border-color: var(--danger);
4955
5010
  }
4956
5011
 
4957
5012
  /* ---------------------------------------------------------------
@@ -4973,14 +5028,14 @@
4973
5028
  border-left: 3px solid var(--accent);
4974
5029
  border-radius: var(--r-1, 6px);
4975
5030
  padding: 10px 14px;
4976
- box-shadow: 0 8px 24px rgba(0,0,0,0.22);
5031
+ box-shadow: var(--shadow-3);
4977
5032
  min-width: 220px; max-width: 360px;
4978
5033
  opacity: 1;
4979
5034
  transition: opacity 180ms ease, transform 180ms ease;
4980
5035
  }
4981
- .ds-247420 .ds-ep-toast.kind-success { border-left-color: var(--success, #2a8); }
4982
- .ds-247420 .ds-ep-toast.kind-warn { border-left-color: var(--warn, #d90); }
4983
- .ds-247420 .ds-ep-toast.kind-error { border-left-color: var(--danger, #c33); }
5036
+ .ds-247420 .ds-ep-toast.kind-success { border-left-color: var(--success); }
5037
+ .ds-247420 .ds-ep-toast.kind-warn { border-left-color: var(--warn); }
5038
+ .ds-247420 .ds-ep-toast.kind-error { border-left-color: var(--danger); }
4984
5039
  .ds-247420 .ds-ep-toast.leaving { opacity: 0; transform: translateY(-6px); }
4985
5040
  @media (max-width: 480px) {
4986
5041
  .ds-247420 .ds-ep-toast-host { left: 16px; right: 16px; align-items: center; }
@@ -5140,7 +5195,7 @@
5140
5195
  font-weight: 500;
5141
5196
  }
5142
5197
  .ds-247420 .ds-field-required {
5143
- color: var(--danger, oklch(0.55 0.18 25));
5198
+ color: var(--danger);
5144
5199
  font-weight: 700;
5145
5200
  margin-left: 2px;
5146
5201
  }
@@ -5149,12 +5204,12 @@
5149
5204
  font-size: var(--fs-tiny, 12px);
5150
5205
  }
5151
5206
  .ds-247420 .ds-field-error {
5152
- color: var(--danger, oklch(0.55 0.18 25));
5207
+ color: var(--danger);
5153
5208
  font-size: var(--fs-tiny, 12px);
5154
5209
  font-weight: 500;
5155
5210
  }
5156
5211
  .ds-247420 .ds-field-wrap [aria-invalid="true"] {
5157
- border-color: var(--danger, oklch(0.55 0.18 25)) !important;
5212
+ border-color: var(--danger) !important;
5158
5213
  }
5159
5214
 
5160
5215
  .ds-247420 .sr-only {
@@ -5182,10 +5237,10 @@
5182
5237
  font-size: 12px;
5183
5238
  line-height: 1.4;
5184
5239
  max-width: 280px;
5185
- box-shadow: 0 6px 18px rgba(0,0,0,0.22);
5240
+ box-shadow: var(--shadow-3);
5186
5241
  pointer-events: none;
5187
5242
  }
5188
- .ds-247420 .ds-tooltip.kind-danger { border-color: var(--danger, #c33); color: var(--danger, #c33); }
5243
+ .ds-247420 .ds-tooltip.kind-danger { border-color: var(--danger); color: var(--danger); }
5189
5244
  @media (prefers-reduced-motion: no-preference) {
5190
5245
  .ds-247420 .ds-tooltip { transition: opacity 120ms ease; }
5191
5246
  }
@@ -5201,7 +5256,7 @@
5201
5256
  color: var(--panel-text, var(--fg-text));
5202
5257
  border: 1px solid var(--rule);
5203
5258
  border-radius: var(--r-2, 8px);
5204
- box-shadow: 0 8px 28px rgba(0,0,0,0.22);
5259
+ box-shadow: var(--shadow-3);
5205
5260
  padding: 0;
5206
5261
  outline: none;
5207
5262
  min-width: 160px;
@@ -5238,7 +5293,7 @@
5238
5293
  pointer-events: none;
5239
5294
  cursor: not-allowed;
5240
5295
  }
5241
- .ds-247420 .ds-dropdown-item.is-danger { color: var(--danger, #c33); }
5296
+ .ds-247420 .ds-dropdown-item.is-danger { color: var(--danger); }
5242
5297
  .ds-247420 .ds-dropdown-glyph { width: 16px; display: inline-flex; justify-content: center; flex-shrink: 0; }
5243
5298
  .ds-247420 .ds-dropdown-label { flex: 1; min-width: 0; }
5244
5299
  .ds-247420 .ds-dropdown-separator { height: 1px; background: var(--rule); margin: 4px 6px; }
@@ -5318,7 +5373,7 @@
5318
5373
  background: var(--bg-2); color: var(--fg);
5319
5374
  border: 1px solid var(--rule);
5320
5375
  border-radius: var(--r-2, 14px);
5321
- box-shadow: var(--shadow-3, 0 12px 32px rgba(0,0,0,0.3));
5376
+ box-shadow: var(--shadow-3);
5322
5377
  overflow: hidden;
5323
5378
  }
5324
5379
  .ds-247420 .ov-cmd-input {
@@ -5366,7 +5421,7 @@
5366
5421
  background: var(--bg-2); color: var(--fg);
5367
5422
  border: 1px solid var(--rule);
5368
5423
  border-radius: var(--r-2, 14px);
5369
- box-shadow: var(--shadow-3, 0 12px 32px rgba(0,0,0,0.3));
5424
+ box-shadow: var(--shadow-3);
5370
5425
  outline: none; overflow: hidden;
5371
5426
  }
5372
5427
  .ds-247420 .ov-emoji-tabs {
@@ -5446,7 +5501,7 @@
5446
5501
  background: var(--bg-2); color: var(--fg);
5447
5502
  border: 1px solid var(--rule);
5448
5503
  border-radius: var(--r-2, 14px);
5449
- box-shadow: var(--shadow-3, 0 12px 32px rgba(0,0,0,0.3));
5504
+ box-shadow: var(--shadow-3);
5450
5505
  outline: none; overflow: hidden;
5451
5506
  }
5452
5507
  .ds-247420 .ov-set-head {
@@ -5491,14 +5546,14 @@
5491
5546
  .ds-247420 .ov-auth-backdrop {
5492
5547
  position: fixed; inset: 0; z-index: var(--z-overlay, 1000);
5493
5548
  display: flex; align-items: center; justify-content: center;
5494
- background: rgba(0,0,0,.55);
5549
+ background: var(--scrim-strong);
5495
5550
  }
5496
5551
  .ds-247420 .ov-auth-panel {
5497
5552
  width: min(420px, 92vw);
5498
5553
  display: flex; flex-direction: column;
5499
5554
  background: var(--bg-2); color: var(--fg);
5500
5555
  border: 1px solid var(--rule); border-radius: var(--r-2, 8px);
5501
- box-shadow: var(--shadow-2, 0 12px 40px rgba(0,0,0,.4));
5556
+ box-shadow: var(--shadow-overlay);
5502
5557
  overflow: hidden;
5503
5558
  }
5504
5559
  .ds-247420 .ov-auth-head { display: flex; align-items: center; justify-content: space-between; padding: var(--space-3); border-bottom: 1px solid var(--rule); }
@@ -5511,21 +5566,21 @@
5511
5566
  .ds-247420 .ov-auth-body { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); }
5512
5567
  .ds-247420 .ov-auth-hint { margin: 0; font-size: var(--fs-0, 12px); color: var(--fg-2, var(--fg)); }
5513
5568
  .ds-247420 .ov-auth-input { padding: var(--space-2); border: 1px solid var(--rule-strong); border-radius: var(--r-1); background: var(--bg-3); color: var(--fg); }
5514
- .ds-247420 .ov-auth-primary { padding: var(--space-2); border: none; border-radius: var(--r-1); background: var(--accent); color: var(--accent-fg, #fff); font-weight: 700; cursor: pointer; }
5569
+ .ds-247420 .ov-auth-primary { padding: var(--space-2); border: none; border-radius: var(--r-1); background: var(--accent); color: var(--on-accent); font-weight: 700; cursor: pointer; }
5515
5570
  .ds-247420 .ov-auth-primary:disabled { opacity: .6; cursor: progress; }
5516
- .ds-247420 .ov-auth-error { margin: 0 var(--space-3) var(--space-3); padding: var(--space-2); border-radius: var(--r-1); background: var(--danger-bg, rgba(208,69,69,.15)); color: var(--danger, #d04545); font-size: var(--fs-0, 12px); }
5571
+ .ds-247420 .ov-auth-error { margin: 0 var(--space-3) var(--space-3); padding: var(--space-2); border-radius: var(--r-1); background: color-mix(in oklab, var(--danger) 15%, transparent); color: var(--danger); font-size: var(--fs-0, 12px); }
5517
5572
 
5518
5573
  /* VideoLightbox — ov-lightbox-* */
5519
5574
  .ds-247420 .ov-lightbox-backdrop {
5520
5575
  position: fixed; inset: 0; z-index: var(--z-overlay-top, 1100);
5521
5576
  display: flex; align-items: center; justify-content: center;
5522
- background: rgba(0,0,0,.85);
5577
+ background: var(--scrim-media);
5523
5578
  }
5524
- .ds-247420 .ov-lightbox-x { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border: none; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
5525
- .ds-247420 .ov-lightbox-x:hover { background: rgba(255,255,255,.24); }
5579
+ .ds-247420 .ov-lightbox-x { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border: none; border-radius: 50%; background: color-mix(in oklab, var(--on-color) 12%, transparent); color: var(--on-color); font-size: 24px; line-height: 1; cursor: pointer; }
5580
+ .ds-247420 .ov-lightbox-x:hover { background: color-mix(in oklab, var(--on-color) 24%, transparent); }
5526
5581
  .ds-247420 .ov-lightbox-stage { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); max-width: 92vw; max-height: 90vh; }
5527
- .ds-247420 .ov-lightbox-video { max-width: 92vw; max-height: 82vh; border-radius: var(--r-1); background: #000; }
5528
- .ds-247420 .ov-lightbox-label { color: #fff; font-size: var(--fs-0, 12px); opacity: .85; }
5582
+ .ds-247420 .ov-lightbox-video { max-width: 92vw; max-height: 82vh; border-radius: var(--r-1); background: #000; /* true black media letterbox, intentional */ }
5583
+ .ds-247420 .ov-lightbox-label { color: var(--on-color); font-size: var(--fs-0, 12px); opacity: .85; }
5529
5584
 
5530
5585
  /* community-app.css */
5531
5586
  /* community-app.css — layout glue for mountCommunityApp (the full chat/community
@@ -5536,15 +5591,6 @@
5536
5591
  .ds-247420. Additive — defines only the ca- prefix, group, rail-empty, vx-view
5537
5592
  classes plus the cat color tokens. */
5538
5593
 
5539
- .ds-247420 {
5540
- --cat-green: #3F8A4A;
5541
- --cat-purple: #6B3A78;
5542
- --cat-mascot: #F07AA8;
5543
- --cat-sun: #FFD86B;
5544
- --cat-flame: #FF8454;
5545
- --cat-sky: #6FA9FF;
5546
- }
5547
-
5548
5594
  .ds-247420.ds-247420 .ca-app {
5549
5595
  display: flex;
5550
5596
  flex-direction: column;
@@ -5619,7 +5665,7 @@
5619
5665
  padding: 0 5px;
5620
5666
  border-radius: 9px;
5621
5667
  background: var(--accent);
5622
- color: var(--green-fg, #fff);
5668
+ color: var(--on-accent);
5623
5669
  font-size: 11px;
5624
5670
  font-weight: 600;
5625
5671
  text-align: center;