  document.addEventListener('DOMContentLoaded', function() {
    // (No per-icon setup needed here—just ensure your CSS is in place.)
  });

  // 1) Delegate clicks on any .toggle-icon, now or in the future:
  document.addEventListener('click', function(e) {
    // Find the closest .toggle-icon ancestor of the click target, if any
    if (!e.target.classList.contains('toggle-icon')) return;
    var icon = e.target;

    // Prevent clicks on the icon from bubbling further if you want
    e.stopPropagation(); 

    // Locate its .card-body.collapsable in the same card
    var card = icon.closest('.card');
    if (!card) return;
    var body = card.querySelector('.card-body.collapsable');
    if (!body) return;

    // Toggle the 'show' class and swap +/– text
    if (body.classList.contains('show')) {
      // Collapse: remove show, update icon, remove from set
      body.classList.remove('show');
      icon.textContent = '+';
      icon.setAttribute('aria-expanded', 'false');
      openCards.add(key);
    } else {
      // Expand: add show, update icon, add to set
      body.classList.add('show');
      icon.textContent = '–';
      icon.setAttribute('aria-expanded', 'true');
      openCards.add(key);
    }
  });
