Launching with a custom dark theme left every divider in light-theme colors until you re-toggled the theme in Settings.
applyTheme was copy-pasted across the components and the copies drifted. Three of them (+page.svelte's onMount block, AppLayout.svelte, NoteWindow.svelte) had no custom-* branch, so for a custom theme they stripped the dark class and data-theme attribute, matched nothing, and fell back to the bare light :root values.
+layout.svelte applied the custom theme correctly, but AppLayout — the always-mounted shell — re-runs its own broken copy from an $effect on $theme, immediately wiping it out. Dividers gave it away because custom themes override --border-color but not --border-light, which dividers use.
Fix: consolidate into a single applyTheme(which already owns darkThemes/isDarkTheme) with a real custom-* branch, and have every call site use it and pass the loaded custom themes so custom-* ids resolve.