diff --git a/frontend/src/components/SettingsModal.tsx b/frontend/src/components/SettingsModal.tsx index fd9c36e..1307e38 100644 --- a/frontend/src/components/SettingsModal.tsx +++ b/frontend/src/components/SettingsModal.tsx @@ -4311,7 +4311,7 @@ export function SettingsModal({ onClose, onSaved, initialSection, onMainPaneChan title={t('sec.backup')} hint={mysqlCfg.enabled ? t('bk.hintMysql') : t('bk.hint')} /> -
+
-
-
- - { - const n = Number(e.target.value); - if (Number.isFinite(n) && n > 0) setBackupCfg((b) => ({ ...b, rotation: Math.floor(n) })); - }} - /> -
+
+ + { + const n = Number(e.target.value); + if (Number.isFinite(n) && n > 0) setBackupCfg((b) => ({ ...b, rotation: Math.floor(n) })); + }} + /> +
+ + {/* Stacked, not one flex row: these labels are full sentences and the + "keep every backup" hint is two lines — side by side they wrapped + into unreadable slivers. It also puts keep-all under the option it + depends on rather than beside it. */} +
{!!(backupCfg as any).every_exit && ( -

{t('db.appDbHint')}

+ + + + + {dbSettings.is_custom && }
+ {/* The DB pointer is only read at startup, so offer the restart inline. */} + {dbMsg && ( +
+
{t('db.savedRestart')} {dbMsg}
+ + {t('db.restartHint')} +
+ )}
{/* Logbook (QSOs) — this profile: default SQLite file, a dedicated file, or MySQL. */}