retire the last light-theme branches and fix three latent color bugs

Dark is now the only theme, so every `.dark` selector matched
unconditionally while each non-dark branch was unreachable. That left
fourteen `.dark &` blocks sitting on top of token-based base rules and
silently overriding them with hardcoded grays from the previous palette
(#333333, #999999, #cccccc, #f2f2f2, #1f1f1f, #2a2a2a). Merged each value
down into its base rule and deleted the wrapper, then replaced fifteen
more legacy grays with the CYBER tokens.

Three bugs surfaced along the way:

- FileEditor read `documentElement.classList.contains('dark')`, but the
  `dark` class is bound on `.app-root`, so Monaco always loaded the
  light `vs` theme inside the dark editor surface.
- CodexLoginModal, CopilotLoginModal and NousLoginModal wrote
  `border-color: var(--arcoblue-6, #165dff)` and VoiceApiFormModal wrote
  `color: var(--primary-6, #18a058)`. Those Arco variables hold bare
  RGB triplets, not colors, so each declaration was invalid and
  discarded — the hover border and link color stayed stock Arco
  blue/green instead of the cyan accent.
- JourneyView drew the pinned-node ring in amber, a leftover from the
  old palette.

Rendering-layer only: no store logic, no /chat-run payload, no message
rendering path.
This commit is contained in:
2026-10-19 14:56:23 +08:00
parent f4f45304a6
commit 3debe903f7
26 changed files with 136 additions and 216 deletions
@@ -402,7 +402,7 @@ function drawNode(node: ProjectedNode, activeId: string, activeNeighbors: Set<st
if (node.pinned || active) {
ctx.shadowBlur = 0
ctx.strokeStyle = active ? 'rgba(255,255,255,0.9)' : 'rgba(255, 190, 90, 0.85)'
ctx.strokeStyle = active ? 'rgba(235, 255, 252, 0.92)' : 'rgba(45, 212, 191, 0.7)'
ctx.lineWidth = active ? 2 : 1.4
ctx.beginPath()
ctx.arc(node.sx, node.sy, node.size + 5, 0, Math.PI * 2)
@@ -326,7 +326,7 @@ onMounted(() => {
margin-top: 10px;
a {
color: var(--primary-color);
color: var(--accent-primary);
font-size: 12px;
text-decoration: none;
@@ -2399,7 +2399,7 @@ function nodeColor(node: { data: WorkflowAgentNodeData }) {
color: var(--text-muted);
cursor: pointer;
border-radius: 3px;
transition: all var(--transition-fast);
transition: all $transition-fast;
&:hover {
color: var(--error);