The colour study behind the long-press selection wash (gap 8). Six candidates over the app's real seat palette from theme.css — in every panel all eight seat rows and the human row are selected (one continuous wash, 1px hairlines between rows) so any blend/conflict between the wash and a seat's soft fill shows immediately. The last row stays unselected as the reference edge. The specimen panes are fixed light/dark — they show the app, not this page's theme.
color-mix(in srgb, var(--seat-6) 22%, transparent) + a 46% hairline: seat-6 IS this violet in both themes, so the wash rides the palette tokens (no new hex, theme-correct by construction). Every hue candidate overlaps exactly one of the eight seats — the palette covers the wheel, so "zero conflict" doesn't exist; the bubble itself stays untinted with its 3px seat border either way. Slate (A) shipped v460–v463 and was retired as too administrative.light · wash #5F7186 22%
dark · wash #92A6BC 22%
light · wash #CC785C 20%
dark · wash #E0917A 24%
light · wash #4C8AAB 20%
dark · wash #85B3D1 24%
light · wash #A9802F 20%
dark · wash #D6AE63 22%
light · wash #5E8B6E 20%
dark · wash #8FB59A 22%
color-mix(in srgb, var(--seat-6) 22%, transparent) (hairline 46%): seat-6 IS this violet in both themes, so the wash rides the palette tokens with no new hex.light · wash #7E78B5 20%
dark · wash #A29DD4 24%
Frozen specimen · written 2026-07-17 · the live rule lives in lib/room-ui.html (body.select-mode .msg.sel::before)