fix: stats position adjusts when queue opens/closes (#426)

The platform stats in the header were positioned using a static viewport
calculation that didn't account for the queue sidebar width. Now uses a
CSS custom property (--queue-width) that gets updated dynamically when
the queue visibility changes, ensuring the stats shift left along with
the rest of the header content.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>

authored by zzstoatzz.io Claude and committed by GitHub 91b2b00f 5f255e9c

Changed files
+12 -1
frontend
src
lib
components
routes
+2 -1
frontend/src/lib/components/Header.svelte
··· 132 132 133 133 .stats-left { 134 134 position: absolute; 135 - left: calc((100vw - 800px) / 4); 135 + left: calc((100vw - var(--queue-width, 0px) - 800px) / 4); 136 136 top: 50%; 137 137 transform: translate(-50%, -50%); 138 + transition: left 0.3s ease; 138 139 } 139 140 140 141 .bluesky-link,
+10
frontend/src/routes/+layout.svelte
··· 69 69 updateTitle(); 70 70 }); 71 71 72 + // set CSS custom property for queue width adjustment 73 + $effect(() => { 74 + if (!browser) return; 75 + const queueWidth = showQueue && !isEmbed ? '360px' : '0px'; 76 + document.documentElement.style.setProperty('--queue-width', queueWidth); 77 + }); 78 + 72 79 function handleQueueShortcut(event: KeyboardEvent) { 73 80 // ignore modifier keys 74 81 if (event.metaKey || event.ctrlKey || event.altKey) { ··· 223 230 } 224 231 225 232 :global(:root) { 233 + /* layout */ 234 + --queue-width: 0px; 235 + 226 236 /* accent colors - configurable */ 227 237 --accent: #6a9fff; 228 238 --accent-hover: #8ab3ff;