/*
 * Modal au clic sur un noeud + modals generiques (§2.4, §7).
 * --color-bg-surface, --border-default, --shadow-panel, --radius. Vanilla JS.
 */
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(28, 32, 30, 0.6);
  padding: var(--space-5);
  opacity: 0;
  transition: var(--transition-fast);
}
.modal-overlay--visible {
  opacity: 1;
}

.modal {
  background: var(--color-bg-surface);
  border: var(--border-default);
  box-shadow: var(--shadow-panel);
  border-radius: var(--radius);
  padding: var(--space-5);
  max-width: calc(var(--space-7) * 10);
  width: 100%;
  max-height: 80vh;
  overflow-y: auto;
  transform: translateY(var(--space-2));
  transition: transform 150ms ease-out, opacity 150ms ease-out;
}
.modal-overlay--visible .modal {
  transform: translateY(0);
}

.modal__header {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.modal__title {
  font-weight: var(--font-weight-semibold);
  color: var(--color-ink-primary);
}

.modal__close {
  background: transparent;
  border: none;
  color: var(--color-ink-secondary);
  font-size: var(--font-size-narrative);
  padding: var(--space-1) var(--space-2);
  transition: var(--transition-fast);
}
.modal__close:hover {
  opacity: 0.85;
}

.modal__body {
  color: var(--color-ink-primary);
  line-height: var(--line-height-narrative);
}
