SmartEditor

Hint: select a text fragment before replace-selection; with no selection this mode falls back to insert-at-cursor. toggleTheme() now cycles through all built-in presets (including solarized, nord, high-contrast).