.impurity-nucleus {
  width: fit-content;
}

.shift-strip {
  position: relative;
  padding: var(--space-1) 0;
  border-radius: var(--radius-small);
  cursor: crosshair;
  touch-action: none;
  user-select: none;
}

.strip-svg {
  display: block;
  width: 100%;
  height: 44px;
  overflow: visible;
}

.strip-axis {
  stroke: var(--border-strong);
  vector-effect: non-scaling-stroke;
}

.strip-mark {
  stroke: var(--accent);
  fill: var(--accent-soft);
  stroke-opacity: 0.7;
  vector-effect: non-scaling-stroke;
}

.strip-solvent {
  stroke: var(--text-subtle);
  fill: color-mix(in srgb, var(--text-subtle) 25%, transparent);
}

.strip-cursor {
  stroke: var(--accent-text);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.strip-ticks {
  position: relative;
  height: 16px;
  color: var(--text-subtle);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.strip-ticks span {
  position: absolute;
  left: var(--at);
  transform: translateX(-50%);
}

.impurity-answer {
  margin: 0 0 var(--space-3);
  font-size: 14px;
  line-height: 1.55;
}

.impurity-tag {
  color: var(--text-subtle);
  font-size: 0.92em;
}

.impurity-candidates + .callout {
  margin-top: var(--space-3);
}

.signal-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.signal-list li {
  white-space: nowrap;
}

.impurity-all > summary {
  cursor: pointer;
}
