+
✓ Auto (fits data to screen)
diff --git a/js/ui/chart.js b/js/ui/chart.js
index 3a5978c..7a59973 100644
--- a/js/ui/chart.js
+++ b/js/ui/chart.js
@@ -506,14 +506,29 @@ constructor() {
if (btnSettings && settingsPopup) {
btnSettings.addEventListener('click', (e) => {
e.stopPropagation();
- settingsPopup.classList.toggle('hidden');
+ settingsPopup.classList.remove('hidden');
+ settingsPopup.classList.add('show');
});
+ // Close popup when clicking outside on desktop
document.addEventListener('click', (e) => {
- if (!settingsPopup.contains(e.target) && e.target !== btnSettings) {
+ if (!settingsPopup.contains(e.target) && !btnSettings.contains(e.target)) {
settingsPopup.classList.add('hidden');
+ settingsPopup.classList.remove('show');
}
});
+
+ // Close popup when clicking on settings items (mobile)
+ settingsPopup.addEventListener('click', (e) => {
+ // Don't close if clicking on input elements or their containers
+ if (e.target.tagName === 'INPUT' || e.target.tagName === 'SELECT' || e.target.tagName === 'BUTTON' || e.target.closest('input') || e.target.closest('select') || e.target.closest('button')) {
+ e.stopPropagation();
+ return;
+ }
+ // Close on click inside popup (for mobile touch)
+ settingsPopup.classList.add('hidden');
+ settingsPopup.classList.remove('show');
+ });
}
// Initialize state from storage